The attached is intended to resolve bug 3246: "OK" button disabled when
selecting cross ref with keyboard. A similar problem affected the
TeXInfo dialog, and I have fixed that one, too. My fix is essentially
the same as in the Thesaurus dialog, which did not suffer from this
problem (though it could have). I also fixed some of the widget names in
QTexInfo* to accord with the policy stated in the README file. (See next
patch.)
Richard
--
==================================================================
Richard G Heck, Jr
Professor of Philosophy
Brown University
http://frege.brown.edu/heck/
==================================================================
Get my public key from http://sks.keyserver.penguin.de
Hash: 0x1DE91F1E66FFBDEC
Learn how to sign your email using Thunderbird and GnuPG at:
http://dudu.dyn.2-h.org/nist/gpg-enigmail-howto
Index: frontends/qt4/ui/QTexinfoUi.ui
===================================================================
--- frontends/qt4/ui/QTexinfoUi.ui (revision 17611)
+++ frontends/qt4/ui/QTexinfoUi.ui (working copy)
@@ -1,7 +1,4 @@
<ui version="4.0" >
- <author></author>
- <comment></comment>
- <exportmacro></exportmacro>
<class>QTexinfoUi</class>
<widget class="QDialog" name="QTexinfoUi" >
<property name="geometry" >
@@ -26,7 +23,7 @@
<number>6</number>
</property>
<item row="1" column="0" >
- <widget class="QListWidget" name="fileList" />
+ <widget class="QListWidget" name="fileListLW" />
</item>
<item row="3" column="0" >
<layout class="QHBoxLayout" >
@@ -122,7 +119,7 @@
<number>6</number>
</property>
<item>
- <widget class="QComboBox" name="whatStyle" >
+ <widget class="QComboBox" name="whatStyleCO" >
<property name="toolTip" >
<string>Selected classes or styles</string>
</property>
@@ -160,7 +157,7 @@
</spacer>
</item>
<item>
- <widget class="QCheckBox" name="path" >
+ <widget class="QCheckBox" name="pathCB" >
<property name="toolTip" >
<string>Toggles view of the file list</string>
</property>
@@ -173,18 +170,17 @@
</item>
</layout>
</widget>
- <pixmapfunction></pixmapfunction>
- <includes>
- <include location="local" >qt_helpers.h</include>
- </includes>
<tabstops>
- <tabstop>whatStyle</tabstop>
- <tabstop>path</tabstop>
- <tabstop>fileList</tabstop>
+ <tabstop>whatStyleCO</tabstop>
+ <tabstop>pathCB</tabstop>
+ <tabstop>fileListLW</tabstop>
<tabstop>rescanPB</tabstop>
<tabstop>viewPB</tabstop>
<tabstop>closePB</tabstop>
</tabstops>
+ <includes>
+ <include location="local" >qt_helpers.h</include>
+ </includes>
<resources/>
<connections/>
</ui>
Index: frontends/qt4/QTexinfo.C
===================================================================
--- frontends/qt4/QTexinfo.C (revision 17611)
+++ frontends/qt4/QTexinfo.C (working copy)
@@ -48,15 +48,15 @@
void QTexinfo::updateStyles(ControlTexinfo::texFileSuffix whichStyle)
{
ContentsType & data = texdata_[whichStyle];
- bool const withFullPath = dialog_->path->isChecked();
+ bool const withFullPath = dialog_->pathCB->isChecked();
getTexFileList(whichStyle, data, withFullPath);
- dialog_->fileList->clear();
+ dialog_->fileListLW->clear();
ContentsType::const_iterator it = data.begin();
ContentsType::const_iterator end = data.end();
for (; it != end; ++it)
- dialog_->fileList->addItem(toqstr(*it));
+ dialog_->fileListLW->addItem(toqstr(*it));
activeStyle = whichStyle;
}
Index: frontends/qt4/QTexinfoDialog.C
===================================================================
--- frontends/qt4/QTexinfoDialog.C (revision 17611)
+++ frontends/qt4/QTexinfoDialog.C (working copy)
@@ -34,12 +34,13 @@
form, SLOT(slotClose()));
connect( viewPB, SIGNAL( clicked() ), this, SLOT( viewClicked() ) );
- connect( whatStyle, SIGNAL( activated(const QString&) ), this, SLOT( enableViewPB() ) );
- connect( whatStyle, SIGNAL( activated(int) ), this, SLOT( update() ) );
- connect( path, SIGNAL( stateChanged(int) ), this, SLOT( update() ) );
+ connect( whatStyleCO, SIGNAL( activated(const QString&) ), this, SLOT( enableViewPB() ) );
+ connect( whatStyleCO, SIGNAL( activated(int) ), this, SLOT( update() ) );
+ connect( pathCB, SIGNAL( stateChanged(int) ), this, SLOT( update() ) );
connect( rescanPB, SIGNAL( clicked() ), this, SLOT( enableViewPB() ) );
connect( rescanPB, SIGNAL( clicked() ), this, SLOT( rescanClicked() ) );
- connect( fileList, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( enableViewPB() ) );
+ connect( fileListLW, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( enableViewPB() ) );
+ connect( fileListLW, SIGNAL( itemSelectionChanged() ), this, SLOT( enableViewPB() ) );
}
@@ -67,10 +68,10 @@
void QTexinfoDialog::viewClicked()
{
- vector<string>::size_type const fitem = fileList->currentRow();
+ vector<string>::size_type const fitem = fileListLW->currentRow();
vector<string> const & data = form_->texdata_[form_->activeStyle];
string file = data[fitem];
- if (!path->isChecked())
+ if (!pathCB->isChecked())
file = getTexFileFromList(data[fitem],
form_->controller().getFileType(form_->activeStyle));
form_->controller().viewFile(file);
@@ -79,7 +80,7 @@
void QTexinfoDialog::update()
{
- switch (whatStyle->currentIndex()) {
+ switch (whatStyleCO->currentIndex()) {
case 0:
form_->updateStyles(ControlTexinfo::cls);
break;
@@ -99,7 +100,7 @@
void QTexinfoDialog::enableViewPB()
{
- viewPB->setEnabled(fileList->currentRow() > -1);
+ viewPB->setEnabled(fileListLW->currentRow() > -1);
}
} // namespace frontend
Index: frontends/qt4/QRefDialog.C
===================================================================
--- frontends/qt4/QRefDialog.C (revision 17611)
+++ frontends/qt4/QRefDialog.C (working copy)
@@ -42,6 +42,8 @@
this, SLOT( changed_adaptor() ) );
connect( refsLW, SIGNAL( itemClicked(QListWidgetItem *) ),
this, SLOT( refHighlighted(QListWidgetItem *) ) );
+ connect( refsLW, SIGNAL( itemSelectionChanged() ),
+ this, SLOT( selectionChanged() ) );
connect( refsLW, SIGNAL( itemActivated(QListWidgetItem *) ),
this, SLOT( refSelected(QListWidgetItem *) ) );
connect( sortCB, SIGNAL( clicked(bool) ),
@@ -73,6 +75,18 @@
form_->gotoRef();
}
+void QRefDialog::selectionChanged()
+{
+ if (form_->readOnly())
+ return;
+
+ QList<QListWidgetItem *> selections = refsLW->selectedItems();
+ if (selections.isEmpty())
+ return;
+ QListWidgetItem * sel = selections.first();
+ refHighlighted(sel);
+ return;
+}
void QRefDialog::refHighlighted(QListWidgetItem * sel)
{
Index: frontends/qt4/QRefDialog.h
===================================================================
--- frontends/qt4/QRefDialog.h (revision 17611)
+++ frontends/qt4/QRefDialog.h (working copy)
@@ -36,6 +36,7 @@
void changed_adaptor();
void gotoClicked();
void refHighlighted(QListWidgetItem *);
+ void selectionChanged();
void refSelected(QListWidgetItem *);
void sortToggled(bool);
void updateClicked();
Index: frontends/qt4/QViewSourceDialog.C