#include "support/lstrings.h"
#include <QAbstractItemModel>
+#include <QPushButton>
#include <QComboBox>
#include <QModelIndex>
#include <QSettings>
bc().setOK(buttonBox->button(QDialogButtonBox::Ok));
bc().setApply(buttonBox->button(QDialogButtonBox::Apply));
bc().setCancel(buttonBox->button(QDialogButtonBox::Cancel));
+ bc().setRestore(buttonBox->button(QDialogButtonBox::Reset));
bc().setAutoApply(autoapplyCB);
bc().addReadOnly(familyCO);
bc().addReadOnly(seriesCO);
}
-
-void GuiCharacter::change_adaptor()
+void GuiCharacter::slotRestoreDefaults()
{
- 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();
}
} // 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
+ buttonBox->button(QDialogButtonBox::RestoreDefaults)->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
+ || setMarkupState(nospellcheckCB->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()) {
font_.setLanguage(reset_language);
paramsToDialog(font_);
+
+ checkRestoreDefaults();
}
void on_emphCB_clicked();
void on_nounCB_clicked();
void on_nospellcheckCB_clicked();
+ void slotRestoreDefaults();
+ void checkRestoreDefaults();
private:
/// \name Dialog inherited methods
slotClose();
break;
case QDialogButtonBox::Reset:
- case QDialogButtonBox::RestoreDefaults:
slotRestore();
break;
+ case QDialogButtonBox::RestoreDefaults:
+ slotRestoreDefaults();
+ break;
default:
break;
}
*/
// Restore button clicked
void slotRestore();
+ // Restore Defaults button clicked
+ virtual void slotRestoreDefaults() {}
// OK button clicked
void slotOK();
// Apply button clicked
<rect>
<x>0</x>
<y>0</y>
- <width>523</width>
- <height>372</height>
+ <width>545</width>
+ <height>428</height>
</rect>
</property>
<property name="windowTitle">
<bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout_7">
- <item row="2" column="0" colspan="2">
- <layout class="QHBoxLayout">
- <property name="spacing">
- <number>6</number>
- </property>
- <property name="leftMargin">
- <number>0</number>
- </property>
- <property name="topMargin">
- <number>0</number>
- </property>
- <property name="rightMargin">
- <number>0</number>
- </property>
- <property name="bottomMargin">
- <number>0</number>
- </property>
- <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>
- <item>
- <spacer>
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>QSizePolicy::Expanding</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QDialogButtonBox" name="buttonBox">
- <property name="standardButtons">
- <set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
- </property>
- </widget>
- </item>
- </layout>
- </item>
<item row="0" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
</layout>
</widget>
</item>
+ <item row="3" column="0" colspan="2">
+ <layout class="QHBoxLayout">
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::Reset|QDialogButtonBox::RestoreDefaults</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="2" column="0" colspan="2">
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</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>
</layout>
</widget>
<tabstops>