From 7cf12ddcdf3b36be64254f6d7e7c5661044b4eb2 Mon Sep 17 00:00:00 2001 From: dockes Date: Wed, 14 Jan 2009 07:52:11 +0000 Subject: [PATCH] arrange so that the select action dialog is preselected on the right mime type after missing action --- src/qtgui/advsearch.ui | 9 ++++++--- src/qtgui/rclmain_w.cpp | 6 +++--- src/qtgui/uiprefs_w.cpp | 5 +++++ src/qtgui/uiprefs_w.h | 3 ++- src/qtgui/viewaction.ui | 10 +++++++++- src/qtgui/viewaction_w.cpp | 14 +++++++++++++- src/qtgui/viewaction_w.h | 2 ++ 7 files changed, 40 insertions(+), 9 deletions(-) diff --git a/src/qtgui/advsearch.ui b/src/qtgui/advsearch.ui index 51e8330f..eb2acb42 100644 --- a/src/qtgui/advsearch.ui +++ b/src/qtgui/advsearch.ui @@ -66,7 +66,7 @@ Search for <br>documents<br>satisfying: - All non blank fields will be combined with OR or AND conjunctions. <br>"Any" "All" and "None" field types can accept a mix of simple words, and phrases enclosed in double quotes.<br>Fields with no data are ignored. + All non empty fields on the right will be combined with AND ("All clauses" choice) or OR ("Any clause" choice) conjunctions. <br>"Any" "All" and "None" field types can accept a mix of simple words, and phrases enclosed in double quotes.<br>Fields with no data are ignored. @@ -81,6 +81,9 @@ 0 + + All non empty fields on the right will be combined with AND ("All clauses" choice) or OR ("Any clause" choice) conjunctions. <br>"Any" "All" and "None" field types can accept a mix of simple words, and phrases enclosed in double quotes.<br>Fields with no data are ignored. + @@ -179,7 +182,7 @@ - line3 + line4 HLine @@ -413,7 +416,7 @@ - line3 + line5 HLine diff --git a/src/qtgui/rclmain_w.cpp b/src/qtgui/rclmain_w.cpp index d3cea459..be31ca35 100644 --- a/src/qtgui/rclmain_w.cpp +++ b/src/qtgui/rclmain_w.cpp @@ -847,18 +847,18 @@ void RclMain::startNativeViewer(Rcl::Doc doc) } if (cmdpath.empty()) { + QString mt = QString::fromAscii(doc.mimetype.c_str()); QString message = tr("The viewer specified in mimeconf for %1: %2" " is not found.\nDo you want to start the " " preferences dialog ?") - .arg(QString::fromAscii(doc.mimetype.c_str())) - .arg(QString::fromLocal8Bit(lcmd.front().c_str())); + .arg(mt).arg(QString::fromLocal8Bit(lcmd.front().c_str())); switch(QMessageBox::warning(0, "Recoll", message, "Yes", "No", 0, 0, 1)) { case 0: showUIPrefs(); if (uiprefs) - uiprefs->showViewAction(); + uiprefs->showViewAction(mt); break; case 1: diff --git a/src/qtgui/uiprefs_w.cpp b/src/qtgui/uiprefs_w.cpp index 33b2b6d2..69d1aba4 100644 --- a/src/qtgui/uiprefs_w.cpp +++ b/src/qtgui/uiprefs_w.cpp @@ -316,6 +316,11 @@ void UIPrefsDialog::showViewAction() } m_viewAction->show(); } +void UIPrefsDialog::showViewAction(const QString& mt) +{ + showViewAction(); + m_viewAction->selectMT(mt); +} //////////////////////////////////////////// // External / extra search indexes setup diff --git a/src/qtgui/uiprefs_w.h b/src/qtgui/uiprefs_w.h index c59d9097..efde0bf4 100644 --- a/src/qtgui/uiprefs_w.h +++ b/src/qtgui/uiprefs_w.h @@ -66,9 +66,10 @@ public: public slots: virtual void showFontDialog(); virtual void showViewAction(); + virtual void showViewAction(const QString& mt); virtual void resetReslistFont(); virtual void showBrowserDialog(); - virtual void extraDbTextChanged( const QString & text ); + virtual void extraDbTextChanged(const QString& text); virtual void addExtraDbPB_clicked(); virtual void delExtraDbPB_clicked(); virtual void browseDbPB_clicked(); diff --git a/src/qtgui/viewaction.ui b/src/qtgui/viewaction.ui index d462b90f..1f0d7e49 100644 --- a/src/qtgui/viewaction.ui +++ b/src/qtgui/viewaction.ui @@ -8,7 +8,7 @@ 0 0 - 224 + 400 132 @@ -27,6 +27,14 @@ unnamed + + + textLabel1 + + + Select one or several mime types then click "Change Action" + + diff --git a/src/qtgui/viewaction_w.cpp b/src/qtgui/viewaction_w.cpp index ed9e06b3..eeb53e41 100644 --- a/src/qtgui/viewaction_w.cpp +++ b/src/qtgui/viewaction_w.cpp @@ -28,11 +28,13 @@ using namespace std; #if (QT_VERSION < 0x040000) #include +#define QLVEXACTMATCH Qt::ExactMatch #else #include #define QListView Q3ListView #define QListViewItem Q3ListViewItem #define QListViewItemIterator Q3ListViewItemIterator +#define QLVEXACTMATCH Q3ListView::ExactMatch #endif #include @@ -57,7 +59,7 @@ void ViewAction::init() #endif this, SLOT(editAction())); fillLists(); - resize(QSize(450, 250).expandedTo(minimumSizeHint()) ); + resize(QSize(640, 250).expandedTo(minimumSizeHint()) ); } void ViewAction::fillLists() @@ -74,6 +76,16 @@ void ViewAction::fillLists() } +void ViewAction::selectMT(const QString& mt) +{ + QListViewItem *item = actionsLV->findItem(mt, 0, QLVEXACTMATCH); + if (item) { + actionsLV->ensureItemVisible(item); + actionsLV->setSelected(item, true); + actionsLV->setSelectionAnchor(item); + } +} + // To avoid modifying the listview state from the dbl click signal, as // advised by the manual void ViewAction::listDblClicked() diff --git a/src/qtgui/viewaction_w.h b/src/qtgui/viewaction_w.h index bfd25e58..afa35730 100644 --- a/src/qtgui/viewaction_w.h +++ b/src/qtgui/viewaction_w.h @@ -61,6 +61,8 @@ public: } ~ViewAction() {} + void selectMT(const QString& mt); + public slots: virtual void editAction(); virtual void listDblClicked();