Am Samstag, den 10.09.2016, 14:47 +0200 schrieb Charles de Miramon: > If there is a redesign of the dialog, could it be posible to put the > search > field on the top ?
Patch and screenshot attached. Opinions (I prefer this one)? Jürgen
diff --git a/src/frontends/qt4/GuiCitation.cpp b/src/frontends/qt4/GuiCitation.cpp index a99db88..9055368 100644 --- a/src/frontends/qt4/GuiCitation.cpp +++ b/src/frontends/qt4/GuiCitation.cpp @@ -34,6 +34,7 @@ #include "support/lstrings.h" #include <QCloseEvent> +#include <QMenu> #include <QSettings> #include <QShowEvent> #include <QVariant> @@ -93,6 +94,20 @@ GuiCitation::GuiCitation(GuiView & lv) { setupUi(this); + // Add search options as button menu + regexp_ = new QAction(qt_("Regular e&xpression"), this); + regexp_->setCheckable(true); + casesense_ = new QAction(qt_("Case se&nsitive"), this); + casesense_->setCheckable(true); + instant_ = new QAction(qt_("Search as you &type"), this); + instant_->setCheckable(true); + + QMenu * searchOpts = new QMenu(this); + searchOpts->addAction(regexp_); + searchOpts->addAction(casesense_); + searchOpts->addAction(instant_); + searchOptionsPB->setMenu(searchOpts); + connect(citationStyleCO, SIGNAL(activated(int)), this, SLOT(on_citationStyleCO_currentIndexChanged(int))); connect(fulllistCB, SIGNAL(clicked()), @@ -103,8 +118,6 @@ GuiCitation::GuiCitation(GuiView & lv) this, SLOT(updateStyles())); connect(textAfterED, SIGNAL(textChanged(QString)), this, SLOT(updateStyles())); - connect(findLE, SIGNAL(returnPressed()), - this, SLOT(on_searchPB_clicked())); connect(textBeforeED, SIGNAL(returnPressed()), this, SLOT(on_okPB_clicked())); connect(textAfterED, SIGNAL(returnPressed()), @@ -119,6 +132,13 @@ GuiCitation::GuiCitation(GuiView & lv) connect(selectionManager, SIGNAL(okHook()), this, SLOT(on_okPB_clicked())); + connect(regexp_, SIGNAL(triggered()), + this, SLOT(regexChanged())); + connect(casesense_, SIGNAL(triggered()), + this, SLOT(caseChanged())); + connect(instant_, SIGNAL(triggered(bool)), + this, SLOT(instantChanged(bool))); + setFocusProxy(availableLV); } @@ -154,40 +174,10 @@ void GuiCitation::showEvent(QShowEvent * e) { findLE->clear(); availableLV->setFocus(); - - // Set the minimal size of the QToolbox. Without this, the size of the - // QToolbox is only determined by values in the ui file (e.g. computed by - // qtcreator) and therefore causes portability and localisation issues. Note - // that the page widgets must have a layout with layoutSizeContraint = - // SetMinimumSize or similar. KNOWN ISSUE: the calculations are incorrect - // the first time the dialog is shown. This problem is mitigated by the fact - // that LyX remembers the dialog sizes between sessions. - QSize minimum_size = QSize(0,0); - // Compute the max of the minimal sizes of the pages - QWidget * page; - for (int i = 0; (page = citationTB->widget(i)); ++i) - minimum_size = minimum_size.expandedTo(page->minimumSizeHint()); - // Add the height of the tabs - if (citationTB->currentWidget()) - minimum_size.rheight() += citationTB->height() - - citationTB->currentWidget()->height(); - citationTB->setMinimumSize(minimum_size); - DialogView::showEvent(e); } -void GuiCitation::on_citationTB_currentChanged(int i) -{ - if (i == 0) - findLE->setFocus(); - else if (citationStyleCO->isEnabled()) - citationStyleCO->setFocus(); - else - textAfterED->setFocus(); -} - - void GuiCitation::on_okPB_clicked() { applyView(); @@ -390,8 +380,9 @@ void GuiCitation::findText(QString const & text, bool reset) else entry_type = entries[index]; - bool const case_sentitive = caseCB->checkState(); - bool const reg_exp = regexCB->checkState(); + bool const case_sentitive = casesense_->isChecked(); + bool const reg_exp = regexp_->isChecked(); + findKey(bi, text, onlyKeys, field, entry_type, case_sentitive, reg_exp, reset); //FIXME @@ -427,10 +418,8 @@ void GuiCitation::on_citationStyleCO_currentIndexChanged(int index) void GuiCitation::on_findLE_textChanged(const QString & text) { - bool const searchAsWeGo = (asTypeCB->checkState() == Qt::Checked); - searchPB->setDisabled(text.isEmpty() || searchAsWeGo); if (!text.isEmpty()) { - if (searchAsWeGo) + if (instant_->isChecked()) findText(findLE->text()); return; } @@ -438,30 +427,31 @@ void GuiCitation::on_findLE_textChanged(const QString & text) findLE->setFocus(); } -void GuiCitation::on_searchPB_clicked() +void GuiCitation::on_findLE_returnPressed() { findText(findLE->text(), true); } -void GuiCitation::on_caseCB_stateChanged(int) +void GuiCitation::caseChanged() { findText(findLE->text()); } -void GuiCitation::on_regexCB_stateChanged(int) +void GuiCitation::regexChanged() { findText(findLE->text()); } -void GuiCitation::on_asTypeCB_stateChanged(int) +void GuiCitation::instantChanged(bool checked) { - bool const searchAsWeGo = (asTypeCB->checkState() == Qt::Checked); - searchPB->setDisabled(findLE->text().isEmpty() || searchAsWeGo); - if (searchAsWeGo) + if (checked) { findText(findLE->text(), true); + findLE->setToolTip(qt_("Enter the text to search for")); + } else + findLE->setToolTip(qt_("Enter the text to search for and press Enter")); } @@ -786,11 +776,11 @@ void GuiCitation::saveSession() const Dialog::saveSession(); QSettings settings; settings.setValue( - sessionKey() + "/regex", regexCB->isChecked()); + sessionKey() + "/regex", regexp_->isChecked()); settings.setValue( - sessionKey() + "/casesensitive", caseCB->isChecked()); + sessionKey() + "/casesensitive", casesense_->isChecked()); settings.setValue( - sessionKey() + "/autofind", asTypeCB->isChecked()); + sessionKey() + "/autofind", instant_->isChecked()); } @@ -798,12 +788,9 @@ void GuiCitation::restoreSession() { Dialog::restoreSession(); QSettings settings; - regexCB->setChecked( - settings.value(sessionKey() + "/regex").toBool()); - caseCB->setChecked( - settings.value(sessionKey() + "/casesensitive").toBool()); - asTypeCB->setChecked( - settings.value(sessionKey() + "/autofind").toBool()); + regexp_->setChecked(settings.value(sessionKey() + "/regex").toBool()); + casesense_->setChecked(settings.value(sessionKey() + "/casesensitive").toBool()); + instant_->setChecked(settings.value(sessionKey() + "/autofind").toBool()); } diff --git a/src/frontends/qt4/GuiCitation.h b/src/frontends/qt4/GuiCitation.h index cc24eb9..5cc6f69 100644 --- a/src/frontends/qt4/GuiCitation.h +++ b/src/frontends/qt4/GuiCitation.h @@ -44,19 +44,18 @@ public: ~GuiCitation(); private Q_SLOTS: - void on_citationTB_currentChanged(int i); void on_okPB_clicked(); void on_cancelPB_clicked(); void on_restorePB_clicked(); void on_applyPB_clicked(); - void on_searchPB_clicked(); + void on_findLE_returnPressed(); void on_findLE_textChanged(const QString & text); void on_fieldsCO_currentIndexChanged(int index); void on_entriesCO_currentIndexChanged(int index); void on_citationStyleCO_currentIndexChanged(int index); - void on_caseCB_stateChanged(int); - void on_regexCB_stateChanged(int); - void on_asTypeCB_stateChanged(int); + void caseChanged(); + void regexChanged(); + void instantChanged(bool checked); void changed(); /// set the citation keys, mark as changed void setCitedKeys(); @@ -151,6 +150,13 @@ private: /// the like, so it should be avoided. BiblioInfo const & bibInfo() const; + /// Regexp action + QAction * regexp_; + /// Case sensitive action + QAction * casesense_; + /// Search as you type action + QAction * instant_; + /// last used citation style int style_; /// diff --git a/src/frontends/qt4/ui/CitationUi.ui b/src/frontends/qt4/ui/CitationUi.ui index 360d941..d57f4d0 100644 --- a/src/frontends/qt4/ui/CitationUi.ui +++ b/src/frontends/qt4/ui/CitationUi.ui @@ -6,7 +6,7 @@ <rect> <x>0</x> <y>0</y> - <width>590</width> + <width>614</width> <height>506</height> </rect> </property> @@ -16,8 +16,94 @@ <property name="sizeGripEnabled"> <bool>true</bool> </property> - <layout class="QGridLayout" name="gridLayout_4" rowstretch="1,0,0"> + <layout class="QGridLayout" name="gridLayout_3"> <item row="0" column="0"> + <layout class="QHBoxLayout" name="horizontalLayout_6"> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_5"> + <item> + <widget class="QLabel" name="findKeysLA"> + <property name="text"> + <string>Fi&lter:</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + <property name="buddy"> + <cstring>findLE</cstring> + </property> + </widget> + </item> + <item> + <widget class="QLineEdit" name="findLE"> + <property name="toolTip"> + <string>Enter the text to search for and press Enter</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QComboBox" name="fieldsCO"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="maxVisibleItems"> + <number>16</number> + </property> + <property name="insertPolicy"> + <enum>QComboBox::NoInsert</enum> + </property> + <property name="sizeAdjustPolicy"> + <enum>QComboBox::AdjustToContents</enum> + </property> + <item> + <property name="text"> + <string>All fields</string> + </property> + </item> + </widget> + </item> + <item> + <widget class="QComboBox" name="entriesCO"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="insertPolicy"> + <enum>QComboBox::NoInsert</enum> + </property> + <property name="sizeAdjustPolicy"> + <enum>QComboBox::AdjustToContents</enum> + </property> + <item> + <property name="text"> + <string>All entry types</string> + </property> + </item> + </widget> + </item> + <item> + <widget class="QPushButton" name="searchOptionsPB"> + <property name="text"> + <string>O&ptions</string> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="1" column="0"> <layout class="QVBoxLayout" name="verticalLayout_2"> <item> <layout class="QGridLayout" name="gridLayout"> @@ -104,8 +190,7 @@ </property> <property name="icon"> <iconset> - <normaloff/> - </iconset> + <normaloff>.</normaloff>.</iconset> </property> <property name="autoDefault"> <bool>false</bool> @@ -128,8 +213,7 @@ </property> <property name="icon"> <iconset> - <normaloff/> - </iconset> + <normaloff>.</normaloff>.</iconset> </property> <property name="autoDefault"> <bool>false</bool> @@ -143,7 +227,7 @@ <item> <widget class="QLabel" name="selectedKeysLA"> <property name="text"> - <string>S&elected Citations:</string> + <string>Selected &Citations:</string> </property> <property name="buddy"> <cstring>selectedLV</cstring> @@ -181,297 +265,127 @@ </item> </layout> </item> - <item row="1" column="0"> - <widget class="lyx::frontend::LyXToolBox" name="citationTB"> - <property name="sizePolicy"> - <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="accessibleName"> - <string/> - </property> - <property name="currentIndex"> - <number>1</number> + <item row="2" column="0"> + <widget class="QGroupBox" name="FormattingGB"> + <property name="title"> + <string>Formatting</string> </property> - <widget class="QWidget" name="page"> - <attribute name="label"> - <string>&Search Citation</string> - </attribute> - <layout class="QGridLayout" name="gridLayout_3" columnstretch="0,1,0,0,0,0"> - <property name="sizeConstraint"> - <enum>QLayout::SetMinimumSize</enum> - </property> - <item row="0" column="0"> - <widget class="QLabel" name="findKeysLA"> - <property name="text"> - <string>Searc&h:</string> - </property> - <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> - </property> - <property name="buddy"> - <cstring>findLE</cstring> - </property> - </widget> - </item> - <item row="0" column="1" colspan="4"> - <widget class="QLineEdit" name="findLE"> - <property name="toolTip"> - <string>Enter the text to search for and press Enter or click the button to search</string> - </property> - <property name="text"> - <string/> - </property> - </widget> - </item> - <item row="0" column="5"> - <widget class="QPushButton" name="searchPB"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="toolTip"> - <string>Click or press Enter in the search box to search</string> - </property> - <property name="text"> - <string>&Search</string> - </property> - <property name="autoDefault"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="fieldsLA"> - <property name="text"> - <string>Search &field:</string> - </property> - <property name="buddy"> - <cstring>fieldsCO</cstring> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QComboBox" name="fieldsCO"> - <property name="sizePolicy"> - <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="maxVisibleItems"> - <number>16</number> - </property> - <property name="insertPolicy"> - <enum>QComboBox::NoInsert</enum> - </property> - <property name="sizeAdjustPolicy"> - <enum>QComboBox::AdjustToContents</enum> - </property> - <item> + <layout class="QGridLayout" name="gridLayout_2"> + <item row="0" column="0"> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <item> + <widget class="QLabel" name="citationStyleLA"> <property name="text"> - <string>All fields</string> + <string>Citation st&yle:</string> </property> - </item> - </widget> - </item> - <item row="1" column="2"> - <spacer> - <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 row="1" column="3"> - <widget class="QCheckBox" name="regexCB"> - <property name="text"> - <string>Regular e&xpression</string> - </property> - </widget> - </item> - <item row="1" column="4" colspan="2"> - <widget class="QCheckBox" name="caseCB"> - <property name="text"> - <string>Case se&nsitive</string> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="entriesLA"> - <property name="text"> - <string>Entry t&ypes:</string> - </property> - <property name="buddy"> - <cstring>entriesCO</cstring> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QComboBox" name="entriesCO"> - <property name="sizePolicy"> - <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="insertPolicy"> - <enum>QComboBox::NoInsert</enum> - </property> - <property name="sizeAdjustPolicy"> - <enum>QComboBox::AdjustToContents</enum> - </property> - <item> + <property name="buddy"> + <cstring>citationStyleCO</cstring> + </property> + </widget> + </item> + <item> + <widget class="QComboBox" name="citationStyleCO"> + <property name="toolTip"> + <string>Natbib citation style to use</string> + </property> + </widget> + </item> + </layout> + </item> + <item row="1" column="0"> + <layout class="QHBoxLayout" name="horizontalLayout_4"> + <item> + <widget class="QLabel" name="textBeforeLA"> <property name="text"> - <string>All entry types</string> + <string>Text &before:</string> </property> - </item> - </widget> - </item> - <item row="2" column="2"> - <spacer> - <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 row="2" column="4" colspan="2"> - <widget class="QCheckBox" name="asTypeCB"> - <property name="text"> - <string>Search as you &type</string> - </property> - </widget> - </item> - </layout> - </widget> - <widget class="QWidget" name="page_2"> - <attribute name="label"> - <string>For&matting</string> - </attribute> - <layout class="QGridLayout" name="gridLayout_2"> - <property name="sizeConstraint"> - <enum>QLayout::SetMinimumSize</enum> - </property> - <item row="0" column="0"> - <widget class="QLabel" name="citationStyleLA"> - <property name="text"> - <string>Citation st&yle:</string> - </property> - <property name="buddy"> - <cstring>citationStyleCO</cstring> - </property> - </widget> - </item> - <item row="0" column="1" colspan="3"> - <widget class="QComboBox" name="citationStyleCO"> - <property name="toolTip"> - <string>Natbib citation style to use</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="textBeforeLA"> - <property name="text"> - <string>Text &before:</string> - </property> - <property name="buddy"> - <cstring>textBeforeED</cstring> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QLineEdit" name="textBeforeED"> - <property name="toolTip"> - <string>Text to place before citation</string> - </property> - </widget> - </item> - <item row="1" column="2"> - <widget class="QLabel" name="textAfterLA"> - <property name="text"> - <string>&Text after:</string> - </property> - <property name="buddy"> - <cstring>textAfterED</cstring> - </property> - </widget> - </item> - <item row="1" column="3"> - <widget class="QLineEdit" name="textAfterED"> - <property name="toolTip"> - <string>Text to place after citation</string> - </property> - </widget> - </item> - <item row="2" column="0" colspan="4"> - <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> - <spacer> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>21</width> - <height>26</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QCheckBox" name="fulllistCB"> - <property name="toolTip"> - <string>List all authors</string> - </property> - <property name="text"> - <string>&Full author list</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="forceuppercaseCB"> - <property name="toolTip"> - <string>Force upper case in citation</string> - </property> - <property name="text"> - <string>Force u&pper case</string> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> + <property name="buddy"> + <cstring>textBeforeED</cstring> + </property> + </widget> + </item> + <item> + <widget class="QLineEdit" name="textBeforeED"> + <property name="toolTip"> + <string>Text to place before citation</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="textAfterLA"> + <property name="text"> + <string>&Text after:</string> + </property> + <property name="buddy"> + <cstring>textAfterED</cstring> + </property> + </widget> + </item> + <item> + <widget class="QLineEdit" name="textAfterED"> + <property name="toolTip"> + <string>Text to place after citation</string> + </property> + </widget> + </item> + </layout> + </item> + <item row="2" column="0"> + <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> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>21</width> + <height>26</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QCheckBox" name="forceuppercaseCB"> + <property name="toolTip"> + <string>Force upper case in citation</string> + </property> + <property name="text"> + <string>Force upcas&ing</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="fulllistCB"> + <property name="toolTip"> + <string>List all authors</string> + </property> + <property name="text"> + <string>All aut&hors</string> + </property> + </widget> + </item> + </layout> + </item> + </layout> </widget> </item> - <item row="2" column="0"> + <item row="3" column="0"> <layout class="QHBoxLayout"> <property name="spacing"> <number>6</number> @@ -548,28 +462,27 @@ </item> </layout> </widget> - <customwidgets> - <customwidget> - <class>lyx::frontend::LyXToolBox</class> - <extends>QToolBox</extends> - <header>LyXToolBox.h</header> - <container>1</container> - </customwidget> - </customwidgets> <tabstops> + <tabstop>findLE</tabstop> + <tabstop>fieldsCO</tabstop> + <tabstop>entriesCO</tabstop> + <tabstop>searchOptionsPB</tabstop> <tabstop>availableLV</tabstop> + <tabstop>selectedLV</tabstop> <tabstop>addPB</tabstop> <tabstop>deletePB</tabstop> <tabstop>upPB</tabstop> <tabstop>downPB</tabstop> - <tabstop>selectedLV</tabstop> - <tabstop>infoML</tabstop> - <tabstop>fulllistCB</tabstop> + <tabstop>citationStyleCO</tabstop> + <tabstop>textBeforeED</tabstop> + <tabstop>textAfterED</tabstop> <tabstop>forceuppercaseCB</tabstop> + <tabstop>fulllistCB</tabstop> <tabstop>restorePB</tabstop> <tabstop>okPB</tabstop> <tabstop>applyPB</tabstop> <tabstop>cancelPB</tabstop> + <tabstop>infoML</tabstop> </tabstops> <includes> <include location="local">qt_i18n.h</include>
signature.asc
Description: This is a digitally signed message part