commit c7bdb3b342823d3144f3c73e125e274aa40c77e2 Author: Juergen Spitzmueller <sp...@lyx.org> Date: Sat Apr 28 11:19:26 2018 +0200
Rework OK/Apply/Cancel UI of prefs dialog Instead of "Save" (permanently) and "Apply" (temporarily), OK and Apply now always save permanently, unless the new checkbox "Apply to current session only" is checked. Addresses: #10016 --- src/frontends/qt4/GuiPrefs.cpp | 8 ++-- src/frontends/qt4/ui/PrefsUi.ui | 103 ++++++++++++++++++++++++-------------- 2 files changed, 69 insertions(+), 42 deletions(-) diff --git a/src/frontends/qt4/GuiPrefs.cpp b/src/frontends/qt4/GuiPrefs.cpp index d855ffa..615c7da 100644 --- a/src/frontends/qt4/GuiPrefs.cpp +++ b/src/frontends/qt4/GuiPrefs.cpp @@ -3417,7 +3417,7 @@ GuiPreferences::GuiPreferences(GuiView & lv) QDialog::setModal(false); - connect(savePB, SIGNAL(clicked()), this, SLOT(slotOK())); + connect(okPB, SIGNAL(clicked()), this, SLOT(slotOK())); connect(applyPB, SIGNAL(clicked()), this, SLOT(slotApply())); connect(closePB, SIGNAL(clicked()), this, SLOT(slotClose())); connect(restorePB, SIGNAL(clicked()), this, SLOT(slotRestore())); @@ -3462,7 +3462,7 @@ GuiPreferences::GuiPreferences(GuiView & lv) #endif bc().setPolicy(ButtonPolicy::PreferencesPolicy); - bc().setOK(savePB); + bc().setOK(okPB); bc().setApply(applyPB); bc().setCancel(closePB); bc().setRestore(restorePB); @@ -3573,8 +3573,8 @@ void GuiPreferences::dispatchParams() update_previews_ = false; } - // The Save button has been pressed - if (isClosing()) + // Save permanently + if (!tempSaveCB->isChecked()) dispatch(FuncRequest(LFUN_PREFERENCES_SAVE)); } diff --git a/src/frontends/qt4/ui/PrefsUi.ui b/src/frontends/qt4/ui/PrefsUi.ui index 5da08db..ffdd011 100644 --- a/src/frontends/qt4/ui/PrefsUi.ui +++ b/src/frontends/qt4/ui/PrefsUi.ui @@ -1,62 +1,79 @@ -<ui version="4.0" > +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> <class>PrefsUi</class> - <widget class="QDialog" name="PrefsUi" > - <property name="geometry" > + <widget class="QDialog" name="PrefsUi"> + <property name="geometry"> <rect> <x>0</x> <y>0</y> - <width>433</width> + <width>650</width> <height>352</height> </rect> </property> - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>1</hsizetype> - <vsizetype>1</vsizetype> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="windowTitle" > + <property name="windowTitle"> <string/> </property> - <property name="sizeGripEnabled" > + <property name="sizeGripEnabled"> <bool>true</bool> </property> - <layout class="QGridLayout" > - <property name="margin" > + <layout class="QGridLayout"> + <property name="leftMargin"> <number>11</number> </property> - <property name="spacing" > + <property name="topMargin"> + <number>11</number> + </property> + <property name="rightMargin"> + <number>11</number> + </property> + <property name="bottomMargin"> + <number>11</number> + </property> + <property name="spacing"> <number>6</number> </property> - <item row="1" column="0" > - <layout class="QHBoxLayout" > - <property name="margin" > + <item row="1" column="0"> + <layout class="QHBoxLayout"> + <property name="spacing"> + <number>6</number> + </property> + <property name="leftMargin"> <number>0</number> </property> - <property name="spacing" > - <number>6</number> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> </property> <item> - <widget class="QPushButton" name="restorePB" > - <property name="text" > + <widget class="QPushButton" name="restorePB"> + <property name="text"> <string>&Restore</string> </property> - <property name="autoDefault" > + <property name="autoDefault"> <bool>false</bool> </property> </widget> </item> <item> <spacer> - <property name="orientation" > + <property name="orientation"> <enum>Qt::Horizontal</enum> </property> - <property name="sizeType" > + <property name="sizeType"> <enum>QSizePolicy::Expanding</enum> </property> - <property name="sizeHint" > + <property name="sizeHint" stdset="0"> <size> <width>20</width> <height>20</height> @@ -65,39 +82,49 @@ </spacer> </item> <item> - <widget class="QPushButton" name="savePB" > - <property name="text" > - <string>&Save</string> + <widget class="QCheckBox" name="tempSaveCB"> + <property name="toolTip"> + <string>If this is checked, pressing OK or Apply will save the changes only for the current LyX session, not permanently.</string> + </property> + <property name="text"> + <string>A&pply to current session only</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="okPB"> + <property name="text"> + <string>&OK</string> </property> - <property name="autoDefault" > + <property name="autoDefault"> <bool>false</bool> </property> </widget> </item> <item> - <widget class="QPushButton" name="applyPB" > - <property name="text" > + <widget class="QPushButton" name="applyPB"> + <property name="text"> <string>&Apply</string> </property> - <property name="autoDefault" > + <property name="autoDefault"> <bool>false</bool> </property> </widget> </item> <item> - <widget class="QPushButton" name="closePB" > - <property name="text" > + <widget class="QPushButton" name="closePB"> + <property name="text"> <string>&Close</string> </property> - <property name="autoDefault" > + <property name="autoDefault"> <bool>false</bool> </property> </widget> </item> </layout> </item> - <item row="0" column="0" > - <widget class="lyx::frontend::PanelStack" native="1" name="prefsPS" /> + <item row="0" column="0"> + <widget class="lyx::frontend::PanelStack" name="prefsPS" native="true"/> </item> </layout> </widget> @@ -112,12 +139,12 @@ <tabstops> <tabstop>prefsPS</tabstop> <tabstop>restorePB</tabstop> - <tabstop>savePB</tabstop> + <tabstop>okPB</tabstop> <tabstop>applyPB</tabstop> <tabstop>closePB</tabstop> </tabstops> <includes> - <include location="local" >qt_i18n.h</include> + <include location="local">qt_i18n.h</include> </includes> <resources/> <connections/>