From a29e380227b192b96041c3ce832aa345fa113fae Mon Sep 17 00:00:00 2001 From: Jean-Francois Dockes Date: Sat, 4 Dec 2010 15:26:13 +0100 Subject: [PATCH] compiles cleanly without qt3_support. Needs more testing --- src/qtgui/advsearch_w.cpp | 39 ++-- src/qtgui/confgui/confgui.cpp | 276 ++++++++++++----------------- src/qtgui/confgui/confgui.h | 21 +-- src/qtgui/confgui/confguiindex.cpp | 184 +++++++------------ src/qtgui/confgui/confguiindex.h | 28 ++- src/qtgui/main.cpp | 2 +- src/qtgui/preview_w.cpp | 111 ++++++------ src/qtgui/rclhelp.cpp | 6 +- src/qtgui/rclmain_w.cpp | 106 +++++------ src/qtgui/rclmain_w.h | 8 +- src/qtgui/recoll.pro.in | 2 - src/qtgui/reslist.cpp | 53 +++--- src/qtgui/reslist.h | 3 +- src/qtgui/searchclause_w.cpp | 44 ++--- src/qtgui/sort_w.cpp | 15 +- src/qtgui/spell_w.cpp | 27 +-- src/qtgui/ssearch_w.cpp | 86 ++++----- src/qtgui/uiprefs_w.cpp | 35 ++-- src/qtgui/viewaction_w.cpp | 8 +- 19 files changed, 463 insertions(+), 591 deletions(-) diff --git a/src/qtgui/advsearch_w.cpp b/src/qtgui/advsearch_w.cpp index f84c376c..c5b97f18 100644 --- a/src/qtgui/advsearch_w.cpp +++ b/src/qtgui/advsearch_w.cpp @@ -62,7 +62,8 @@ static map cat_rtranslations; void AdvSearch::init() { (void)new HelpClient(this); - HelpClient::installMap(this->name(), "RCL.SEARCH.COMPLEX"); + HelpClient::installMap((const char *)objectName().toUtf8(), + "RCL.SEARCH.COMPLEX"); this->installEventFilter(this); @@ -86,8 +87,8 @@ void AdvSearch::init() connect(addClausePB, SIGNAL(clicked()), this, SLOT(addClause())); connect(delClausePB, SIGNAL(clicked()), this, SLOT(delClause())); - conjunctCMB->insertItem(tr("All clauses")); - conjunctCMB->insertItem(tr("Any clause")); + conjunctCMB->insertItem(1, tr("All clauses")); + conjunctCMB->insertItem(2, tr("Any clause")); // Create preconfigured clauses for (unsigned int i = 0; i < iclausescnt; i++) { @@ -116,7 +117,7 @@ void AdvSearch::init() restrictCtCB->setChecked(m_ignByCats); fillFileTypes(); - subtreeCMB->insertStringList(prefs.asearchSubdirHist); + subtreeCMB->insertItems(0, prefs.asearchSubdirHist); subtreeCMB->setEditText(""); // The clauseline frame is needed to force designer to accept a @@ -151,7 +152,7 @@ bool AdvSearch::eventFilter(QObject *, QEvent *event) if (event->type() == QEvent::KeyPress || event->type() == QEvent::ShortcutOverride) { QKeyEvent *ke = static_cast(event); - if (ke->key() == Qt::Key_Q && (ke->state() & Qt::ControlButton)) { + if (ke->key() == Qt::Key_Q && (ke->modifiers() & Qt::ControlModifier)) { recollNeedsExit = 1; return true; } @@ -165,7 +166,7 @@ void AdvSearch::saveCnf() prefs.advSearchClauses.clear(); for (std::list::iterator cit = m_clauseWins.begin(); cit != m_clauseWins.end(); cit++) { - prefs.advSearchClauses.push_back((*cit)->sTpCMB->currentItem()); + prefs.advSearchClauses.push_back((*cit)->sTpCMB->currentIndex()); } } @@ -290,7 +291,7 @@ void AdvSearch::fillFileTypes() for (list::iterator it = types.begin(); it != types.end(); it++) { QString qs = QString::fromUtf8(it->c_str()); - if (m_ignTypes.findIndex(qs) < 0) + if (m_ignTypes.indexOf(qs) < 0) ql.append(qs); } } else { @@ -306,7 +307,7 @@ void AdvSearch::fillFileTypes() } else { cat = QString::fromUtf8(it->c_str()); } - if (m_ignTypes.findIndex(cat) < 0) + if (m_ignTypes.indexOf(cat) < 0) ql.append(cat); } } @@ -324,7 +325,7 @@ void AdvSearch::saveFileTypes() using namespace Rcl; void AdvSearch::runSearch() { - RefCntr sdata(new SearchData(conjunctCMB->currentItem() == 0 ? + RefCntr sdata(new SearchData(conjunctCMB->currentIndex() == 0 ? SCLT_AND : SCLT_OR)); bool hasclause = false; @@ -339,17 +340,17 @@ void AdvSearch::runSearch() if (!hasclause) return; - if (restrictFtCB->isOn() && noFiltypsLB->count() > 0) { + if (restrictFtCB->isChecked() && noFiltypsLB->count() > 0) { for (int i = 0; i < yesFiltypsLB->count(); i++) { - if (restrictCtCB->isOn()) { + if (restrictCtCB->isChecked()) { QString qcat = yesFiltypsLB->item(i)->text(); map::const_iterator qit; string cat; if ((qit = cat_rtranslations.find(qcat)) != cat_rtranslations.end()) { - cat = (const char *)qit->second.utf8(); + cat = (const char *)qit->second.toUtf8(); } else { - cat = (const char *)qcat.utf8(); + cat = (const char *)qcat.toUtf8(); } list types; rclconfig->getMimeCatTypes(cat, types); @@ -359,19 +360,19 @@ void AdvSearch::runSearch() } } else { sdata->addFiletype((const char *) - yesFiltypsLB->item(i)->text().utf8()); + yesFiltypsLB->item(i)->text().toUtf8()); } } } if (!subtreeCMB->currentText().isEmpty()) { QString current = subtreeCMB->currentText(); - sdata->setTopdir((const char*)subtreeCMB->currentText().utf8()); + sdata->setTopdir((const char*)subtreeCMB->currentText().toUtf8()); // Keep history list clean and sorted. Maybe there would be a // simpler way to do this list entries; for (int i = 0; i < subtreeCMB->count(); i++) { - entries.push_back(subtreeCMB->text(i)); + entries.push_back(subtreeCMB->itemText(i)); } entries.push_back(subtreeCMB->currentText()); entries.sort(); @@ -379,12 +380,12 @@ void AdvSearch::runSearch() subtreeCMB->clear(); for (list::iterator it = entries.begin(); it != entries.end(); it++) { - subtreeCMB->insertItem(*it); + subtreeCMB->addItem(*it); } - subtreeCMB->setCurrentText(current); + subtreeCMB->setCurrentIndex(subtreeCMB->findText(current)); prefs.asearchSubdirHist.clear(); for (int index = 0; index < subtreeCMB->count(); index++) - prefs.asearchSubdirHist.push_back(subtreeCMB->text(index)); + prefs.asearchSubdirHist.push_back(subtreeCMB->itemText(index)); } saveCnf(); diff --git a/src/qtgui/confgui/confgui.cpp b/src/qtgui/confgui/confgui.cpp index 1f6502ee..87b58613 100644 --- a/src/qtgui/confgui/confgui.cpp +++ b/src/qtgui/confgui/confgui.cpp @@ -6,37 +6,11 @@ static char rcsid[] = "@(#$Id: confgui.cpp,v 1.9 2008-05-21 07:21:37 dockes Exp #include #include -#if QT_VERSION < 0x040000 -#define QFRAME_INCLUDE -#define QFILEDIALOG_INCLUDE -#define QLISTBOX_INCLUDE -#define QFILEDIALOG QFileDialog -#define QFRAME QFrame -#define QHBOXLAYOUT QHBoxLayout -#define QLISTBOX QListBox -#define QLISTBOXITEM QListBoxItem -#define QLBEXACTMATCH Qt::ExactMatch -#define QVBOXLAYOUT QVBoxLayout -#else -#include -#include - +#include +#include #include -#define QFRAME_INCLUDE - #include -#define QFILEDIALOG_INCLUDE - -#define QLISTBOX_INCLUDE - -#define QFILEDIALOG Q3FileDialog -#define QFRAME Q3Frame -#define QHBOXLAYOUT Q3HBoxLayout -#define QLISTBOX Q3ListBox -#define QLISTBOXITEM Q3ListBoxItem -#define QLBEXACTMATCH Q3ListBox::ExactMatch -#define QVBOXLAYOUT Q3VBoxLayout -#endif +#include #include #include @@ -47,13 +21,10 @@ static char rcsid[] = "@(#$Id: confgui.cpp,v 1.9 2008-05-21 07:21:37 dockes Exp #include #include #include -#include QFILEDIALOG_INCLUDE #include #include #include -#include QLISTBOX_INCLUDE #include -#include QFRAME_INCLUDE #include "confgui.h" #include "smallut.h" @@ -65,15 +36,15 @@ using std::list; namespace confgui { -const static int spacing = 4; -const static int margin = 6; +const static int spacing = 2; +const static int margin = 2; void ConfParamW::setValue(const QString& value) { if (m_fsencoding) - m_cflink->set(string((const char *)value.local8Bit())); + m_cflink->set(string((const char *)value.toLocal8Bit())); else - m_cflink->set(string((const char *)value.utf8())); + m_cflink->set(string((const char *)value.toUtf8())); } void ConfParamW::setValue(int value) @@ -89,19 +60,26 @@ void ConfParamW::setValue(bool value) m_cflink->set(string(buf)); } +void setSzPol(QWidget *w, QSizePolicy::Policy hpol, + QSizePolicy::Policy vpol, + int hstretch, int vstretch) +{ + QSizePolicy policy(hpol, vpol); + policy.setHorizontalStretch(hstretch); + policy.setVerticalStretch(vstretch); + policy.setHeightForWidth(w->sizePolicy().hasHeightForWidth()); + w->setSizePolicy(policy); +} + bool ConfParamW::createCommon(const QString& lbltxt, const QString& tltptxt) { - m_hl = new QHBOXLAYOUT(this); + m_hl = new QHBoxLayout(this); m_hl->setSpacing(spacing); QLabel *tl = new QLabel(this); - tl->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, - QSizePolicy::Fixed, - 0, // Horizontal stretch - 0, // Vertical stretch - tl->sizePolicy().hasHeightForWidth() ) ); + setSzPol(tl, QSizePolicy::Preferred, QSizePolicy::Fixed, 0, 0); tl->setText(lbltxt); - QToolTip::add(tl, tltptxt); + tl->setToolTip(tltptxt); m_hl->addWidget(tl); @@ -120,21 +98,13 @@ ConfParamIntW::ConfParamIntW(QWidget *parent, ConfLink cflink, return; m_sb = new QSpinBox(this); - m_sb->setMinValue(minvalue); - m_sb->setMaxValue(maxvalue); - m_sb->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, - QSizePolicy::Fixed, - 0, // Horizontal stretch - 0, // Vertical stretch - m_sb->sizePolicy().hasHeightForWidth())); + m_sb->setMinimum(minvalue); + m_sb->setMaximum(maxvalue); + setSzPol(m_sb, QSizePolicy::Fixed, QSizePolicy::Fixed, 0, 0); m_hl->addWidget(m_sb); - QFRAME *fr = new QFRAME(this); - fr->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, - QSizePolicy::Fixed, - 1, // Horizontal stretch - 0, // Vertical stretch - fr->sizePolicy().hasHeightForWidth() ) ); + QFrame *fr = new QFrame(this); + setSzPol(fr, QSizePolicy::Preferred, QSizePolicy::Fixed, 0, 0); m_hl->addWidget(fr); loadValue(); @@ -158,12 +128,10 @@ ConfParamStrW::ConfParamStrW(QWidget *parent, ConfLink cflink, { if (!createCommon(lbltxt, tltptxt)) return; + m_le = new QLineEdit(this); - m_le->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, - QSizePolicy::Fixed, - 1, // Horizontal stretch - 0, // Vertical stretch - m_le->sizePolicy().hasHeightForWidth())); + setSzPol(m_le, QSizePolicy::Preferred, QSizePolicy::Fixed, 1, 0); + m_hl->addWidget(m_le); loadValue(); @@ -190,14 +158,12 @@ ConfParamCStrW::ConfParamCStrW(QWidget *parent, ConfLink cflink, { if (!createCommon(lbltxt, tltptxt)) return; - m_cmb = new QComboBox(false, this); - m_cmb->insertStringList(sl); - // m_cmb->setEditable(false); - m_cmb->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, - QSizePolicy::Fixed, - 1, // Horizontal stretch - 0, // Vertical stretch - m_cmb->sizePolicy().hasHeightForWidth())); + m_cmb = new QComboBox(this); + m_cmb->setEditable(FALSE); + m_cmb->insertItems(0, sl); + + setSzPol(m_cmb, QSizePolicy::Preferred, QSizePolicy::Fixed, 1, 0); + m_hl->addWidget(m_cmb); loadValue(); @@ -216,8 +182,8 @@ void ConfParamCStrW::loadValue() cs = QString::fromUtf8(s.c_str()); for (int i = 0; i < m_cmb->count(); i++) { - if (!cs.compare(m_cmb->text(i))) { - m_cmb->setCurrentItem(i); + if (!cs.compare(m_cmb->itemText(i))) { + m_cmb->setCurrentIndex(i); break; } } @@ -229,29 +195,20 @@ ConfParamBoolW::ConfParamBoolW(QWidget *parent, ConfLink cflink, : ConfParamW(parent, cflink) { // No createCommon because the checkbox has a label - m_hl = new QHBOXLAYOUT(this); + m_hl = new QHBoxLayout(this); m_hl->setSpacing(spacing); m_cb = new QCheckBox(lbltxt, this); - m_cb->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, - QSizePolicy::Fixed, - 0, // Horizontal stretch - 0, // Vertical stretch - m_cb->sizePolicy().hasHeightForWidth())); - QToolTip::add(m_cb, tltptxt); + setSzPol(m_cb, QSizePolicy::Fixed, QSizePolicy::Fixed, 0, 0); + m_cb->setToolTip(tltptxt); m_hl->addWidget(m_cb); - QFRAME *fr = new QFRAME(this); - fr->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, - QSizePolicy::Fixed, - 1, // Horizontal stretch - 0, // Vertical stretch - fr->sizePolicy().hasHeightForWidth())); + QFrame *fr = new QFrame(this); + setSzPol(fr, QSizePolicy::Preferred, QSizePolicy::Fixed, 1, 0); m_hl->addWidget(fr); loadValue(); - QObject::connect(m_cb, SIGNAL(toggled(bool)), - this, SLOT(setValue(bool))); + QObject::connect(m_cb, SIGNAL(toggled(bool)), this, SLOT(setValue(bool))); } void ConfParamBoolW::loadValue() @@ -272,22 +229,14 @@ ConfParamFNW::ConfParamFNW(QWidget *parent, ConfLink cflink, return; m_fsencoding = true; + m_le = new QLineEdit(this); m_le->setMinimumSize(QSize(150, 0 )); - m_le->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, - QSizePolicy::Fixed, - 1, // Horizontal stretch - 0, // Vertical stretch - m_le->sizePolicy().hasHeightForWidth())); + setSzPol(m_le, QSizePolicy::Preferred, QSizePolicy::Fixed, 1, 0); m_hl->addWidget(m_le); m_pb = new QPushButton(this); - m_pb->setText(tr("Browse")); - m_pb->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, - QSizePolicy::Fixed, - 0, // Horizontal stretch - 0, // Vertical stretch - m_pb->sizePolicy().hasHeightForWidth())); + setSzPol(m_pb, QSizePolicy::Fixed, QSizePolicy::Fixed, 1, 0); m_hl->addWidget(m_pb); loadValue(); @@ -306,68 +255,56 @@ void ConfParamFNW::loadValue() void ConfParamFNW::showBrowserDialog() { QString s = m_isdir ? - QFILEDIALOG::getExistingDirectory() : QFILEDIALOG::getSaveFileName(); + QFileDialog::getExistingDirectory() : QFileDialog::getSaveFileName(); if (!s.isEmpty()) m_le->setText(s); } +class SmallerListWidget: public QListWidget +{ +public: + SmallerListWidget(QWidget *parent) + : QListWidget(parent) {} + virtual QSize sizeHint() {return QSize(150, 40);} +}; + ConfParamSLW::ConfParamSLW(QWidget *parent, ConfLink cflink, const QString& lbltxt, const QString& tltptxt) : ConfParamW(parent, cflink) { // Can't use createCommon here cause we want the buttons below the label - m_hl = new QHBOXLAYOUT(this); + m_hl = new QHBoxLayout(this); m_hl->setSpacing(spacing); - QVBOXLAYOUT *vl1 = new QVBOXLAYOUT(); - QHBOXLAYOUT *hl1 = new QHBOXLAYOUT(); + QVBoxLayout *vl1 = new QVBoxLayout(); + QHBoxLayout *hl1 = new QHBoxLayout(); QLabel *tl = new QLabel(this); - tl->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, - QSizePolicy::Fixed, - 0, // Horizontal stretch - 0, // Vertical stretch - tl->sizePolicy().hasHeightForWidth())); + setSzPol(tl, QSizePolicy::Preferred, QSizePolicy::Fixed, 0, 0); tl->setText(lbltxt); - QToolTip::add(tl, tltptxt); + tl->setToolTip(tltptxt); vl1->addWidget(tl); QPushButton *pbA = new QPushButton(this); pbA->setText(tr("+")); - pbA->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, - QSizePolicy::Fixed, - 0, // Horizontal stretch - 0, // Vertical stretch - pbA->sizePolicy().hasHeightForWidth())); + setSzPol(pbA, QSizePolicy::Fixed, QSizePolicy::Fixed, 0, 0); hl1->addWidget(pbA); + QPushButton *pbD = new QPushButton(this); + setSzPol(pbD, QSizePolicy::Fixed, QSizePolicy::Fixed, 0, 0); pbD->setText(tr("-")); - pbD->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, - QSizePolicy::Fixed, - 0, // Horizontal stretch - 0, // Vertical stretch - pbD->sizePolicy().hasHeightForWidth())); hl1->addWidget(pbD); vl1->addLayout(hl1); m_hl->addLayout(vl1); - m_lb = new QLISTBOX(this); - m_lb->setSelectionMode(QLISTBOX::Extended); - m_lb->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, - QSizePolicy::Preferred, - 1, // Horizontal stretch - 1, // Vertical stretch - m_lb->sizePolicy().hasHeightForWidth())); + m_lb = new SmallerListWidget(this); + m_lb->setSelectionMode(QAbstractItemView::ExtendedSelection); + setSzPol(m_lb, QSizePolicy::Preferred, QSizePolicy::Preferred, 1, 1); m_hl->addWidget(m_lb); - this->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, - QSizePolicy::Preferred, - 1, // Horizontal stretch - 1, // Vertical stretch - this->sizePolicy().hasHeightForWidth())); - + setSzPol(this, QSizePolicy::Preferred, QSizePolicy::Preferred, 1, 1); loadValue(); QObject::connect(pbA, SIGNAL(clicked()), this, SLOT(showInputDialog())); QObject::connect(pbD, SIGNAL(clicked()), this, SLOT(deleteSelected())); @@ -387,22 +324,25 @@ void ConfParamSLW::loadValue() qls.push_back(QString::fromUtf8(it->c_str())); } m_lb->clear(); - m_lb->insertStringList(qls); + m_lb->insertItems(0, qls); } void ConfParamSLW::showInputDialog() { bool ok; - QString s = QInputDialog::getText("", // Caption - "", // Label - QLineEdit::Normal, // Mode - QString::null, // text - &ok, - this); + QString s = QInputDialog::getText (this, + "", // title + "", // label, + QLineEdit::Normal, // EchoMode mode + "", // const QString & text + &ok); + if (ok && !s.isEmpty()) { - if (m_lb->findItem(s, QLBEXACTMATCH) == 0) { - m_lb->insertItem(s); - m_lb->sort(); + QListitems = + m_lb->findItems(s, Qt::MatchFixedString|Qt::MatchCaseSensitive); + if (items.empty()) { + m_lb->insertItem(0, s); + m_lb->sortItems(); listToConf(); } } @@ -411,14 +351,15 @@ void ConfParamSLW::showInputDialog() void ConfParamSLW::listToConf() { list ls; - for (unsigned int i = 0; i < m_lb->count(); i++) { + for (int i = 0; i < m_lb->count(); i++) { // General parameters are encoded as utf-8. File names as // local8bit There is no hope for 8bit file names anyway // except for luck: the original encoding is unknown. + QString text = m_lb->item(i)->text(); if (m_fsencoding) - ls.push_back((const char *)(m_lb->text(i).local8Bit())); + ls.push_back((const char *)(text.toLocal8Bit())); else - ls.push_back((const char *)(m_lb->text(i).utf8())); + ls.push_back((const char *)(text.toUtf8())); } string s; stringsToString(ls, s); @@ -430,10 +371,11 @@ void ConfParamSLW::deleteSelected() bool didone; do { didone = false; - for (unsigned int i = 0; i < m_lb->count(); i++) { - if (m_lb->isSelected(i)) { - emit entryDeleted(m_lb->text(i)); - m_lb->removeItem(i); + for (int i = 0; i < m_lb->count(); i++) { + if (m_lb->item(i)->isSelected()) { + emit entryDeleted(m_lb->item(i)->text()); + QListWidgetItem *item = m_lb->takeItem(i); + delete item; didone = true; break; } @@ -445,14 +387,18 @@ void ConfParamSLW::deleteSelected() // "Add entry" dialog for a file name list void ConfParamDNLW::showInputDialog() { - QString s = QFILEDIALOG::getExistingDirectory(); + QString s = QFileDialog::getExistingDirectory(); if (!s.isEmpty()) { - if (m_lb->findItem(s, QLBEXACTMATCH) == 0) { - m_lb->insertItem(s); - m_lb->sort(); - QLISTBOXITEM *item = m_lb->findItem(s, QLBEXACTMATCH); - if (m_lb->selectionMode() == QLISTBOX::Single && item) - m_lb->setSelected(item, true); + QListitems = + m_lb->findItems(s, Qt::MatchFixedString|Qt::MatchCaseSensitive); + if (items.empty()) { + m_lb->insertItem(0, s); + m_lb->sortItems(); + QListitems = + m_lb->findItems(s, Qt::MatchFixedString|Qt::MatchCaseSensitive); + if (m_lb->selectionMode() == QAbstractItemView::SingleSelection && + !items.empty()) + (*items.begin())->setSelected(TRUE); listToConf(); } } @@ -462,16 +408,20 @@ void ConfParamDNLW::showInputDialog() void ConfParamCSLW::showInputDialog() { bool ok; - QString s = QInputDialog::getItem("", // Caption - "", // Label - m_sl, // List - 0, // current - false, // editable, - &ok); + QString s = QInputDialog::getItem (this, // parent + "", // title + "", // label, + m_sl, // items, + 0, // current = 0 + FALSE, // editable = true, + &ok); + if (ok && !s.isEmpty()) { - if (m_lb->findItem(s, QLBEXACTMATCH) == 0) { - m_lb->insertItem(s); - m_lb->sort(); + QListitems = + m_lb->findItems(s, Qt::MatchFixedString|Qt::MatchCaseSensitive); + if (items.empty()) { + m_lb->insertItem(0, s); + m_lb->sortItems(); listToConf(); } } diff --git a/src/qtgui/confgui/confgui.h b/src/qtgui/confgui/confgui.h index 7c0adee3..1c70a039 100644 --- a/src/qtgui/confgui/confgui.h +++ b/src/qtgui/confgui/confgui.h @@ -27,21 +27,14 @@ #include #include #include -#if QT_VERSION < 0x040000 -#define QHBOXLAYOUT QHBoxLayout -#define QLISTBOX QListBox -#else -#define QHBOXLAYOUT Q3HBoxLayout -#define QLISTBOX Q3ListBox -#endif #include "refcntr.h" using std::string; -class QHBOXLAYOUT; +class QHBoxLayout; class QLineEdit; -class QLISTBOX; +class QListWidget; class QSpinBox; class QComboBox; class QCheckBox; @@ -84,7 +77,7 @@ namespace confgui { virtual void setFsEncoding(bool onoff) {m_fsencoding = onoff;} protected: ConfLink m_cflink; - QHBOXLAYOUT *m_hl; + QHBoxLayout *m_hl; // File names are encoded as local8bit in the config files. Other // are encoded as utf-8 bool m_fsencoding; @@ -192,7 +185,7 @@ namespace confgui { const QString& lbltxt, const QString& tltptxt); virtual void loadValue(); - QLISTBOX *getListBox() {return m_lb;} + QListWidget *getListBox() {return m_lb;} public slots: virtual void setEnabled(bool i) {if(m_lb) ((QWidget*)m_lb)->setEnabled(i);} @@ -202,7 +195,7 @@ namespace confgui { signals: void entryDeleted(QString); protected: - QLISTBOX *m_lb; + QListWidget *m_lb; void listToConf(); }; @@ -237,6 +230,10 @@ namespace confgui { protected: const QStringList m_sl; }; + + extern void setSzPol(QWidget *w, QSizePolicy::Policy hpol, + QSizePolicy::Policy vpol, + int hstretch, int vstretch); } #endif /* _confgui_h_included_ */ diff --git a/src/qtgui/confgui/confguiindex.cpp b/src/qtgui/confgui/confguiindex.cpp index e9fa15c7..48826732 100644 --- a/src/qtgui/confgui/confguiindex.cpp +++ b/src/qtgui/confgui/confguiindex.cpp @@ -3,49 +3,18 @@ static char rcsid[] = "@(#$Id: confguiindex.cpp,v 1.13 2008-09-30 12:38:29 docke #endif #include -#if QT_VERSION < 0x040000 -#define QFRAME_INCLUDE -#define QFILEDIALOG_INCLUDE -#define QLISTBOX_INCLUDE -#define QFILEDIALOG QFileDialog -#define QFRAME QFrame -#define QHBOXLAYOUT QHBoxLayout -#define QLISTBOX QListBox -#define QLISTBOXITEM QListBoxItem -#define QLBEXACTMATCH Qt::ExactMatch -#define QVBOXLAYOUT QVBoxLayout -#define QGROUPBOX QGroupBox -#include -#else -#include -#include -#include - +#include +#include +#include #include -#define QFRAME_INCLUDE - #include -#define QFILEDIALOG_INCLUDE - -#define QLISTBOX_INCLUDE - -#define QFILEDIALOG Q3FileDialog -#define QFRAME Q3Frame -#define QHBOXLAYOUT Q3HBoxLayout -#define QLISTBOX Q3ListBox -#define QLISTBOXITEM Q3ListBoxItem -#define QLBEXACTMATCH Q3ListBox::ExactMatch -#define QVBOXLAYOUT Q3VBoxLayout -#define QGROUPBOX Q3GroupBox -#endif #include -#include QFRAME_INCLUDE #include #include -#include QLISTBOX_INCLUDE #include #include #include +#include #include using std::list; @@ -62,20 +31,28 @@ using std::list; #include "rclconfig.h" namespace confgui { -const static int spacing = 6; -const static int margin = 6; +const static int spacing = 3; +const static int margin = 3; ConfIndexW::ConfIndexW(QWidget *parent, RclConfig *config) - : QTABDIALOG(parent), m_rclconf(config) + : QDialog(parent), m_rclconf(config) { - setCaption(QString::fromLocal8Bit(config->getConfDir().c_str())); - setOkButton(); - setCancelButton(); - + setWindowTitle(QString::fromLocal8Bit(config->getConfDir().c_str())); + tabWidget = new QTabWidget; reloadPanels(); - resize(QSize(600, 500).expandedTo(minimumSizeHint())); - connect(this, SIGNAL(applyButtonPressed()), this, SLOT(acceptChanges())); - connect(this, SIGNAL(cancelButtonPressed()), this, SLOT(rejectChanges())); + + buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok + | QDialogButtonBox::Cancel); + + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addWidget(tabWidget); + mainLayout->addWidget(buttonBox); + setLayout(mainLayout); + + resize(QSize(600, 450).expandedTo(minimumSizeHint())); + + connect(buttonBox, SIGNAL(accepted()), this, SLOT(acceptChanges())); + connect(buttonBox, SIGNAL(rejected()), this, SLOT(rejectChanges())); } void ConfIndexW::acceptChanges() @@ -101,6 +78,7 @@ void ConfIndexW::acceptChanges() startIndexingAfterConfig = 0; start_indexing(true); } + hide(); } void ConfIndexW::rejectChanges() @@ -110,6 +88,7 @@ void ConfIndexW::rejectChanges() delete m_conf; m_conf = 0; QTimer::singleShot(0, this, SLOT(reloadPanels())); + hide(); } void ConfIndexW::reloadPanels() @@ -117,31 +96,26 @@ void ConfIndexW::reloadPanels() if ((m_conf = m_rclconf->cloneMainConfig()) == 0) return; m_conf->holdWrites(true); - for (list::iterator it = m_widgets.begin(); - it != m_widgets.end(); it++) { - removePage(*it); - delete *it; - } + tabWidget->clear(); m_widgets.clear(); QWidget *w = new ConfTopPanelW(this, m_conf); m_widgets.push_back(w); - addTab(w, QObject::tr("Global parameters")); + tabWidget->addTab(w, QObject::tr("Global parameters")); w = new ConfSubPanelW(this, m_conf); m_widgets.push_back(w); - addTab(w, QObject::tr("Local parameters")); + tabWidget->addTab(w, QObject::tr("Local parameters")); w = new ConfBeaglePanelW(this, m_conf); m_widgets.push_back(w); - addTab(w, QObject::tr("Beagle web history")); - + tabWidget->addTab(w, QObject::tr("Beagle web history")); } ConfBeaglePanelW::ConfBeaglePanelW(QWidget *parent, ConfNull *config) : QWidget(parent) { - QVBOXLAYOUT *vboxLayout = new QVBOXLAYOUT(this); + QVBoxLayout *vboxLayout = new QVBoxLayout(this); vboxLayout->setSpacing(spacing); vboxLayout->setMargin(margin); @@ -161,7 +135,7 @@ ConfBeaglePanelW::ConfBeaglePanelW(QWidget *parent, ConfNull *config) "for visited web pages.
" "A non-absolute path is taken relative to the " "configuration directory."), true); - cp2->setEnabled(cp1->m_cb->isOn()); + cp2->setEnabled(cp1->m_cb->isChecked()); connect(cp1->m_cb, SIGNAL(toggled(bool)), cp2, SLOT(setEnabled(bool))); vboxLayout->addWidget(cp2); @@ -170,7 +144,7 @@ ConfBeaglePanelW::ConfBeaglePanelW(QWidget *parent, ConfNull *config) new ConfParamIntW(this, lnk3, tr("Max. size for the web cache (MB)"), tr("Entries will be recycled once the size is reached"), -1, 1000); - cp3->setEnabled(cp1->m_cb->isOn()); + cp3->setEnabled(cp1->m_cb->isChecked()); connect(cp1->m_cb, SIGNAL(toggled(bool)), cp3, SLOT(setEnabled(bool))); vboxLayout->addWidget(cp3); vboxLayout->insertStretch(-1); @@ -188,11 +162,8 @@ ConfTopPanelW::ConfTopPanelW(QWidget *parent, ConfNull *config) ConfParamDNLW(this, lnktopdirs, tr("Top directories"), tr("The list of directories where recursive " "indexing starts. Default: your home.")); -#if QT_VERSION < 0x040000 - gl1->addMultiCellWidget(etopdirs, 0, 0, 0, 1); -#else + setSzPol(etopdirs, QSizePolicy::Preferred, QSizePolicy::Preferred, 1, 3); gl1->addWidget(etopdirs, 0, 0, 1, 2); -#endif ConfLink lnkskp(new ConfLinkRclRep(config, "skippedPaths")); ConfParamSLW *eskp = new @@ -205,11 +176,8 @@ ConfTopPanelW::ConfTopPanelW(QWidget *parent, ConfNull *config) "to '/usr/home', a correct skippedPath entry " "would be '/home/me/tmp*', not '/usr/home/me/tmp*')")); eskp->setFsEncoding(true); -#if QT_VERSION < 0x040000 - gl1->addMultiCellWidget(eskp, 1, 1, 0, 1); -#else + setSzPol(eskp, QSizePolicy::Preferred, QSizePolicy::Preferred, 1, 3); gl1->addWidget(eskp, 1, 0, 1, 2); -#endif list cstemlangs = Rcl::Db::getStemmerNames(); QStringList stemlangs; @@ -222,22 +190,15 @@ ConfTopPanelW::ConfTopPanelW(QWidget *parent, ConfNull *config) ConfParamCSLW(this, lnkidxsl, tr("Stemming languages"), tr("The languages for which stemming expansion
" "dictionaries will be built."), stemlangs); -#if QT_VERSION < 0x040000 - gl1->addMultiCellWidget(eidxsl, 2, 2, 0, 1); -#else + setSzPol(eidxsl, QSizePolicy::Preferred, QSizePolicy::Preferred, 1, 1); gl1->addWidget(eidxsl, 2, 0, 1, 2); -#endif ConfLink lnk4(new ConfLinkRclRep(config, "logfilename")); ConfParamFNW *e4 = new ConfParamFNW(this, lnk4, tr("Log file name"), tr("The file where the messages will be written.
" "Use 'stderr' for terminal output"), false); -#if QT_VERSION < 0x040000 - gl1->addMultiCellWidget(e4, 3, 3, 0, 1); -#else gl1->addWidget(e4, 3, 0, 1, 2); -#endif QWidget *w = 0; @@ -289,7 +250,7 @@ ConfTopPanelW::ConfTopPanelW(QWidget *parent, ConfNull *config) "To get an idea of what is installed on your system, " "type 'aspell config' and look for .dat files inside " "the 'data-dir' directory. ")); - cpaspl->setEnabled(!cpasp->m_cb->isOn()); + cpaspl->setEnabled(!cpasp->m_cb->isChecked()); connect(cpasp->m_cb, SIGNAL(toggled(bool)), cpaspl,SLOT(setDisabled(bool))); gl1->addWidget(cpaspl, 6, 1); @@ -300,17 +261,13 @@ ConfTopPanelW::ConfTopPanelW(QWidget *parent, ConfNull *config) "A non-absolute path is taken relative to the " " configuration directory. The default is 'xapiandb'." ), true); -#if QT_VERSION < 0x040000 - gl1->addMultiCellWidget(edbd, 7, 7, 0, 1); -#else gl1->addWidget(edbd, 7, 0, 1, 2); -#endif } ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config) : QWidget(parent), m_config(config) { - QVBOXLAYOUT *vboxLayout = new QVBOXLAYOUT(this); + QVBoxLayout *vboxLayout = new QVBoxLayout(this); vboxLayout->setSpacing(spacing); vboxLayout->setMargin(margin); @@ -321,9 +278,11 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config) QObject::tr("The list of subdirectories in the indexed " "hierarchy
where some parameters need " "to be redefined. Default: empty.")); - m_subdirs->getListBox()->setSelectionMode(QLISTBOX::Single); - connect(m_subdirs->getListBox(), SIGNAL(selectionChanged()), - this, SLOT(subDirChanged())); + m_subdirs->getListBox()->setSelectionMode(QAbstractItemView::SingleSelection); + connect(m_subdirs->getListBox(), + SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)), + this, + SLOT(subDirChanged(QListWidgetItem *, QListWidgetItem *))); connect(m_subdirs, SIGNAL(entryDeleted(QString)), this, SLOT(subDirDeleted(QString))); list allkeydirs = config->getSubKeys(); @@ -332,12 +291,12 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config) it != allkeydirs.end(); it++) { qls.push_back(QString::fromUtf8(it->c_str())); } - m_subdirs->getListBox()->insertStringList(qls); + m_subdirs->getListBox()->insertItems(0, qls); vboxLayout->addWidget(m_subdirs); - QFRAME *line2 = new QFRAME(this); - line2->setFrameShape(QFRAME::HLine); - line2->setFrameShadow(QFRAME::Sunken); + QFrame *line2 = new QFrame(this); + line2->setFrameShape(QFrame::HLine); + line2->setFrameShadow(QFrame::Sunken); vboxLayout->addWidget(line2); QLabel *explain = new QLabel(this); @@ -352,31 +311,22 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config) vboxLayout->addWidget(explain); - m_groupbox = new QGROUPBOX(1, Qt::Horizontal, this); - m_groupbox->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, - QSizePolicy::Preferred, - 1, // Horizontal stretch - 3, // Vertical stretch - m_groupbox->sizePolicy().hasHeightForWidth())); + m_groupbox = new QGroupBox(this); + setSzPol(m_groupbox, QSizePolicy::Preferred, QSizePolicy::Preferred, 1, 3); - QWidget *w = new QWidget(m_groupbox); - QGridLayout *gl1 = new QGridLayout(w); + QGridLayout *gl1 = new QGridLayout(m_groupbox); gl1->setSpacing(spacing); gl1->setMargin(margin); ConfLink lnkskn(new ConfLinkRclRep(config, "skippedNames", &m_sk)); ConfParamSLW *eskn = new - ConfParamSLW(w, lnkskn, + ConfParamSLW(m_groupbox, lnkskn, QObject::tr("Skipped names"), QObject::tr("These are patterns for file or directory " " names which should not be indexed.")); eskn->setFsEncoding(true); m_widgets.push_back(eskn); -#if QT_VERSION < 0x040000 - gl1->addMultiCellWidget(eskn, 0, 0, 0, 1); -#else gl1->addWidget(eskn, 0, 0, 1, 2); -#endif list args; args.push_back("-l"); @@ -399,7 +349,7 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config) ConfLink lnk21(new ConfLinkRclRep(config, "defaultcharset", &m_sk)); ConfParamCStrW *e21 = new - ConfParamCStrW(w, lnk21, + ConfParamCStrW(m_groupbox, lnk21, QObject::tr("Default character set"), QObject::tr("This is the character set used for reading files " "which do not identify the character set " @@ -408,15 +358,11 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config) "and the value from the NLS environnement is used." ), charsets); m_widgets.push_back(e21); -#if QT_VERSION < 0x040000 - gl1->addMultiCellWidget(e21, 1, 1, 0, 1); -#else gl1->addWidget(e21, 1, 0, 1, 2); -#endif ConfLink lnk3(new ConfLinkRclRep(config, "followLinks", &m_sk)); ConfParamBoolW *e3 = new - ConfParamBoolW(w, lnk3, + ConfParamBoolW(m_groupbox, lnk3, QObject::tr("Follow symbolic links"), QObject::tr("Follow symbolic links while " "indexing. The default is no, " @@ -426,7 +372,7 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config) ConfLink lnkafln(new ConfLinkRclRep(config, "indexallfilenames", &m_sk)); ConfParamBoolW *eafln = new - ConfParamBoolW(w, lnkafln, + ConfParamBoolW(m_groupbox, lnkafln, QObject::tr("Index all file names"), QObject::tr("Index the names of files for which the contents " "cannot be identified or processed (no or " @@ -436,7 +382,7 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config) ConfLink lnkzfmaxkbs(new ConfLinkRclRep(config, "compressedfilemaxkbs")); ConfParamIntW *ezfmaxkbs = new - ConfParamIntW(w, lnkzfmaxkbs, + ConfParamIntW(m_groupbox, lnkzfmaxkbs, tr("Max. compressed file size (KB)"), tr("This value sets a threshold beyond which compressed" "files will not be processed. Set to -1 for no " @@ -447,7 +393,7 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config) ConfLink lnktxtmaxmbs(new ConfLinkRclRep(config, "textfilemaxmbs")); ConfParamIntW *etxtmaxmbs = new - ConfParamIntW(w, lnktxtmaxmbs, + ConfParamIntW(m_groupbox, lnktxtmaxmbs, tr("Max. text file size (MB)"), tr("This value sets a threshold beyond which text " "files will not be processed. Set to -1 for no " @@ -459,7 +405,7 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config) ConfLink lnktxtpagekbs(new ConfLinkRclRep(config, "textfilepagekbs")); ConfParamIntW *etxtpagekbs = new - ConfParamIntW(w, lnktxtpagekbs, + ConfParamIntW(m_groupbox, lnktxtpagekbs, tr("Text file page size (KB)"), tr("If this value is set (not equal to -1), text " "files will be split in chunks of this size for " @@ -471,7 +417,7 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config) ConfLink lnkfiltmaxsecs(new ConfLinkRclRep(config, "filtermaxseconds")); ConfParamIntW *efiltmaxsecs = new - ConfParamIntW(w, lnkfiltmaxsecs, + ConfParamIntW(m_groupbox, lnkfiltmaxsecs, tr("Max. filter exec. time (S)"), tr("External filters working longer than this will be " "aborted. This is for the rare case (ie: postscript) " @@ -482,7 +428,7 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config) gl1->addWidget(efiltmaxsecs, 4, 1); vboxLayout->addWidget(m_groupbox); - subDirChanged(); + subDirChanged(0, 0); } void ConfSubPanelW::reloadAll() @@ -493,16 +439,16 @@ void ConfSubPanelW::reloadAll() } } -void ConfSubPanelW::subDirChanged() +void ConfSubPanelW::subDirChanged(QListWidgetItem *current, QListWidgetItem *) { LOGDEB(("ConfSubPanelW::subDirChanged\n")); - QLISTBOXITEM *item = m_subdirs->getListBox()->selectedItem(); - if (item == 0 || item->text() == "") { + + if (current == 0 || current->text() == "") { m_sk = ""; m_groupbox->setTitle(tr("Global")); } else { - m_sk = (const char *)item->text().utf8(); - m_groupbox->setTitle(item->text()); + m_sk = (const char *) current->text().toUtf8(); + m_groupbox->setTitle(current->text()); } LOGDEB(("ConfSubPanelW::subDirChanged: now [%s]\n", m_sk.c_str())); reloadAll(); @@ -510,20 +456,20 @@ void ConfSubPanelW::subDirChanged() void ConfSubPanelW::subDirDeleted(QString sbd) { - LOGDEB(("ConfSubPanelW::subDirDeleted(%s)\n", (const char *)sbd.utf8())); + LOGDEB(("ConfSubPanelW::subDirDeleted(%s)\n", (const char *)sbd.toUtf8())); if (sbd == "") { // Can't do this, have to reinsert it QTimer::singleShot(0, this, SLOT(restoreEmpty())); return; } // Have to delete all entries for submap - m_config->eraseKey((const char *)sbd.utf8()); + m_config->eraseKey((const char *)sbd.toUtf8()); } void ConfSubPanelW::restoreEmpty() { LOGDEB(("ConfSubPanelW::restoreEmpty()\n")); - m_subdirs->getListBox()->insertItem("", 0); + m_subdirs->getListBox()->insertItem(0, ""); } } // Namespace confgui diff --git a/src/qtgui/confgui/confguiindex.h b/src/qtgui/confgui/confguiindex.h index b7c34a91..dc8d4a17 100644 --- a/src/qtgui/confgui/confguiindex.h +++ b/src/qtgui/confgui/confguiindex.h @@ -7,17 +7,13 @@ * confgui elements, linked to configuration parameters, into panels. */ -#include -#include -#if QT_VERSION < 0x040000 -#include -#include -#define QTABDIALOG QTabDialog -#else // Qt4 -> -#include -#include -#define QTABDIALOG Q3TabDialog -#endif // QT 3/4 +#include +#include +#include +#include +#include +#include +#include #include #include @@ -31,7 +27,7 @@ class ConfParamDNLW; namespace confgui { -class ConfIndexW : public QTABDIALOG { +class ConfIndexW : public QDialog { Q_OBJECT public: ConfIndexW(QWidget *parent, RclConfig *config); @@ -43,6 +39,8 @@ private: RclConfig *m_rclconf; ConfNull *m_conf; list m_widgets; + QTabWidget *tabWidget; + QDialogButtonBox *buttonBox; }; /** @@ -64,7 +62,7 @@ public: ConfSubPanelW(QWidget *parent, ConfNull *config); private slots: - void subDirChanged(); + void subDirChanged(QListWidgetItem *, QListWidgetItem *); void subDirDeleted(QString); void restoreEmpty(); private: @@ -72,11 +70,7 @@ private: ConfParamDNLW *m_subdirs; list m_widgets; ConfNull *m_config; -#if QT_VERSION < 0x040000 QGroupBox *m_groupbox; -#else - Q3GroupBox *m_groupbox; -#endif void reloadAll(); }; diff --git a/src/qtgui/main.cpp b/src/qtgui/main.cpp index 2d923bd9..1325bf91 100644 --- a/src/qtgui/main.cpp +++ b/src/qtgui/main.cpp @@ -208,7 +208,7 @@ int main(int argc, char **argv) question += *argv++; } - // Translation file for Qt TOBEDONE ? + // Translation file for Qt QString slang = QLocale::system().name().left(2); QTranslator qt(0); qt.load(QString("qt_") + slang, "." ); diff --git a/src/qtgui/preview_w.cpp b/src/qtgui/preview_w.cpp index ecfcae33..444581be 100644 --- a/src/qtgui/preview_w.cpp +++ b/src/qtgui/preview_w.cpp @@ -86,7 +86,7 @@ public: virtual string startMatch() { return string(""); } @@ -110,9 +110,10 @@ public: }; PreviewTextEdit::PreviewTextEdit(QWidget* parent,const char* name, Preview *pv) - : QTextEdit(parent, name), m_preview(pv), m_dspflds(false) + : QTextEdit(parent), m_preview(pv), m_dspflds(false) { setContextMenuPolicy(Qt::CustomContextMenu); + setObjectName(name); connect(this, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(createPopupMenu(const QPoint&))); m_plaintorich = new PlainToRichQtPreview(); @@ -125,44 +126,39 @@ PreviewTextEdit::~PreviewTextEdit() void Preview::init() { - setName("Preview"); - setSizePolicy( QSizePolicy((QSizePolicy::SizeType)5, - (QSizePolicy::SizeType)5, 0, 0, - sizePolicy().hasHeightForWidth())); - QVBoxLayout* previewLayout = - new QVBoxLayout( this, 4, 6, "previewLayout"); + setObjectName("Preview"); + QVBoxLayout* previewLayout = new QVBoxLayout(this); - pvTab = new QTabWidget(this, "pvTab"); + pvTab = new QTabWidget(this); // Create the first tab. Should be possible to use addEditorTab // but this causes a pb with the sizeing - QWidget *unnamed = new QWidget(pvTab, "unnamed"); - QVBoxLayout *unnamedLayout = - new QVBoxLayout(unnamed, 0, 6, "unnamedLayout"); + QWidget *unnamed = new QWidget(pvTab); + QVBoxLayout *unnamedLayout = new QVBoxLayout(unnamed); PreviewTextEdit *pvEdit = new PreviewTextEdit(unnamed, "pvEdit", this); pvEdit->setReadOnly(TRUE); pvEdit->setUndoRedoEnabled(FALSE); unnamedLayout->addWidget(pvEdit); - pvTab->insertTab(unnamed, QString::fromLatin1("")); + pvTab->addTab(unnamed, ""); previewLayout->addWidget(pvTab); // Create the buttons and entry field - QHBoxLayout *layout3 = new QHBoxLayout(0, 0, 6, "layout3"); - searchLabel = new QLabel(this, "searchLabel"); + QHBoxLayout *layout3 = new QHBoxLayout(0); + searchLabel = new QLabel(this); layout3->addWidget(searchLabel); - searchTextLine = new QLineEdit(this, "searchTextLine"); + searchTextLine = new QLineEdit(this); layout3->addWidget(searchTextLine); - nextButton = new QPushButton(this, "nextButton"); + nextButton = new QPushButton(this); nextButton->setEnabled(TRUE); layout3->addWidget(nextButton); - prevButton = new QPushButton(this, "prevButton"); + prevButton = new QPushButton(this); prevButton->setEnabled(TRUE); layout3->addWidget(prevButton); - clearPB = new QPushButton(this, "clearPB"); + clearPB = new QPushButton(this); clearPB->setEnabled(FALSE); layout3->addWidget(clearPB); - matchCheck = new QCheckBox(this, "matchCheck"); + matchCheck = new QCheckBox(this); layout3->addWidget(matchCheck); previewLayout->addLayout(layout3); @@ -182,7 +178,8 @@ void Preview::init() pvTab->setCornerWidget(bt); (void)new HelpClient(this); - HelpClient::installMap(this->name(), "RCL.SEARCH.PREVIEW"); + HelpClient::installMap((const char *)objectName().toUtf8(), + "RCL.SEARCH.PREVIEW"); // signals and slots connections connect(searchTextLine, SIGNAL(textChanged(const QString&)), @@ -201,7 +198,7 @@ void Preview::init() resize(prefs.pvwidth, prefs.pvheight); } m_loading = false; - currentChanged(pvTab->currentPage()); + currentChanged(pvTab->currentWidget()); m_justCreated = true; m_haveAnchors = false; m_curAnchor = 1; @@ -243,31 +240,31 @@ bool Preview::eventFilter(QObject *target, QEvent *event) PreviewTextEdit *edit = currentEditor(); QKeyEvent *keyEvent = (QKeyEvent *)event; if (keyEvent->key() == Qt::Key_Q && - (keyEvent->state() & Qt::ControlButton)) { + (keyEvent->modifiers() & Qt::ControlModifier)) { recollNeedsExit = 1; return true; } else if (keyEvent->key() == Qt::Key_Escape) { close(); return true; } else if (keyEvent->key() == Qt::Key_Down && - (keyEvent->state() & Qt::ShiftButton)) { + (keyEvent->modifiers() & Qt::ShiftModifier)) { LOGDEB2(("Preview::eventFilter: got Shift-Up\n")); if (edit) emit(showNext(this, m_searchId, edit->m_data.docnum)); return true; } else if (keyEvent->key() == Qt::Key_Up && - (keyEvent->state() & Qt::ShiftButton)) { + (keyEvent->modifiers() & Qt::ShiftModifier)) { LOGDEB2(("Preview::eventFilter: got Shift-Down\n")); if (edit) emit(showPrev(this, m_searchId, edit->m_data.docnum)); return true; } else if (keyEvent->key() == Qt::Key_W && - (keyEvent->state() & Qt::ControlButton)) { + (keyEvent->modifiers() & Qt::ControlModifier)) { LOGDEB2(("Preview::eventFilter: got ^W\n")); closeCurrentTab(); return true; } else if (keyEvent->key() == Qt::Key_P && - (keyEvent->state() & Qt::ControlButton)) { + (keyEvent->modifiers() & Qt::ControlModifier)) { LOGDEB2(("Preview::eventFilter: got ^P\n")); emit(printCurrentPreviewRequest()); return true; @@ -293,7 +290,7 @@ bool Preview::eventFilter(QObject *target, QEvent *event) value += edit->verticalScrollBar()->pageStep(); edit->verticalScrollBar()->setValue(value); return true; - } else if (keyEvent->key() == Qt::Key_BackSpace) { + } else if (keyEvent->key() == Qt::Key_Backspace) { LOGDEB2(("Preview::eventFilter: got Backspace\n")); int value = edit->verticalScrollBar()->value(); value -= edit->verticalScrollBar()->pageStep(); @@ -326,10 +323,10 @@ void Preview::searchTextLine_textChanged(const QString & text) PreviewTextEdit *Preview::currentEditor() { LOGDEB2(("Preview::currentEditor()\n")); - QWidget *tw = pvTab->currentPage(); + QWidget *tw = pvTab->currentWidget(); PreviewTextEdit *edit = 0; if (tw) { - edit = dynamic_cast(tw->child("pvEdit")); + edit = tw->findChild("pvEdit"); } return edit; } @@ -342,7 +339,7 @@ void Preview::doSearch(const QString &_text, bool next, bool reverse, bool wordOnly) { LOGDEB(("Preview::doSearch: text [%s] txtlen %d next %d rev %d word %d\n", - (const char *)_text.utf8(), _text.length(), int(next), + (const char *)_text.toUtf8(), _text.length(), int(next), int(reverse), int(wordOnly))); QString text = _text; @@ -372,7 +369,7 @@ void Preview::doSearch(const QString &_text, bool next, bool reverse, LOGDEB(("m_curAnchor: %d\n", m_curAnchor)); QString aname = QString::fromUtf8(edit->m_plaintorich->termAnchorName(m_curAnchor).c_str()); - LOGDEB(("Calling scrollToAnchor(%s)\n", (const char *)aname.utf8())); + LOGDEB(("Calling scrollToAnchor(%s)\n", (const char *)aname.toUtf8())); edit->scrollToAnchor(aname); // Position the cursor approximately at the anchor (top of // viewport) so that searches start from here @@ -445,7 +442,7 @@ void Preview::currentChanged(QWidget * tw) { LOGDEB2(("PreviewTextEdit::currentChanged\n")); PreviewTextEdit *edit = - dynamic_cast(tw->child("pvEdit")); + tw->findChild("pvEdit"); m_currentW = tw; LOGDEB1(("Preview::currentChanged(). Editor: %p\n", edit)); @@ -454,9 +451,6 @@ void Preview::currentChanged(QWidget * tw) return; } edit->setFocus(); - // Connect doubleclick but cleanup first just in case this was - // already connected. - disconnect(edit, SIGNAL(doubleClicked(int, int)), this, 0); // Disconnect the print signal and reconnect it to the current editor LOGDEB(("Disconnecting reconnecting print signal\n")); disconnect(this, SIGNAL(printCurrentPreviewRequest()), 0, 0); @@ -475,10 +469,7 @@ void Preview::closeCurrentTab() return; } if (pvTab->count() > 1) { - QWidget *tw = pvTab->currentPage(); - if (!tw) - return; - pvTab->removePage(tw); + pvTab->removeTab(pvTab->currentIndex()); } else { close(); } @@ -488,13 +479,13 @@ PreviewTextEdit *Preview::addEditorTab() { LOGDEB1(("PreviewTextEdit::addEditorTab()\n")); QWidget *anon = new QWidget((QWidget *)pvTab); - QVBoxLayout *anonLayout = new QVBoxLayout(anon, 1, 1, "anonLayout"); + QVBoxLayout *anonLayout = new QVBoxLayout(anon); PreviewTextEdit *editor = new PreviewTextEdit(anon, "pvEdit", this); editor->setReadOnly(TRUE); editor->setUndoRedoEnabled(FALSE ); anonLayout->addWidget(editor); pvTab->addTab(anon, "Tab"); - pvTab->showPage(anon); + pvTab->setCurrentIndex(pvTab->count() -1); return editor; } @@ -513,8 +504,8 @@ void Preview::setCurTabProps(const Rcl::Doc &doc, int docnum) if (title.length() > 20) { title = title.left(10) + "..." + title.right(10); } - QWidget *w = pvTab->currentPage(); - pvTab->changeTab(w, title); + int curidx = pvTab->currentIndex(); + pvTab->setTabText(curidx, title); char datebuf[100]; datebuf[0] = 0; @@ -531,7 +522,8 @@ void Preview::setCurTabProps(const Rcl::Doc &doc, int docnum) tiptxt += doc.mimetype + " " + string(datebuf) + "\n"; if (meta_it != doc.meta.end() && !meta_it->second.empty()) tiptxt += meta_it->second + "\n"; - pvTab->setTabToolTip(w,QString::fromUtf8(tiptxt.c_str(), tiptxt.length())); + pvTab->setTabToolTip(curidx, + QString::fromUtf8(tiptxt.c_str(), tiptxt.length())); PreviewTextEdit *e = currentEditor(); if (e) { @@ -549,11 +541,11 @@ bool Preview::makeDocCurrent(const Rcl::Doc& doc, int docnum, bool sametab) for (int i = 0; i < pvTab->count(); i++) { QWidget *tw = pvTab->widget(i); if (tw) { - PreviewTextEdit *edit = - dynamic_cast(tw->child("pvEdit")); + PreviewTextEdit *edit = + tw->findChild("pvEdit"); if (edit && !edit->m_data.url.compare(doc.url) && !edit->m_data.ipath.compare(doc.ipath)) { - pvTab->showPage(tw); + pvTab->setCurrentIndex(i); return true; } } @@ -790,8 +782,7 @@ bool Preview::loadDocInCurrentTab(const Rcl::Doc &idoc, int docnum) // while still inserting at bottom list qrichlst; PreviewTextEdit *editor = currentEditor(); - editor->setText(""); - editor->setTextFormat(Qt::RichText); + editor->setHtml(""); editor->m_data.format = Qt::RichText; bool inputishtml = !fdoc.mimetype.compare("text/html"); @@ -865,7 +856,7 @@ bool Preview::loadDocInCurrentTab(const Rcl::Doc &idoc, int docnum) if (inputishtml) { qrichlst.push_back(qr); } else { - editor->setTextFormat(Qt::PlainText); + editor->setPlainText(""); editor->m_data.format = Qt::PlainText; for (int pos = 0; pos < (int)qr.length(); pos += l) { l = MIN(CHUNKL, qr.length() - pos); @@ -917,7 +908,7 @@ bool Preview::loadDocInCurrentTab(const Rcl::Doc &idoc, int docnum) if (m_haveAnchors) { QString aname = QString::fromUtf8(editor->m_plaintorich->termAnchorName(1).c_str()); - LOGDEB2(("Call movetoanchor(%s)\n", (const char *)aname.utf8())); + LOGDEB2(("Call movetoanchor(%s)\n", (const char *)aname.toUtf8())); editor->scrollToAnchor(aname); // Position the cursor approximately at the anchor (top of // viewport) so that searches start from here @@ -932,9 +923,6 @@ bool Preview::loadDocInCurrentTab(const Rcl::Doc &idoc, int docnum) if (udit != idoc.meta.end()) historyEnterDoc(g_dynconf, udit->second); - // Switch format back to plaintext so that selections generate plain text - editor->setTextFormat(Qt::PlainText); - editor->setFocus(); emit(previewExposed(this, m_searchId, docnum)); LOGDEB(("LoadFileInCurrentTab: returning true\n")); @@ -961,15 +949,16 @@ void PreviewTextEdit::toggleFields() // If currently displaying fields, switch to body text if (m_dspflds) { - setTextFormat(m_data.format); - setText(m_data.richtxt); + if (m_data.format == Qt::PlainText) + setPlainText(m_data.richtxt); + else + setHtml(m_data.richtxt); m_dspflds = false; return; } // Else display fields m_dspflds = true; - setTextFormat(Qt::RichText); QString txt = "\n"; txt += "" + QString::fromLocal8Bit(m_data.url.c_str()); if (!m_data.ipath.empty()) @@ -983,15 +972,15 @@ void PreviewTextEdit::toggleFields() + "\n"; } txt += ""; - setText(txt); + setHtml(txt); } void PreviewTextEdit::mouseDoubleClickEvent(QMouseEvent *event) { LOGDEB2(("PreviewTextEdit::mouseDoubleClickEvent\n")); QTextEdit::mouseDoubleClickEvent(event); - if (hasSelectedText() && m_preview) - m_preview->emitWordSelect(selectedText()); + if (textCursor().hasSelection() && m_preview) + m_preview->emitWordSelect(textCursor().selectedText()); } void PreviewTextEdit::print() diff --git a/src/qtgui/rclhelp.cpp b/src/qtgui/rclhelp.cpp index 81b07d17..7a68749d 100644 --- a/src/qtgui/rclhelp.cpp +++ b/src/qtgui/rclhelp.cpp @@ -34,8 +34,8 @@ void HelpClient::installMap(string wname, string section) helpmap[wname] = section; } -HelpClient::HelpClient(QObject *parent, const char *name) - : QObject(parent, name) +HelpClient::HelpClient(QObject *parent, const char *) + : QObject(parent) { parent->installEventFilter(this); } @@ -52,7 +52,7 @@ bool HelpClient::eventFilter(QObject *obj, QEvent *event) QWidget *widget = static_cast(obj)->focusWidget(); map::iterator it = helpmap.end(); while (widget) { - it = helpmap.find(widget->name()); + it = helpmap.find((const char *)widget->objectName().toUtf8()); if (it != helpmap.end()) break; widget = widget->parentWidget(); diff --git a/src/qtgui/rclmain_w.cpp b/src/qtgui/rclmain_w.cpp index 4de8ab42..83037a75 100644 --- a/src/qtgui/rclmain_w.cpp +++ b/src/qtgui/rclmain_w.cpp @@ -35,7 +35,6 @@ using std::pair; #include #include #include - #include #include #include @@ -49,9 +48,10 @@ using std::pair; #include #include #include -#include #include #include +#include + #include "recoll.h" #include "debuglog.h" #include "mimehandler.h" @@ -104,7 +104,7 @@ void RclMain::init() (void)statusBar(); (void)new HelpClient(this); - HelpClient::installMap(this->name(), "RCL.SEARCH.SIMPLE"); + HelpClient::installMap((const char *)this->objectName().toUtf8(), "RCL.SEARCH.SIMPLE"); // Set the focus to the search terms entry: sSearch->queryText->setFocus(); @@ -118,9 +118,9 @@ void RclMain::init() // Stemming language menu g_stringNoStem = tr("(no stemming)"); g_stringAllStem = tr("(all languages)"); - m_idNoStem = preferencesMenu->insertItem(g_stringNoStem); + m_idNoStem = preferencesMenu->addAction(g_stringNoStem); m_stemLangToId[g_stringNoStem] = m_idNoStem; - m_idAllStem = preferencesMenu->insertItem(g_stringAllStem); + m_idAllStem = preferencesMenu->addAction(g_stringAllStem); m_stemLangToId[g_stringAllStem] = m_idAllStem; // Can't get the stemming languages from the db at this stage as @@ -135,18 +135,18 @@ void RclMain::init() QMessageBox::warning(0, "Recoll", tr("error retrieving stemming languages")); } - int curid = prefs.queryStemLang == "ALL" ? m_idAllStem : m_idNoStem; - int id; + QAction *curid = prefs.queryStemLang == "ALL" ? m_idAllStem : m_idNoStem; + QAction *id; for (list::const_iterator it = langs.begin(); it != langs.end(); it++) { QString qlang = QString::fromAscii(it->c_str(), it->length()); - id = preferencesMenu->insertItem(qlang); + id = preferencesMenu->addAction(qlang); m_stemLangToId[qlang] = id; if (prefs.queryStemLang == qlang) { curid = id; } } - preferencesMenu->setItemChecked(curid, true); + curid->setChecked(true); // A shortcut to get the focus back to the search entry. QKeySequence seq("Ctrl+Shift+s"); @@ -158,8 +158,9 @@ void RclMain::init() QComboBox *catgCMB = 0; if (prefs.catgToolBar) { QToolBar *catgToolBar = new QToolBar(this); - catgCMB = new QComboBox(FALSE, catgToolBar, "catCMB"); - catgCMB->insertItem(tr("All")); + catgCMB = new QComboBox(catgToolBar); + catgCMB->setEditable(FALSE); + catgCMB->addItem(tr("All")); catgToolBar->setObjectName(QString::fromUtf8("catgToolBar")); catgCMB->setToolTip(tr("Document category filter")); catgToolBar->addWidget(catgCMB); @@ -185,9 +186,9 @@ void RclMain::init() QRadioButton *but = new QRadioButton(catgBGRP); QString catgnm = QString::fromUtf8(it->c_str(), it->length()); m_catgbutvec.push_back(*it); - but->setText(tr(catgnm)); + but->setText(tr(catgnm.toUtf8())); if (prefs.catgToolBar && catgCMB) - catgCMB->insertItem(tr(catgnm)); + catgCMB->addItem(tr(catgnm.toUtf8())); bgrphbox->addWidget(but); bgrp->addButton(but, bgrpid++); } @@ -200,8 +201,8 @@ void RclMain::init() this, SLOT(startSearch(RefCntr))); sSearch->queryText->installEventFilter(this); - connect(preferencesMenu, SIGNAL(activated(int)), - this, SLOT(setStemLang(int))); + connect(preferencesMenu, SIGNAL(triggered(QAction*)), + this, SLOT(setStemLang(QAction*))); connect(preferencesMenu, SIGNAL(aboutToShow()), this, SLOT(adjustPrefsMenu())); // signals and slots connections @@ -332,13 +333,13 @@ void RclMain::focusToSearch() sSearch->queryText->setFocus(Qt::ShortcutFocusReason); } -void RclMain::setStemLang(int id) +void RclMain::setStemLang(QAction *id) { LOGDEB(("RclMain::setStemLang(%d)\n", id)); // Check that the menu entry is for a stemming language change // (might also be "show prefs" etc. bool isLangId = false; - for (map::const_iterator it = m_stemLangToId.begin(); + for (map::const_iterator it = m_stemLangToId.begin(); it != m_stemLangToId.end(); it++) { if (id == it->second) isLangId = true; @@ -347,11 +348,11 @@ void RclMain::setStemLang(int id) return; // Set the "checked" item state for lang entries - for (map::const_iterator it = m_stemLangToId.begin(); + for (map::const_iterator it = m_stemLangToId.begin(); it != m_stemLangToId.end(); it++) { - preferencesMenu->setItemChecked(it->second, false); + (it->second)->setChecked(false); } - preferencesMenu->setItemChecked(id, true); + id->setChecked(true); // Retrieve language value (also handle special cases), set prefs, // notify that we changed @@ -361,11 +362,11 @@ void RclMain::setStemLang(int id) } else if (id == m_idAllStem) { lang = "ALL"; } else { - lang = preferencesMenu->text(id); + lang = id->text(); } prefs.queryStemLang = lang; LOGDEB(("RclMain::setStemLang(%d): lang [%s]\n", - id, (const char *)prefs.queryStemLang.ascii())); + id, (const char *)prefs.queryStemLang.toAscii())); rwSettings(true); emit stemLangChanged(lang); } @@ -373,23 +374,23 @@ void RclMain::setStemLang(int id) // Set the checked stemming language item before showing the prefs menu void RclMain::setStemLang(const QString& lang) { - LOGDEB(("RclMain::setStemLang(%s)\n", (const char *)lang.ascii())); - int id; + LOGDEB(("RclMain::setStemLang(%s)\n", (const char *)lang.toAscii())); + QAction *id; if (lang == "") { id = m_idNoStem; } else if (lang == "ALL") { id = m_idAllStem; } else { - map::iterator it = m_stemLangToId.find(lang); + map::iterator it = m_stemLangToId.find(lang); if (it == m_stemLangToId.end()) return; id = it->second; } - for (map::const_iterator it = m_stemLangToId.begin(); + for (map::const_iterator it = m_stemLangToId.begin(); it != m_stemLangToId.end(); it++) { - preferencesMenu->setItemChecked(it->second, false); + (it->second)->setChecked(false); } - preferencesMenu->setItemChecked(id, true); + id->setChecked(true); } // Prefs menu about to show @@ -422,7 +423,7 @@ void RclMain::fileExit() prefs.mainwidth = width(); prefs.mainheight = height(); } - prefs.ssearchTyp = sSearch->searchTypCMB->currentItem(); + prefs.ssearchTyp = sSearch->searchTypCMB->currentIndex(); if (asearchform) delete asearchform; // We'd prefer to do this in the exit handler, but it's apparently to late @@ -463,14 +464,14 @@ void RclMain::periodic100() // and check this / restart query in DocSeqDb() ?) string reason; maybeOpenDb(reason, 1); - periodictimer->changeInterval(1000); + periodictimer->setInterval(1000); } } else { // Indexing is running m_idxStatusAck = false; fileToggleIndexingAction->setText(tr("Stop &Indexing")); fileToggleIndexingAction->setEnabled(TRUE); - periodictimer->changeInterval(100); + periodictimer->setInterval(100); // The toggle thing is for the status to flash if (toggle < 9) { QString msg = tr("Indexing in progress: "); @@ -498,9 +499,9 @@ void RclMain::periodic100() mf = url_encode(status.fn, 0); } msg += QString::fromUtf8(mf.c_str()); - statusBar()->message(msg, 4000); + statusBar()->showMessage(msg, 4000); } else if (toggle == 9) { - statusBar()->message(""); + statusBar()->showMessage(""); } if (++toggle >= 10) toggle = 0; @@ -517,11 +518,11 @@ void RclMain::toggleIndexing() if (idxthread_getStatus() == IDXTS_NULL) { // Indexing was in progress, stop it stop_indexing(); - periodictimer->changeInterval(1000); + periodictimer->setInterval(1000); fileToggleIndexingAction->setText(tr("Update &Index")); } else { start_indexing(false); - periodictimer->changeInterval(100); + periodictimer->setInterval(100); fileToggleIndexingAction->setText(tr("Stop &Indexing")); } fileToggleIndexingAction->setEnabled(FALSE); @@ -543,7 +544,7 @@ void RclMain::startSearch(RefCntr sdata) resList->resetList(); QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); - string stemLang = (const char *)prefs.queryStemLang.ascii(); + string stemLang = (const char *)prefs.queryStemLang.toAscii(); if (stemLang == "ALL") { rclconfig->getConfParam("indexstemminglanguages", stemLang); } @@ -561,7 +562,7 @@ void RclMain::startSearch(RefCntr sdata) curPreview = 0; DocSequenceDb *src = new DocSequenceDb(RefCntr(query), - string(tr("Query results").utf8()), sdata); + string(tr("Query results").toUtf8()), sdata); src->setAbstractParams(prefs.queryBuildAbstract, prefs.queryReplaceAbstract); @@ -656,7 +657,7 @@ void RclMain::showExtIdxDialog() // Close and reopen, in hope that makes us visible... uiprefs->close(); } - uiprefs->tabWidget->setCurrentPage(2); + uiprefs->tabWidget->setCurrentIndex(2); uiprefs->show(); } @@ -711,7 +712,7 @@ void RclMain::startPreview(int docnum, int mod) return; } - if (mod & Qt::ShiftButton) { + if (mod & Qt::ShiftModifier) { // User wants new preview window curPreview = 0; } @@ -736,7 +737,7 @@ void RclMain::startPreview(int docnum, int mod) this, SLOT(previewPrevInTab(Preview *, int, int))); connect(curPreview, SIGNAL(previewExposed(Preview *, int, int)), this, SLOT(previewExposed(Preview *, int, int))); - curPreview->setCaption(resList->getDescription()); + curPreview->setWindowTitle(resList->getDescription()); curPreview->show(); } curPreview->makeDocCurrent(doc, docnum); @@ -833,8 +834,8 @@ void RclMain::previewExposed(Preview *, int sid, int docnum) static const char* punct = " \t()<>\"'[]{}!^*.,:;\n\r"; void RclMain::ssearchAddTerm(QString term) { - LOGDEB(("RclMain::ssearchAddTerm: [%s]\n", (const char *)term.utf8())); - string t = (const char *)term.utf8(); + LOGDEB(("RclMain::ssearchAddTerm: [%s]\n", (const char *)term.toUtf8())); + string t = (const char *)term.toUtf8(); string::size_type pos = t.find_last_not_of(punct); if (pos == string::npos) return; @@ -861,11 +862,11 @@ void RclMain::saveDocToFile(int docnum) return; } QString s = - QFileDialog::getSaveFileName(path_home().c_str(), - "", this, - tr("Save file dialog"), - tr("Choose a file name to save under")); - string tofile((const char *)s.local8Bit()); + QFileDialog::getSaveFileName(this, //parent + tr("Save file"), // caption + QString::fromLocal8Bit(path_home().c_str()) //dir + ); + string tofile((const char *)s.toLocal8Bit()); TempFile temp; // not used if (!FileInterner::idocToFile(temp, tofile, rclconfig, doc)) { QMessageBox::warning(0, "Recoll", @@ -1107,7 +1108,7 @@ void RclMain::startNativeViewer(Rcl::Doc doc) transcode(ncmd, prcmd, fcharset, "UTF-8"); QString msg = tr("Executing: [") + QString::fromUtf8(prcmd.c_str()) + "]"; - stb->message(msg, 5000); + stb->showMessage(msg, 5000); } if (!istempfile) @@ -1182,14 +1183,14 @@ void RclMain::showDocHistory() // Construct a bogus SearchData structure RefCntrsearchdata = RefCntr(new Rcl::SearchData(Rcl::SCLT_AND)); - searchdata->setDescription((const char *)tr("History data").utf8()); + searchdata->setDescription((const char *)tr("History data").toUtf8()); // If you change the title, also change it in eraseDocHistory() DocSequenceHistory *src = new DocSequenceHistory(rcldb, g_dynconf, - string(tr("Document history").utf8())); - src->setDescription((const char *)tr("History data").utf8()); + string(tr("Document history").toUtf8())); + src->setDescription((const char *)tr("History data").toUtf8()); resList->setDocSource(RefCntr(src)); } @@ -1269,7 +1270,8 @@ bool RclMain::eventFilter(QObject *, QEvent *event) // filtered by the search entry to mean "select all line". We prefer to // keep it for the action as it's easy to find another combination to // select all (ie: home, then shift-end) - if (ke->key() == Qt::Key_Home && (ke->state() & Qt::ShiftButton)) { + if (ke->key() == Qt::Key_Home && + (ke->modifiers() & Qt::ShiftModifier)) { // Shift-Home -> first page of results resList->resultPageFirst(); return true; diff --git a/src/qtgui/rclmain_w.h b/src/qtgui/rclmain_w.h index e6411a85..4fdd4291 100644 --- a/src/qtgui/rclmain_w.h +++ b/src/qtgui/rclmain_w.h @@ -90,7 +90,7 @@ public slots: virtual void resetSearch(); virtual void eraseDocHistory(); // Callback for setting the stemming language through the prefs menu - virtual void setStemLang(int id); + virtual void setStemLang(QAction *id); // Prefs menu about to show, set the checked lang entry virtual void adjustPrefsMenu(); virtual void catgFilter(int); @@ -115,10 +115,10 @@ private: vector m_tempfiles; vector m_viewers; - map m_stemLangToId; + map m_stemLangToId; vector m_catgbutvec; - int m_idNoStem; - int m_idAllStem; + QAction * m_idNoStem; + QAction * m_idAllStem; bool m_idxStatusAck; // Did we act on last status? virtual void init(); diff --git a/src/qtgui/recoll.pro.in b/src/qtgui/recoll.pro.in index 70e23f9a..74d414a2 100644 --- a/src/qtgui/recoll.pro.in +++ b/src/qtgui/recoll.pro.in @@ -86,5 +86,3 @@ TRANSLATIONS = \ ../qtgui/i18n/recoll_uk.ts \ ../qtgui/i18n/recoll_xx.ts \ - -QT += qt3support diff --git a/src/qtgui/reslist.cpp b/src/qtgui/reslist.cpp index db05dc19..9384e43a 100644 --- a/src/qtgui/reslist.cpp +++ b/src/qtgui/reslist.cpp @@ -20,6 +20,7 @@ static char rcsid[] = "@(#$Id: reslist.cpp,v 1.52 2008-12-17 15:12:08 dockes Exp #include #include #include +#include #ifndef __APPLE__ #include #endif @@ -111,7 +112,7 @@ bool QtGuiResListPager::append(const string& data, int docnum, string QtGuiResListPager::trans(const string& in) { - return string((const char*)ResList::tr(in.c_str()).utf8()); + return string((const char*)ResList::tr(in.c_str()).toUtf8()); } string QtGuiResListPager::detailsLink() @@ -188,7 +189,7 @@ public: virtual ~PlainToRichQtReslist() {} virtual string startMatch() { return string(""); + + string((const char *)prefs.qtermcolor.toAscii()) + string("'>"); } virtual string endMatch() {return string("");} }; @@ -197,10 +198,12 @@ static PlainToRichQtReslist g_hiliter; ///////////////////////////////////// ResList::ResList(QWidget* parent, const char* name) - : QTextBrowser(parent, name) + : QTextBrowser(parent) { if (!name) - setName("resList"); + setObjectName("resList"); + else + setObjectName(name); setReadOnly(TRUE); setUndoRedoEnabled(FALSE); setOpenLinks(FALSE); @@ -209,7 +212,8 @@ ResList::ResList(QWidget* parent, const char* name) setTabChangesFocus(true); (void)new HelpClient(this); - HelpClient::installMap(this->name(), "RCL.SEARCH.RESLIST"); + HelpClient::installMap((const char *)this->objectName().toAscii(), + "RCL.SEARCH.RESLIST"); // signals and slots connections connect(this, SIGNAL(anchorClicked(const QUrl &)), @@ -282,7 +286,7 @@ void ResList::setDocSource() } else { if (m_filtspecs.isNotNull()) { string title = m_baseDocSource->title() + " (" + - string((const char*)tr("filtered").utf8()) + ")"; + string((const char*)tr("filtered").toUtf8()) + ")"; m_docSource = RefCntr(new DocSeqFiltered(m_docSource,m_filtspecs, title)); @@ -291,7 +295,7 @@ void ResList::setDocSource() if (m_sortspecs.isNotNull()) { string title = m_baseDocSource->title() + " (" + - string((const char *)tr("sorted").utf8()) + ")"; + string((const char *)tr("sorted").toUtf8()) + ")"; m_docSource = RefCntr(new DocSeqSorted(m_docSource, m_sortspecs, title)); @@ -334,7 +338,7 @@ bool ResList::displayingHistory() { // We want to reset the displayed history if it is currently // shown. Using the title value is an ugly hack - string htstring = string((const char *)tr("Document history").utf8()); + string htstring = string((const char *)tr("Document history").toUtf8()); if (m_docSource.isNull() || m_docSource->title().empty()) return false; return m_docSource->title().find(htstring) == 0; @@ -342,7 +346,7 @@ bool ResList::displayingHistory() void ResList::languageChange() { - setCaption(tr("Result list")); + setWindowTitle(tr("Result list")); } bool ResList::getTerms(vector& terms, @@ -449,13 +453,13 @@ bool ResList::getDoc(int docnum, Rcl::Doc &doc) void ResList::keyPressEvent(QKeyEvent * e) { - if (e->key() == Qt::Key_Q && (e->state() & Qt::ControlButton)) { + if (e->key() == Qt::Key_Q && (e->modifiers() & Qt::ControlModifier)) { recollNeedsExit = 1; return; - } else if (e->key() == Qt::Key_Prior || e->key() == Qt::Key_Backspace) { + } else if (e->key() == Qt::Key_PageUp || e->key() == Qt::Key_Backspace) { resPageUpOrBack(); return; - } else if (e->key() == Qt::Key_Next || e->key() == Qt::Key_Space) { + } else if (e->key() == Qt::Key_PageDown || e->key() == Qt::Key_Space) { resPageDownOrNext(); return; } @@ -465,11 +469,11 @@ void ResList::keyPressEvent(QKeyEvent * e) void ResList::mouseReleaseEvent(QMouseEvent *e) { m_lstClckMod = 0; - if (e->state() & Qt::ControlButton) { - m_lstClckMod |= Qt::ControlButton; + if (e->modifiers() & Qt::ControlModifier) { + m_lstClckMod |= Qt::ControlModifier; } - if (e->state() & Qt::ShiftButton) { - m_lstClckMod |= Qt::ShiftButton; + if (e->modifiers() & Qt::ShiftModifier) { + m_lstClckMod |= Qt::ShiftModifier; } QTextBrowser::mouseReleaseEvent(e); } @@ -495,7 +499,7 @@ void ResList::highlighted(const QString& ) void ResList::resPageUpOrBack() { int vpos = verticalScrollBar()->value(); - moveCursor(QTextBrowser::MovePgUp, false); + verticalScrollBar()->triggerAction(QAbstractSlider::SliderPageStepSub); if (vpos == verticalScrollBar()->value()) resultPageBack(); } @@ -503,7 +507,7 @@ void ResList::resPageUpOrBack() void ResList::resPageDownOrNext() { int vpos = verticalScrollBar()->value(); - moveCursor(QTextBrowser::MovePgDown, false); + verticalScrollBar()->triggerAction(QAbstractSlider::SliderPageStepAdd); LOGDEB(("ResList::resPageDownOrNext: vpos before %d, after %d\n", vpos, verticalScrollBar()->value())); if (vpos == verticalScrollBar()->value()) @@ -530,7 +534,7 @@ void ResList::resultPageFirst() void ResList::append(const QString &text) { LOGDEB2(("QtGuiReslistPager::appendQString : %s\n", - (const char*)text.utf8())); + (const char*)text.toUtf8())); QTextBrowser::append(text); } @@ -605,16 +609,17 @@ void ResList::previewExposed(int docnum) void ResList::mouseDoubleClickEvent(QMouseEvent *event) { QTextBrowser::mouseDoubleClickEvent(event); - if (hasSelectedText()) - emit(wordSelect(selectedText())); + if (textCursor().hasSelection()) + emit(wordSelect(textCursor().selectedText())); } void ResList::linkWasClicked(const QUrl &url) { QString s = url.toString(); - LOGDEB(("ResList::linkWasClicked: [%s]\n", s.ascii())); - int i = atoi(s.ascii()+1) -1; - int what = s.ascii()[0]; + const char *ascurl = s.toAscii(); + LOGDEB(("ResList::linkWasClicked: [%s]\n", ascurl)); + int i = atoi(ascurl+1) - 1; + int what = ascurl[0]; switch (what) { case 'H': emit headerClicked(); diff --git a/src/qtgui/reslist.h b/src/qtgui/reslist.h index eb24dcc0..7f6f84a9 100644 --- a/src/qtgui/reslist.h +++ b/src/qtgui/reslist.h @@ -9,6 +9,7 @@ using std::list; #endif #include +#include #include "docseq.h" #include "sortseq.h" @@ -77,7 +78,7 @@ class ResList : public QTextBrowser virtual void setFilterParams(const DocSeqFiltSpec &spec); virtual void highlighted(const QString& link); virtual void createPopupMenu(const QPoint& pos); - + signals: void nextPageAvailable(bool); void prevPageAvailable(bool); diff --git a/src/qtgui/searchclause_w.cpp b/src/qtgui/searchclause_w.cpp index a56f5d3d..5ea98126 100644 --- a/src/qtgui/searchclause_w.cpp +++ b/src/qtgui/searchclause_w.cpp @@ -36,14 +36,15 @@ static char rcsid[] = "@(#$Id: searchclause_w.cpp,v 1.4 2006-12-04 06:19:11 dock SearchClauseW::SearchClauseW(QWidget* parent) : QWidget(parent) { - QHBoxLayout* hLayout = new QHBoxLayout(this, 0, 3); - sTpCMB = new QComboBox(FALSE, this, "sTpCMB"); + QHBoxLayout* hLayout = new QHBoxLayout(this); + sTpCMB = new QComboBox(this); + sTpCMB->setEditable(false); hLayout->addWidget(sTpCMB); - proxSlackSB = new QSpinBox(this, "proxSlackSB"); + proxSlackSB = new QSpinBox(this); hLayout->addWidget(proxSlackSB); - wordsLE = new QLineEdit(this, "wordsLE"); + wordsLE = new QLineEdit(this); wordsLE->setMinimumSize(QSize(250, 0)); hLayout->addWidget(wordsLE); @@ -67,22 +68,21 @@ SearchClauseW::~SearchClauseW() */ void SearchClauseW::languageChange() { - setCaption(tr("SearchClauseW")); sTpCMB->clear(); - sTpCMB->insertItem(tr("Any of these")); // 0 - sTpCMB->insertItem(tr("All of these")); //1 - sTpCMB->insertItem(tr("None of these"));//2 - sTpCMB->insertItem(tr("This phrase"));//3 - sTpCMB->insertItem(tr("Terms in proximity"));//4 - sTpCMB->insertItem(tr("File name matching"));//5 + sTpCMB->addItem(tr("Any of these")); // 0 + sTpCMB->addItem(tr("All of these")); //1 + sTpCMB->addItem(tr("None of these"));//2 + sTpCMB->addItem(tr("This phrase"));//3 + sTpCMB->addItem(tr("Terms in proximity"));//4 + sTpCMB->addItem(tr("File name matching"));//5 // sTpCMB->insertItem(tr("Complex clause"));//6 // Ensure that the spinbox will be enabled/disabled depending on // combobox state tpChange(0); - QToolTip::add(sTpCMB, tr("Select the type of query that will be performed with the words")); - QToolTip::add(proxSlackSB, tr("Number of additional words that may be interspersed with the chosen ones")); + sTpCMB->setToolTip(tr("Select the type of query that will be performed with the words")); + proxSlackSB->setToolTip(tr("Number of additional words that may be interspersed with the chosen ones")); } using namespace Rcl; @@ -93,26 +93,26 @@ SearchClauseW::getClause() { if (wordsLE->text().isEmpty()) return 0; - switch (sTpCMB->currentItem()) { + switch (sTpCMB->currentIndex()) { case 0: return new SearchDataClauseSimple(SCLT_OR, - (const char *)wordsLE->text().utf8()); + (const char *)wordsLE->text().toUtf8()); case 1: return new SearchDataClauseSimple(SCLT_AND, - (const char *)wordsLE->text().utf8()); + (const char *)wordsLE->text().toUtf8()); case 2: return new SearchDataClauseSimple(SCLT_EXCL, - (const char *)wordsLE->text().utf8()); + (const char *)wordsLE->text().toUtf8()); case 3: return new SearchDataClauseDist(SCLT_PHRASE, - (const char *)wordsLE->text().utf8(), + (const char *)wordsLE->text().toUtf8(), proxSlackSB->value()); case 4: return new SearchDataClauseDist(SCLT_NEAR, - (const char *)wordsLE->text().utf8(), + (const char *)wordsLE->text().toUtf8(), proxSlackSB->value()); case 5: - return new SearchDataClauseFilename((const char *)wordsLE->text().utf8()); + return new SearchDataClauseFilename((const char *)wordsLE->text().toUtf8()); case 6: default: return 0; @@ -124,8 +124,8 @@ void SearchClauseW::tpChange(int index) { if (index < 0 || index > 5) return; - if (sTpCMB->currentItem() != index) - sTpCMB->setCurrentItem(index); + if (sTpCMB->currentIndex() != index) + sTpCMB->setCurrentIndex(index); switch (index) { case 3: case 4: diff --git a/src/qtgui/sort_w.cpp b/src/qtgui/sort_w.cpp index e9c37fca..d4e71d58 100644 --- a/src/qtgui/sort_w.cpp +++ b/src/qtgui/sort_w.cpp @@ -56,17 +56,18 @@ void SortForm::init() v = spec & (0xf & ~(1<<3)); d = spec & (1 << 3); spec >>= 4; - fldCMB1->setCurrentItem(v < 3 ? v : 0); + fldCMB1->setCurrentIndex(v < 3 ? v : 0); descCB1->setChecked(d != 0 ? true : false); v = spec & (0xf & ~(1<<3)); d = spec & (1 << 3); spec >>= 4; - fldCMB2->setCurrentItem(v < 3 ? v : 0); + fldCMB2->setCurrentIndex(v < 3 ? v : 0); descCB2->setChecked(d !=0 ? true : false); (void)new HelpClient(this); - HelpClient::installMap(this->name(), "RCL.SEARCH.SORT"); + HelpClient::installMap((const char *)this->objectName().toUtf8(), + "RCL.SEARCH.SORT"); // signals and slots connections connect(applyPB, SIGNAL(clicked()), this, SLOT(apply())); @@ -106,7 +107,7 @@ void SortForm::setData() spec.sortdepth = 0; } else { bool desc = descCB1->isChecked(); - switch (fldCMB1->currentItem()) { + switch (fldCMB1->currentIndex()) { case 1: spec.addCrit(DocSeqSortSpec::RCLFLD_MTIME, desc?true:false); break; @@ -116,7 +117,7 @@ void SortForm::setData() } desc = descCB2->isChecked(); - switch (fldCMB2->currentItem()) { + switch (fldCMB2->currentIndex()) { case 1: spec.addCrit(DocSeqSortSpec::RCLFLD_MTIME, desc?true:false); break; @@ -129,10 +130,10 @@ void SortForm::setData() // Save data to prefs; prefs.sortDepth = spec.sortdepth; unsigned int spec = 0, v, d; - v = fldCMB1->currentItem() & 0x7; + v = fldCMB1->currentIndex() & 0x7; d = descCB1->isChecked() ? 8 : 0; spec |= (d|v); - v = fldCMB2->currentItem() & 0x7; + v = fldCMB2->currentIndex() & 0x7; d = descCB2->isChecked() ? 8 : 0; spec |= (d|v) << 4; prefs.sortSpec = (int) spec; diff --git a/src/qtgui/spell_w.cpp b/src/qtgui/spell_w.cpp index fcbb264e..17c6d2ff 100644 --- a/src/qtgui/spell_w.cpp +++ b/src/qtgui/spell_w.cpp @@ -48,20 +48,20 @@ static char rcsid[] = "@(#$Id: spell_w.cpp,v 1.11 2007-02-19 16:28:05 dockes Exp void SpellW::init() { // Don't change the order, or fix the rest of the code... - /*0*/expTypeCMB->insertItem(tr("Wildcards")); - /*1*/expTypeCMB->insertItem(tr("Regexp")); - /*2*/expTypeCMB->insertItem(tr("Stem expansion")); + /*0*/expTypeCMB->addItem(tr("Wildcards")); + /*1*/expTypeCMB->addItem(tr("Regexp")); + /*2*/expTypeCMB->addItem(tr("Stem expansion")); #ifdef RCL_USE_ASPELL bool noaspell = false; rclconfig->getConfParam("noaspell", &noaspell); if (!noaspell) - /*3*/expTypeCMB->insertItem(tr("Spelling/Phonetic")); + /*3*/expTypeCMB->addItem(tr("Spelling/Phonetic")); #endif int typ = prefs.termMatchType; if (typ < 0 || typ > expTypeCMB->count()) typ = 0; - expTypeCMB->setCurrentItem(typ); + expTypeCMB->setCurrentIndex(typ); // Stemming language combobox stemLangCMB->clear(); @@ -73,12 +73,13 @@ void SpellW::init() for (list::const_iterator it = langs.begin(); it != langs.end(); it++) { stemLangCMB-> - insertItem(QString::fromAscii(it->c_str(), it->length())); + addItem(QString::fromAscii(it->c_str(), it->length())); } - stemLangCMB->setEnabled(expTypeCMB->currentItem()==2); + stemLangCMB->setEnabled(expTypeCMB->currentIndex()==2); (void)new HelpClient(this); - HelpClient::installMap(this->name(), "RCL.SEARCH.TERMEXPLORER"); + HelpClient::installMap((const char *)this->objectName().toUtf8(), + "RCL.SEARCH.TERMEXPLORER"); // signals and slots connections connect(baseWordLE, SIGNAL(textChanged(const QString&)), @@ -116,25 +117,25 @@ void SpellW::doExpand() return; } - string expr = string((const char *)baseWordLE->text().utf8()); + string expr = string((const char *)baseWordLE->text().toUtf8()); list suggs; - prefs.termMatchType = expTypeCMB->currentItem(); + prefs.termMatchType = expTypeCMB->currentIndex(); Rcl::Db::MatchType mt = Rcl::Db::ET_WILD; - switch(expTypeCMB->currentItem()) { + switch(expTypeCMB->currentIndex()) { case 0: mt = Rcl::Db::ET_WILD; break; case 1:mt = Rcl::Db::ET_REGEXP; break; case 2:mt = Rcl::Db::ET_STEM; break; } Rcl::TermMatchResult res; - switch (expTypeCMB->currentItem()) { + switch (expTypeCMB->currentIndex()) { case 0: case 1: case 2: { - string l_stemlang = stemLangCMB->currentText().ascii(); + string l_stemlang = (const char*)stemLangCMB->currentText().toAscii(); if (!rcldb->termMatch(mt, l_stemlang, expr, res, 200)) { LOGERR(("SpellW::doExpand:rcldb::termMatch failed\n")); diff --git a/src/qtgui/ssearch_w.cpp b/src/qtgui/ssearch_w.cpp index 09a69f4d..bb77289d 100644 --- a/src/qtgui/ssearch_w.cpp +++ b/src/qtgui/ssearch_w.cpp @@ -40,12 +40,12 @@ static char rcsid[] = "@(#$Id: ssearch_w.cpp,v 1.26 2008-12-05 11:09:31 dockes E void SSearch::init() { // See enum above and keep in order ! - searchTypCMB->insertItem(tr("Any term")); - searchTypCMB->insertItem(tr("All terms")); - searchTypCMB->insertItem(tr("File name")); - searchTypCMB->insertItem(tr("Query language")); + searchTypCMB->addItem(tr("Any term")); + searchTypCMB->addItem(tr("All terms")); + searchTypCMB->addItem(tr("File name")); + searchTypCMB->addItem(tr("Query language")); - queryText->insertStringList(prefs.ssearchHistory); + queryText->addItems(prefs.ssearchHistory); queryText->setEditText(""); connect(queryText->lineEdit(), SIGNAL(returnPressed()), this, SLOT(startSimpleSearch())); @@ -77,14 +77,16 @@ void SSearch::searchTypeChanged(int typ) LOGDEB(("Search type now %d\n", typ)); // Adjust context help if (typ == SST_LANG) - HelpClient::installMap(this->name(), "RCL.SEARCH.LANG"); + HelpClient::installMap((const char *)this->objectName().toUtf8(), + "RCL.SEARCH.LANG"); else - HelpClient::installMap(this->name(), "RCL.SEARCH.SIMPLE"); + HelpClient::installMap((const char *)this->objectName().toUtf8(), + "RCL.SEARCH.SIMPLE"); // Also fix tooltips switch (typ) { case SST_LANG: - QToolTip::add(queryText, + queryText->setToolTip(tr( "Enter query language expression. Cheat sheet:
\n" "term1 term2 : 'term1' and 'term2' in any field.
\n" "field:term1 : 'term1' in field 'field'.
\n" @@ -97,16 +99,17 @@ void SSearch::searchTypeChanged(int typ) "\"term1 term2\" : phrase (must occur exactly). Possible modifiers:
\n" "\"term1 term2\"p : unordered proximity search with default distance.
\n" "Use Show Query link when in doubt about result and see manual (<F1>) for more detail.\n" - ); + )); break; case SST_FNM: - QToolTip::add(queryText, "Enter file name wildcard expression."); + queryText->setToolTip(tr("Enter file name wildcard expression.")); break; case SST_ANY: case SST_ALL: default: - QToolTip::add(queryText, - "Enter search terms here. Type ESC SPC for completions of current term."); + queryText->setToolTip(tr( + "Enter search terms here. Type ESC SPC for completions of current term." + )); } } @@ -115,20 +118,20 @@ void SSearch::startSimpleSearch() if (queryText->currentText().length() == 0) return; - string u8 = (const char *)queryText->currentText().utf8(); + string u8 = (const char *)queryText->currentText().toUtf8(); LOGDEB(("SSearch::startSimpleSearch: [%s]\n", u8.c_str())); trimstring(u8); if (u8.length() == 0) return; - SSearchType tp = (SSearchType)searchTypCMB->currentItem(); + SSearchType tp = (SSearchType)searchTypCMB->currentIndex(); Rcl::SearchData *sdata = 0; if (tp == SST_LANG) { string reason; if (prefs.autoSuffsEnable) - sdata = wasaStringToRcl(u8, reason, (const char *)prefs.autoSuffs.utf8()); + sdata = wasaStringToRcl(u8, reason, (const char *)prefs.autoSuffs.toUtf8()); else sdata = wasaStringToRcl(u8, reason); if (sdata == 0) { @@ -180,42 +183,25 @@ void SSearch::startSimpleSearch() // Search terms history - // Need to remove any previous occurence of the search entry from - // the listbox list, The qt listbox doesn't do lru correctly (if - // already in the list the new entry would remain at it's place, - // not jump at the top as it should - LOGDEB3(("Querytext list count %d\n", queryText->count())); - // Have to save current text, this will change while we clean up the list + // We want to have the new text at the top and any older identical + // entry to be erased. There is no standard qt policy to do this ? + // So do it by hand. QString txt = queryText->currentText(); - bool changed; - do { - changed = false; - for (int index = 0; index < queryText->count(); index++) { - LOGDEB3(("Querytext[%d] = [%s]\n", index, - (const char *)(queryText->text(index).utf8()))); - if (queryText->text(index).length() == 0 || - QString::compare(queryText->text(index), txt) == 0) { - LOGDEB3(("Querytext removing at %d [%s] [%s]\n", index, - (const char *)(queryText->text(index).utf8()), - (const char *)(txt.utf8()))); - queryText->removeItem(index); - changed = true; - break; - } - } - } while (changed); + int index = queryText->findText(txt); + if (index > 0) + queryText->removeItem(index); // The combobox is set for no insertion, insert here: - queryText->insertItem(txt, 0); - queryText->setCurrentItem(0); + queryText->insertItem(0, txt); + queryText->setCurrentIndex(0); + // Save the current state of the listbox list to the prefs (will // go to disk) prefs.ssearchHistory.clear(); for (int index = 0; index < queryText->count(); index++) { - prefs.ssearchHistory.push_back(queryText->text(index)); + prefs.ssearchHistory.push_back(queryText->itemText(index)); } - RefCntr rsdata(sdata); emit startSearch(rsdata); } @@ -232,7 +218,7 @@ bool SSearch::hasSearchString() void SSearch::setAnyTermMode() { - searchTypCMB->setCurrentItem(SST_ANY); + searchTypCMB->setCurrentIndex(SST_ANY); } // Complete last word in input by querying db for all possible terms. @@ -240,13 +226,13 @@ void SSearch::completion() { if (!rcldb) return; - if (searchTypCMB->currentItem() == SST_FNM) { + if (searchTypCMB->currentIndex() == SST_FNM) { // Filename: no completion QApplication::beep(); return; } // Extract last word in text - string txt = (const char *)queryText->currentText().utf8(); + string txt = (const char *)queryText->currentText().toUtf8(); string::size_type cs = txt.find_last_of(" "); if (cs == string::npos) cs = 0; @@ -262,7 +248,7 @@ void SSearch::completion() // Query database const int max = 100; Rcl::TermMatchResult tmres; - string stemLang = (const char *)prefs.queryStemLang.ascii(); + string stemLang = (const char *)prefs.queryStemLang.toAscii(); if (stemLang == "ALL") { rclconfig->getConfParam("indexstemminglanguages", stemLang); } @@ -288,15 +274,15 @@ void SSearch::completion() it != tmres.entries.end(); it++) { lst.push_back(QString::fromUtf8(it->term.c_str())); } - res = QInputDialog::getItem(tr("Completions"), - tr("Select an item:"), lst, 0, - FALSE, &ok, this); + res = QInputDialog::getItem (this, tr("Completions"), + tr("Select an item:"), + lst, 0, false, &ok); } // Insert result if (ok) { txt.erase(cs); - txt.append(res.utf8()); + txt.append((const char *)res.toUtf8()); queryText->setEditText(QString::fromUtf8(txt.c_str())); } else { return; diff --git a/src/qtgui/uiprefs_w.cpp b/src/qtgui/uiprefs_w.cpp index d2734873..4ca2154d 100644 --- a/src/qtgui/uiprefs_w.cpp +++ b/src/qtgui/uiprefs_w.cpp @@ -122,8 +122,8 @@ void UIPrefsDialog::setFromPrefs() // Stemming language combobox stemLangCMB->clear(); - stemLangCMB->insertItem(g_stringNoStem); - stemLangCMB->insertItem(g_stringAllStem); + stemLangCMB->addItem(g_stringNoStem); + stemLangCMB->addItem(g_stringAllStem); list langs; if (!getStemLangs(langs)) { QMessageBox::warning(0, "Recoll", @@ -133,12 +133,13 @@ void UIPrefsDialog::setFromPrefs() for (list::const_iterator it = langs.begin(); it != langs.end(); it++) { stemLangCMB-> - insertItem(QString::fromAscii(it->c_str(), it->length())); - if (cur == 0 && !strcmp(prefs.queryStemLang.ascii(), it->c_str())) { + addItem(QString::fromAscii(it->c_str(), it->length())); + if (cur == 0 && !strcmp((const char*)prefs.queryStemLang.toAscii(), + it->c_str())) { cur = stemLangCMB->count(); } } - stemLangCMB->setCurrentItem(cur); + stemLangCMB->setCurrentIndex(cur); autoPhraseCB->setChecked(prefs.ssearchAutoPhrase); @@ -183,16 +184,16 @@ void UIPrefsDialog::accept() prefs.qtermcolor = qtermColorLE->text(); prefs.reslistfontfamily = reslistFontFamily; prefs.reslistfontsize = reslistFontSize; - prefs.reslistformat = rlfTE->text(); - if (prefs.reslistformat.stripWhiteSpace().isEmpty()) { + prefs.reslistformat = rlfTE->toPlainText(); + if (prefs.reslistformat.trimmed().isEmpty()) { prefs.reslistformat = prefs.dfltResListFormat; rlfTE->setPlainText(prefs.reslistformat); } - prefs.creslistformat = (const char*)prefs.reslistformat.utf8(); + prefs.creslistformat = (const char*)prefs.reslistformat.toUtf8(); - if (stemLangCMB->currentItem() == 0) { + if (stemLangCMB->currentIndex() == 0) { prefs.queryStemLang = ""; - } else if (stemLangCMB->currentItem() == 1) { + } else if (stemLangCMB->currentIndex() == 1) { prefs.queryStemLang = "ALL"; } else { prefs.queryStemLang = stemLangCMB->currentText(); @@ -220,10 +221,10 @@ void UIPrefsDialog::accept() for (int i = 0; i < idxLV->count(); i++) { QListWidgetItem *item = idxLV->item(i); if (item) { - prefs.allExtraDbs.push_back((const char *)item->text().local8Bit()); + prefs.allExtraDbs.push_back((const char *)item->text().toLocal8Bit()); if (item->checkState() == Qt::Checked) { prefs.activeExtraDbs.push_back((const char *) - item->text().local8Bit()); + item->text().toLocal8Bit()); } } } @@ -250,13 +251,13 @@ void UIPrefsDialog::setStemLang(const QString& lang) cur = 1; } else { for (int i = 1; i < stemLangCMB->count(); i++) { - if (lang == stemLangCMB->text(i)) { + if (lang == stemLangCMB->itemText(i)) { cur = i; break; } } } - stemLangCMB->setCurrentItem(cur); + stemLangCMB->setCurrentIndex(cur); } void UIPrefsDialog::showFontDialog() @@ -366,7 +367,7 @@ void UIPrefsDialog::addExtraDbPB_clicked() return; lastdir = input; - string dbdir = (const char *)input.local8Bit(); + string dbdir = (const char *)input.toLocal8Bit(); LOGDEB(("ExtraDbDial: got: [%s]\n", dbdir.c_str())); path_catslash(dbdir); if (!Rcl::Db::testDbDir(dbdir)) { @@ -396,11 +397,11 @@ void UIPrefsDialog::addExtraDbPB_clicked() return; } #if 0 - string nv = (const char *)input.local8Bit(); + string nv = (const char *)input.toLocal8Bit(); QListViewItemIterator it(idxLV); while (it.current()) { QCheckListItem *item = (QCheckListItem *)it.current(); - string ov = (const char *)item->text().local8Bit(); + string ov = (const char *)item->text().toLocal8Bit(); if (!ov.compare(nv)) { QMessageBox::warning(0, "Recoll", tr("The selected directory is already in the index list")); diff --git a/src/qtgui/viewaction_w.cpp b/src/qtgui/viewaction_w.cpp index ecffcff2..11426f72 100644 --- a/src/qtgui/viewaction_w.cpp +++ b/src/qtgui/viewaction_w.cpp @@ -99,7 +99,7 @@ void ViewAction::editActions() QTableWidgetItem *item0 = actionsLV->item(row, 0); if (!item0->isSelected()) continue; - mtypes.push_back((const char *)item0->text().local8Bit()); + mtypes.push_back((const char *)item0->text().toLocal8Bit()); QTableWidgetItem *item1 = actionsLV->item(row, 1); QString action = item1->text(); if (action0.isEmpty()) { @@ -122,13 +122,13 @@ void ViewAction::editActions() return; bool ok; - QString newaction = QInputDialog::getText("Recoll", "Edit action:", + QString newaction = QInputDialog::getText(this, "Recoll", "Edit action:", QLineEdit::Normal, - action0, &ok, this); + action0, &ok); if (!ok || newaction.isEmpty() ) return; - string sact = (const char *)newaction.local8Bit(); + string sact = (const char *)newaction.toLocal8Bit(); for (list::const_iterator it = mtypes.begin(); it != mtypes.end(); it++) { rclconfig->setMimeViewerDef(*it, sact);