From: Bo Peng Date: Fri, 18 May 2007 15:26:42 +0000 (+0000) Subject: InsetListings: turn off inline/float when another is clicked, fix bug 3641 and 3642 X-Git-Tag: 1.6.10~9706 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=150d08f03edf4e828a1b3b74217cfe4dbfff6c84;p=features.git InsetListings: turn off inline/float when another is clicked, fix bug 3641 and 3642 git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18407 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/frontends/qt4/QListings.cpp b/src/frontends/qt4/QListings.cpp index 72948500a7..2feab75244 100644 --- a/src/frontends/qt4/QListings.cpp +++ b/src/frontends/qt4/QListings.cpp @@ -103,7 +103,7 @@ string QListingsDialog::construct_params() string language = fromqstr(languageCO->currentText()); bool float_ = floatCB->checkState() == Qt::Checked; - string placement = fromqstr(placementLE->text()); + string placement = placementLE->isEnabled() ? fromqstr(placementLE->text()) : string(); string numberSide = fromqstr(numberSideCO->currentText()); string stepnumber = fromqstr(numberStepLE->text()); @@ -171,6 +171,25 @@ void QListingsDialog::validate_listings_params() } } + +void QListingsDialog::on_floatCB_stateChanged(int state) +{ + if (state == Qt::Checked) { + inlineCB->setChecked(false); + placementLE->setEnabled(true); + } else + placementLE->setEnabled(false); +} + + +void QListingsDialog::on_inlineCB_stateChanged(int state) +{ + if (state == Qt::Checked) { + floatCB->setChecked(false); + placementLE->setEnabled(false); + } +} + ///////////////////////////////////////////////////////////////////// // // QListings @@ -274,10 +293,11 @@ void QListings::update_contents() // set values from param string InsetListingsParams & params = controller().params(); - if (params.isInline()) - dialog_->inlineCB->setChecked(true); - else - dialog_->inlineCB->setChecked(false); + dialog_->inlineCB->setChecked(params.isInline()); + if (params.isInline()) { + dialog_->floatCB->setChecked(false); + dialog_->placementLE->setEnabled(false); + } // break other parameters and set values vector pars = getVectorFromString(params.separatedParams(), "\n"); // process each of them @@ -294,10 +314,14 @@ void QListings::update_contents() } } else if (prefixIs(*it, "floatplacement=")) { dialog_->floatCB->setChecked(true); + dialog_->placementLE->setEnabled(true); dialog_->placementLE->setText(toqstr(it->substr(15))); + dialog_->inlineCB->setChecked(false); *it = ""; } else if (prefixIs(*it, "float")) { dialog_->floatCB->setChecked(true); + dialog_->inlineCB->setChecked(false); + dialog_->placementLE->setEnabled(true); if (prefixIs(*it, "float=")) dialog_->placementLE->setText(toqstr(it->substr(6))); *it = ""; diff --git a/src/frontends/qt4/QListings.h b/src/frontends/qt4/QListings.h index e3a0966f18..e9eb84854b 100644 --- a/src/frontends/qt4/QListings.h +++ b/src/frontends/qt4/QListings.h @@ -34,6 +34,10 @@ protected Q_SLOTS: /// AFAIK, QValidator only works for QLineEdit so /// I have to validate listingsED (QTextEdit) manually. void validate_listings_params(); + /// turn off inline when float is clicked + void on_floatCB_stateChanged(int state); + /// turn off float when inline is clicked + void on_inlineCB_stateChanged(int state); protected: virtual void closeEvent(QCloseEvent * e); private: