diff --git a/src/qtgui/viewaction.ui b/src/qtgui/viewaction.ui
index 4d29bd2c..4bcecc9f 100644
--- a/src/qtgui/viewaction.ui
+++ b/src/qtgui/viewaction.ui
@@ -6,7 +6,7 @@
0
0
- 632
+ 635
726
@@ -82,20 +82,67 @@
+ -
+
+
-
+
+
+ Recoll action:
+
+
+
+ -
+
+
+
+ 1
+ 0
+
+
+
+ QFrame::Box
+
+
+ QFrame::Raised
+
+
+ current value
+
+
+ Qt::PlainText
+
+
+ Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse
+
+
+
+ -
+
+
+ Select same
+
+
+
+
+
-
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
-
-
- 2
+ QFrame::Plain
-
+
-
+
+
+ <b>New Values:</b>
+
+
+
-
@@ -108,7 +155,7 @@
-
- Action (empty -> recoll default)
+ Action (empty -> recoll default)
diff --git a/src/qtgui/viewaction_w.cpp b/src/qtgui/viewaction_w.cpp
index ae7b9cbf..57be2c3f 100644
--- a/src/qtgui/viewaction_w.cpp
+++ b/src/qtgui/viewaction_w.cpp
@@ -40,16 +40,21 @@ using namespace std;
void ViewAction::init()
{
+ selSamePB->setEnabled(false);
connect(closePB, SIGNAL(clicked()), this, SLOT(close()));
connect(chgActPB, SIGNAL(clicked()), this, SLOT(editActions()));
connect(actionsLV,SIGNAL(itemDoubleClicked(QTableWidgetItem *)),
this, SLOT(onItemDoubleClicked(QTableWidgetItem *)));
+ connect(actionsLV,SIGNAL(itemClicked(QTableWidgetItem *)),
+ this, SLOT(onItemClicked(QTableWidgetItem *)));
useDesktopCB->setChecked(prefs.useDesktopOpen);
onUseDesktopCBToggled(prefs.useDesktopOpen);
connect(useDesktopCB, SIGNAL(stateChanged(int)),
this, SLOT(onUseDesktopCBToggled(int)));
connect(setExceptCB, SIGNAL(stateChanged(int)),
this, SLOT(onSetExceptCBToggled(int)));
+ connect(selSamePB, SIGNAL(clicked()),
+ this, SLOT(onSelSameClicked()));
resize(QSize(640, 480).expandedTo(minimumSizeHint()));
}
@@ -67,6 +72,7 @@ void ViewAction::onSetExceptCBToggled(int onoff)
void ViewAction::fillLists()
{
+ currentLBL->clear();
actionsLV->clear();
actionsLV->verticalHeader()->setDefaultSectionSize(20);
vector > defs;
@@ -111,6 +117,51 @@ void ViewAction::selectMT(const QString& mt)
}
}
+void ViewAction::onSelSameClicked()
+{
+ fprintf(stderr, "onSelSameClicked()\n");
+ actionsLV->clearSelection();
+ QString value = currentLBL->text();
+ if (value.isEmpty())
+ return;
+ string action = qs2utf8s(value);
+ fprintf(stderr, "value: %s\n", action.c_str());
+ vector > defs;
+ theconfig->getMimeViewerDefs(defs);
+ for (unsigned int i = 0; i < defs.size(); i++) {
+ if (defs[i].second == action) {
+ QListitems =
+ actionsLV->findItems(QString::fromAscii(defs[i].first.c_str()),
+ Qt::MatchFixedString|Qt::MatchCaseSensitive);
+ for (QList::iterator it = items.begin();
+ it != items.end(); it++) {
+ (*it)->setSelected(true);
+ QTableWidgetItem *item1 = actionsLV->item((*it)->row(), 1);
+ item1->setSelected(true);
+ }
+ }
+ }
+}
+
+// Fill the input fields with the row's values when the user clicks
+void ViewAction::onItemClicked(QTableWidgetItem * item)
+{
+ QTableWidgetItem *item0 = actionsLV->item(item->row(), 0);
+ string mtype = (const char *)item0->text().toLocal8Bit();
+
+ vector > defs;
+ theconfig->getMimeViewerDefs(defs);
+ for (unsigned int i = 0; i < defs.size(); i++) {
+ if (defs[i].first == mtype) {
+ currentLBL->setText(QString::fromAscii(defs[i].second.c_str()));
+ selSamePB->setEnabled(true);
+ return;
+ }
+ }
+ currentLBL->clear();
+ selSamePB->setEnabled(false);
+}
+
void ViewAction::onItemDoubleClicked(QTableWidgetItem * item)
{
actionsLV->clearSelection();
diff --git a/src/qtgui/viewaction_w.h b/src/qtgui/viewaction_w.h
index e3cae77d..31e292c0 100644
--- a/src/qtgui/viewaction_w.h
+++ b/src/qtgui/viewaction_w.h
@@ -42,9 +42,11 @@ public:
public slots:
virtual void editActions();
+ virtual void onItemClicked(QTableWidgetItem *);
virtual void onItemDoubleClicked(QTableWidgetItem *);
virtual void onUseDesktopCBToggled(int);
virtual void onSetExceptCBToggled(int);
+ virtual void onSelSameClicked();
private:
virtual void init();
virtual void fillLists();
diff --git a/website/BUGS.html b/website/BUGS.html
index 40062bff..5f7ed3e7 100644
--- a/website/BUGS.html
+++ b/website/BUGS.html
@@ -44,8 +44,16 @@ versions.
Preferences->Query configuration->User interface
and erase the result paragraph format string (^A DEL in the text area),
this will reset the string to the default value.
+
+ A release 1.19 change in the way we handle minus characters
+ ('-') broke support for wildcard character ranges (e.g.: [a-z]).
+ A fix would be relatively complicated, so please speak up if you
+ need it because I won't probably do it without further
+ motivation.
+
Real time indexer: when running with gamin on FreeBSD, the indexer can
deadlock in the gamin dialog in some cases.
+
After an upgrade, the recoll GUI sometimes crashes on startup. This is
fixed by removing (back it up just in case)
~/.config/Recoll.org/recoll.conf, the QSettings storage for recoll.