commit 1dc6154708cdc43d66affe4ba79f7a812db9e987 Author: Juergen Spitzmueller <sp...@lyx.org> Date: Tue Dec 18 08:32:48 2018 +0100
GuiCharacter: Add "Reset" and "Restore Defaults" buttons Addresses #11415 --- src/frontends/qt4/GuiCharacter.cpp | 54 +++++++++++++++++++++++++++------- src/frontends/qt4/GuiCharacter.h | 2 + src/frontends/qt4/ui/CharacterUi.ui | 43 ++++++++++++++++++++++++---- status.23x | 3 ++ 4 files changed, 85 insertions(+), 17 deletions(-) diff --git a/src/frontends/qt4/GuiCharacter.cpp b/src/frontends/qt4/GuiCharacter.cpp index 9a865ce..4f644a1 100644 --- a/src/frontends/qt4/GuiCharacter.cpp +++ b/src/frontends/qt4/GuiCharacter.cpp @@ -213,6 +213,7 @@ GuiCharacter::GuiCharacter(GuiView & lv) connect(okPB, SIGNAL(clicked()), this, SLOT(slotOK())); connect(applyPB, SIGNAL(clicked()), this, SLOT(slotApply())); connect(closePB, SIGNAL(clicked()), this, SLOT(slotClose())); + connect(resetPB, SIGNAL(clicked()), this, SLOT(slotRestore())); connect(autoapplyCB, SIGNAL(stateChanged(int)), this, SLOT(slotAutoApply())); @@ -252,6 +253,7 @@ GuiCharacter::GuiCharacter(GuiView & lv) bc().setApply(applyPB); bc().setCancel(closePB); bc().setAutoApply(autoapplyCB); + bc().setRestore(resetPB); bc().addReadOnly(familyCO); bc().addReadOnly(seriesCO); bc().addReadOnly(sizeCO); @@ -295,18 +297,12 @@ void GuiCharacter::on_nounCB_clicked() } -void GuiCharacter::change_adaptor() +void GuiCharacter::on_restorePB_clicked() { - changed(); - - if (!autoapplyCB->isChecked()) - return; - - // to be really good here, we should set the combos to the values of - // the current text, and make it appear as "no change" if the values - // stay the same between applys. Might be difficult though wrt to a - // moved cursor - jbl - slotApply(); + Font font(inherit_font); + font.setLanguage(reset_language); + paramsToDialog(font); + change_adaptor(); } @@ -391,6 +387,40 @@ lyx::FontState setMarkupState(Qt::CheckState cs) } // end namespace anon +void GuiCharacter::change_adaptor() +{ + changed(); + + checkRestoreDefaults(); + + if (!autoapplyCB->isChecked()) + return; + + // to be really good here, we should set the combos to the values of + // the current text, and make it appear as "no change" if the values + // stay the same between applys. Might be difficult though wrt to a + // moved cursor - jbl + slotApply(); +} + + +void GuiCharacter::checkRestoreDefaults() +{ + // (De)Activate Restore Defaults button + restorePB->setEnabled( + family[familyCO->currentIndex()].second != INHERIT_FAMILY + || series[seriesCO->currentIndex()].second != INHERIT_SERIES + || shape[shapeCO->currentIndex()].second != INHERIT_SHAPE + || size[sizeCO->currentIndex()].second != FONT_SIZE_INHERIT + || setMarkupState(emphCB->checkState()) != FONT_OFF + || setMarkupState(nounCB->checkState()) != FONT_OFF + || bar[ulineCO->currentIndex()].second != INHERIT + || strike[strikeCO->currentIndex()].second != INHERIT + || lcolor.getFromLyXName(fromqstr(colorCO->itemData(colorCO->currentIndex()).toString())) != Color_inherit + || languages.getLanguage(fromqstr(language[langCO->currentIndex()].second)) != reset_language); +} + + void GuiCharacter::updateContents() { if (bufferview()->cursor().selection()) { @@ -443,6 +473,8 @@ void GuiCharacter::updateContents() font_.setLanguage(reset_language); paramsToDialog(font_); + + checkRestoreDefaults(); } diff --git a/src/frontends/qt4/GuiCharacter.h b/src/frontends/qt4/GuiCharacter.h index e9148e7..d460cb0 100644 --- a/src/frontends/qt4/GuiCharacter.h +++ b/src/frontends/qt4/GuiCharacter.h @@ -65,6 +65,8 @@ protected Q_SLOTS: void change_adaptor(); void on_emphCB_clicked(); void on_nounCB_clicked(); + void on_restorePB_clicked(); + void checkRestoreDefaults(); private: /// \name Dialog inherited methods diff --git a/src/frontends/qt4/ui/CharacterUi.ui b/src/frontends/qt4/ui/CharacterUi.ui index 80db751..fdcdc60 100644 --- a/src/frontends/qt4/ui/CharacterUi.ui +++ b/src/frontends/qt4/ui/CharacterUi.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>523</width> - <height>365</height> + <width>552</width> + <height>401</height> </rect> </property> <property name="windowTitle"> @@ -314,6 +314,33 @@ </spacer> </item> <item row="3" column="0"> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QCheckBox" name="autoapplyCB"> + <property name="toolTip"> + <string>Apply each change automatically</string> + </property> + <property name="text"> + <string>Apply changes &immediately</string> + </property> + </widget> + </item> + </layout> + </item> + <item row="4" column="0"> <layout class="QHBoxLayout"> <property name="spacing"> <number>6</number> @@ -331,12 +358,16 @@ <number>0</number> </property> <item> - <widget class="QCheckBox" name="autoapplyCB"> - <property name="toolTip"> - <string>Apply each change automatically</string> + <widget class="QPushButton" name="resetPB"> + <property name="text"> + <string>Reset</string> </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="restorePB"> <property name="text"> - <string>Apply changes &immediately</string> + <string>Restore Defaults</string> </property> </widget> </item> diff --git a/status.23x b/status.23x index a83d30b..9295df2 100644 --- a/status.23x +++ b/status.23x @@ -33,6 +33,9 @@ What's new - Make tab movement visible (bug 10733). +- Add "Reset" and "Restore Defaults" buttons to Text Properties + dialog (bug 11415). + * DOCUMENTATION AND LOCALIZATION