simplified indexing preferences GUI panel layout by using qGridLayout (instead of groupboxes)

This commit is contained in:
Jean-Francois Dockes 2010-08-31 18:20:48 +02:00
parent c77847d30b
commit 0089f4031b

View File

@ -144,59 +144,55 @@ ConfBeaglePanelW::ConfBeaglePanelW(QWidget *parent, ConfNull *config)
QVBOXLAYOUT *vboxLayout = new QVBOXLAYOUT(this); QVBOXLAYOUT *vboxLayout = new QVBOXLAYOUT(this);
vboxLayout->setSpacing(spacing); vboxLayout->setSpacing(spacing);
vboxLayout->setMargin(margin); vboxLayout->setMargin(margin);
QGROUPBOX *gb1 = new QGROUPBOX(1, Qt::Horizontal, this);
gb1->setSizePolicy(QSizePolicy(QSizePolicy::Preferred,
QSizePolicy::Preferred,
1, // Horizontal stretch
3, // Vertical stretch
gb1->sizePolicy().hasHeightForWidth()));
gb1->setFlat(1);
// gb1->setInsideMargin(0);
// gb1->setInsideSpacing(0);
ConfLink lnk1(new ConfLinkRclRep(config, "processbeaglequeue")); ConfLink lnk1(new ConfLinkRclRep(config, "processbeaglequeue"));
ConfParamBoolW* cp1 = ConfParamBoolW* cp1 =
new ConfParamBoolW(gb1, lnk1, tr("Steal Beagle indexing queue"), new ConfParamBoolW(this, lnk1, tr("Steal Beagle indexing queue"),
tr("Beagle MUST NOT be running. Enables processing " tr("Beagle MUST NOT be running. Enables processing "
"the beagle queue to index Firefox web history.<br>" "the beagle queue to index Firefox web history.<br>"
"(you should also install the Firefox Beagle plugin)" "(you should also install the Firefox Beagle plugin)"
)); ));
vboxLayout->addWidget(cp1);
ConfLink lnk2(new ConfLinkRclRep(config, "webcachedir")); ConfLink lnk2(new ConfLinkRclRep(config, "webcachedir"));
ConfParamFNW* cp2 = ConfParamFNW* cp2 =
new ConfParamFNW(gb1, lnk2, tr("Web cache directory name"), new ConfParamFNW(this, lnk2, tr("Web cache directory name"),
tr("The name for a directory where to store the cache " tr("The name for a directory where to store the cache "
"for visited web pages.<br>" "for visited web pages.<br>"
"A non-absolute path is taken relative to the " "A non-absolute path is taken relative to the "
"configuration directory."), true); "configuration directory."), true);
cp2->setEnabled(cp1->m_cb->isOn()); cp2->setEnabled(cp1->m_cb->isOn());
connect(cp1->m_cb, SIGNAL(toggled(bool)), cp2, SLOT(setEnabled(bool))); connect(cp1->m_cb, SIGNAL(toggled(bool)), cp2, SLOT(setEnabled(bool)));
vboxLayout->addWidget(cp2);
ConfLink lnk3(new ConfLinkRclRep(config, "webcachemaxmbs")); ConfLink lnk3(new ConfLinkRclRep(config, "webcachemaxmbs"));
ConfParamIntW *cp3 = ConfParamIntW *cp3 =
new ConfParamIntW(gb1, lnk3, tr("Max. size for the web cache (MB)"), new ConfParamIntW(this, lnk3, tr("Max. size for the web cache (MB)"),
tr("Entries will be recycled once the size is reached"), tr("Entries will be recycled once the size is reached"),
-1, 1000); -1, 1000);
cp3->setEnabled(cp1->m_cb->isOn()); cp3->setEnabled(cp1->m_cb->isOn());
connect(cp1->m_cb, SIGNAL(toggled(bool)), cp3, SLOT(setEnabled(bool))); connect(cp1->m_cb, SIGNAL(toggled(bool)), cp3, SLOT(setEnabled(bool)));
vboxLayout->addWidget(cp3);
vboxLayout->addWidget(gb1); vboxLayout->insertStretch(-1);
} }
ConfTopPanelW::ConfTopPanelW(QWidget *parent, ConfNull *config) ConfTopPanelW::ConfTopPanelW(QWidget *parent, ConfNull *config)
: QWidget(parent) : QWidget(parent)
{ {
QVBOXLAYOUT *vboxLayout = new QVBOXLAYOUT(this); QGridLayout *gl1 = new QGridLayout(this);
vboxLayout->setSpacing(spacing); gl1->setSpacing(spacing);
vboxLayout->setMargin(margin); gl1->setMargin(margin);
ConfLink lnktopdirs(new ConfLinkRclRep(config, "topdirs")); ConfLink lnktopdirs(new ConfLinkRclRep(config, "topdirs"));
ConfParamDNLW *etopdirs = new ConfParamDNLW *etopdirs = new
ConfParamDNLW(this, lnktopdirs, tr("Top directories"), ConfParamDNLW(this, lnktopdirs, tr("Top directories"),
tr("The list of directories where recursive " tr("The list of directories where recursive "
"indexing starts. Default: your home.")); "indexing starts. Default: your home."));
vboxLayout->addWidget(etopdirs); #if QT_VERSION < 0x040000
gl1->addMultiCellWidget(etopdirs, 0, 0, 0, 1);
#else
gl1->addWidget(etopdirs, 0, 0, 1, 2);
#endif
ConfLink lnkskp(new ConfLinkRclRep(config, "skippedPaths")); ConfLink lnkskp(new ConfLinkRclRep(config, "skippedPaths"));
ConfParamSLW *eskp = new ConfParamSLW *eskp = new
@ -208,8 +204,12 @@ ConfTopPanelW::ConfTopPanelW(QWidget *parent, ConfNull *config)
"includes '/home/me' and '/home' is actually a link " "includes '/home/me' and '/home' is actually a link "
"to '/usr/home', a correct skippedPath entry " "to '/usr/home', a correct skippedPath entry "
"would be '/home/me/tmp*', not '/usr/home/me/tmp*')")); "would be '/home/me/tmp*', not '/usr/home/me/tmp*')"));
vboxLayout->addWidget(eskp);
eskp->setFsEncoding(true); eskp->setFsEncoding(true);
#if QT_VERSION < 0x040000
gl1->addMultiCellWidget(eskp, 1, 1, 0, 1);
#else
gl1->addWidget(eskp, 1, 0, 1, 2);
#endif
list<string> cstemlangs = Rcl::Db::getStemmerNames(); list<string> cstemlangs = Rcl::Db::getStemmerNames();
QStringList stemlangs; QStringList stemlangs;
@ -222,74 +222,66 @@ ConfTopPanelW::ConfTopPanelW(QWidget *parent, ConfNull *config)
ConfParamCSLW(this, lnkidxsl, tr("Stemming languages"), ConfParamCSLW(this, lnkidxsl, tr("Stemming languages"),
tr("The languages for which stemming expansion<br>" tr("The languages for which stemming expansion<br>"
"dictionaries will be built."), stemlangs); "dictionaries will be built."), stemlangs);
vboxLayout->addWidget(eidxsl); #if QT_VERSION < 0x040000
gl1->addMultiCellWidget(eidxsl, 2, 2, 0, 1);
#else
gl1->addWidget(eidxsl, 2, 0, 1, 2);
#endif
ConfLink lnk4(new ConfLinkRclRep(config, "logfilename")); ConfLink lnk4(new ConfLinkRclRep(config, "logfilename"));
ConfParamFNW *e4 = new ConfParamFNW *e4 = new
ConfParamFNW(this, lnk4, tr("Log file name"), ConfParamFNW(this, lnk4, tr("Log file name"),
tr("The file where the messages will be written.<br>" tr("The file where the messages will be written.<br>"
"Use 'stderr' for terminal output"), false); "Use 'stderr' for terminal output"), false);
vboxLayout->addWidget(e4); #if QT_VERSION < 0x040000
gl1->addMultiCellWidget(e4, 3, 3, 0, 1);
#else
gl1->addWidget(e4, 3, 0, 1, 2);
#endif
QGROUPBOX *groupbox1 = new QGROUPBOX(2, Qt::Horizontal, this); QWidget *w = 0;
groupbox1->setSizePolicy(QSizePolicy(QSizePolicy::Preferred,
QSizePolicy::Preferred,
1, // Horizontal stretch
3, // Vertical stretch
groupbox1->sizePolicy().hasHeightForWidth()));
groupbox1->setFlat(1);
groupbox1->setInsideMargin(0);
groupbox1->setInsideSpacing(0);
ConfLink lnk1(new ConfLinkRclRep(config, "loglevel")); ConfLink lnk1(new ConfLinkRclRep(config, "loglevel"));
new ConfParamIntW(groupbox1, lnk1, tr("Log verbosity level"), w = new ConfParamIntW(this, lnk1, tr("Log verbosity level"),
tr("This value adjusts the amount of " tr("This value adjusts the amount of "
"messages,<br>from only errors to a " "messages,<br>from only errors to a "
"lot of debugging data."), 0, 6); "lot of debugging data."), 0, 6);
gl1->addWidget(w, 4, 0);
ConfLink lnkidxflsh(new ConfLinkRclRep(config, "idxflushmb")); ConfLink lnkidxflsh(new ConfLinkRclRep(config, "idxflushmb"));
w = new ConfParamIntW(this, lnkidxflsh,
new ConfParamIntW(groupbox1, lnkidxflsh, tr("Index flush megabytes interval"),
tr("Index flush megabytes interval"), tr("This value adjust the amount of "
tr("This value adjust the amount of "
"data which is indexed between flushes to disk.<br>" "data which is indexed between flushes to disk.<br>"
"This helps control the indexer memory usage. " "This helps control the indexer memory usage. "
"Default 10MB "), 0, 1000); "Default 10MB "), 0, 1000);
gl1->addWidget(w, 4, 1);
ConfLink lnkfsocc(new ConfLinkRclRep(config, "maxfsoccuppc")); ConfLink lnkfsocc(new ConfLinkRclRep(config, "maxfsoccuppc"));
new ConfParamIntW(groupbox1, lnkfsocc, tr("Max disk occupation (%)"), w = new ConfParamIntW(this, lnkfsocc, tr("Max disk occupation (%)"),
tr("This is the percentage of disk occupation where " tr("This is the percentage of disk occupation where "
"indexing will fail and stop (to avoid filling up " "indexing will fail and stop (to avoid filling up "
"your disk).<br>" "your disk).<br>"
"0 means no limit (this is the default)."), 0, 100); "0 means no limit (this is the default)."), 0, 100);
gl1->addWidget(w, 5, 0);
ConfLink lnkusfc(new ConfLinkRclRep(config, "usesystemfilecommand")); ConfLink lnkusfc(new ConfLinkRclRep(config, "usesystemfilecommand"));
new ConfParamBoolW(groupbox1, lnkusfc, tr("Use system's 'file' command"), w = new ConfParamBoolW(this, lnkusfc, tr("Use system's 'file' command"),
tr("Use the system's 'file' command if internal<br>" tr("Use the system's 'file' command if internal<br>"
"mime type identification fails.")); "mime type identification fails."));
vboxLayout->addWidget(groupbox1); gl1->addWidget(w, 5, 1);
QGROUPBOX *groupbox2 = new QGROUPBOX(2, Qt::Horizontal, this);
groupbox2->setSizePolicy(QSizePolicy(QSizePolicy::Preferred,
QSizePolicy::Preferred,
1, // Horizontal stretch
3, // Vertical stretch
groupbox1->sizePolicy().hasHeightForWidth()));
groupbox2->setFlat(1);
groupbox2->setInsideMargin(0);
groupbox2->setInsideSpacing(0);
ConfLink lnknaspl(new ConfLinkRclRep(config, "noaspell")); ConfLink lnknaspl(new ConfLinkRclRep(config, "noaspell"));
ConfParamBoolW* cpasp = ConfParamBoolW* cpasp =
new ConfParamBoolW(groupbox2, lnknaspl, tr("No aspell usage"), new ConfParamBoolW(this, lnknaspl, tr("No aspell usage"),
tr("Disables use of aspell to generate spelling " tr("Disables use of aspell to generate spelling "
"approximation in the term explorer tool.<br> " "approximation in the term explorer tool.<br> "
"Useful if aspell is absent or does not work. ")); "Useful if aspell is absent or does not work. "));
gl1->addWidget(cpasp, 6, 0);
ConfLink lnk2(new ConfLinkRclRep(config, "aspellLanguage")); ConfLink lnk2(new ConfLinkRclRep(config, "aspellLanguage"));
ConfParamStrW* cpaspl = ConfParamStrW* cpaspl =
new ConfParamStrW(groupbox2, lnk2, tr("Aspell language"), new ConfParamStrW(this, lnk2, tr("Aspell language"),
tr("The language for the aspell dictionary. " tr("The language for the aspell dictionary. "
"This should look like 'en' or 'fr' ...<br>" "This should look like 'en' or 'fr' ...<br>"
"If this value is not set, the NLS environment " "If this value is not set, the NLS environment "
@ -299,8 +291,7 @@ ConfTopPanelW::ConfTopPanelW(QWidget *parent, ConfNull *config)
"the 'data-dir' directory. ")); "the 'data-dir' directory. "));
cpaspl->setEnabled(!cpasp->m_cb->isOn()); cpaspl->setEnabled(!cpasp->m_cb->isOn());
connect(cpasp->m_cb, SIGNAL(toggled(bool)), cpaspl,SLOT(setDisabled(bool))); connect(cpasp->m_cb, SIGNAL(toggled(bool)), cpaspl,SLOT(setDisabled(bool)));
gl1->addWidget(cpaspl, 6, 1);
vboxLayout->addWidget(groupbox2);
ConfLink lnkdbd(new ConfLinkRclRep(config, "dbdir")); ConfLink lnkdbd(new ConfLinkRclRep(config, "dbdir"));
ConfParamFNW *edbd = new ConfParamFNW *edbd = new
@ -309,8 +300,11 @@ ConfTopPanelW::ConfTopPanelW(QWidget *parent, ConfNull *config)
"A non-absolute path is taken relative to the " "A non-absolute path is taken relative to the "
" configuration directory. The default is 'xapiandb'." " configuration directory. The default is 'xapiandb'."
), true); ), true);
vboxLayout->addWidget(edbd); #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) ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config)
@ -364,14 +358,25 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config)
1, // Horizontal stretch 1, // Horizontal stretch
3, // Vertical stretch 3, // Vertical stretch
m_groupbox->sizePolicy().hasHeightForWidth())); m_groupbox->sizePolicy().hasHeightForWidth()));
QWidget *w = new QWidget(m_groupbox);
QGridLayout *gl1 = new QGridLayout(w);
gl1->setSpacing(spacing);
gl1->setMargin(margin);
ConfLink lnkskn(new ConfLinkRclRep(config, "skippedNames", &m_sk)); ConfLink lnkskn(new ConfLinkRclRep(config, "skippedNames", &m_sk));
ConfParamSLW *eskn = new ConfParamSLW *eskn = new
ConfParamSLW(m_groupbox, lnkskn, ConfParamSLW(w, lnkskn,
QObject::tr("Skipped names"), QObject::tr("Skipped names"),
QObject::tr("These are patterns for file or directory " QObject::tr("These are patterns for file or directory "
" names which should not be indexed.")); " names which should not be indexed."));
m_widgets.push_back(eskn);
eskn->setFsEncoding(true); 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<string> args; list<string> args;
args.push_back("-l"); args.push_back("-l");
@ -394,7 +399,7 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config)
ConfLink lnk21(new ConfLinkRclRep(config, "defaultcharset", &m_sk)); ConfLink lnk21(new ConfLinkRclRep(config, "defaultcharset", &m_sk));
ConfParamCStrW *e21 = new ConfParamCStrW *e21 = new
ConfParamCStrW(m_groupbox, lnk21, ConfParamCStrW(w, lnk21,
QObject::tr("Default character set"), QObject::tr("Default character set"),
QObject::tr("This is the character set used for reading files " QObject::tr("This is the character set used for reading files "
"which do not identify the character set " "which do not identify the character set "
@ -403,48 +408,46 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config)
"and the value from the NLS environnement is used." "and the value from the NLS environnement is used."
), charsets); ), charsets);
m_widgets.push_back(e21); m_widgets.push_back(e21);
#if QT_VERSION < 0x040000
QGROUPBOX *groupbox1 = new QGROUPBOX(2, Qt::Horizontal, m_groupbox); gl1->addMultiCellWidget(e21, 1, 1, 0, 1);
groupbox1->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, #else
QSizePolicy::Preferred, gl1->addWidget(e21, 1, 0, 1, 2);
1, // Horizontal stretch #endif
3, // Vertical stretch
groupbox1->sizePolicy().hasHeightForWidth()));
groupbox1->setFlat(1);
groupbox1->setInsideMargin(0);
groupbox1->setInsideSpacing(0);
ConfLink lnk3(new ConfLinkRclRep(config, "followLinks", &m_sk)); ConfLink lnk3(new ConfLinkRclRep(config, "followLinks", &m_sk));
ConfParamBoolW *e3 = new ConfParamBoolW *e3 = new
ConfParamBoolW(groupbox1, lnk3, ConfParamBoolW(w, lnk3,
QObject::tr("Follow symbolic links"), QObject::tr("Follow symbolic links"),
QObject::tr("Follow symbolic links while " QObject::tr("Follow symbolic links while "
"indexing. The default is no, " "indexing. The default is no, "
"to avoid duplicate indexing")); "to avoid duplicate indexing"));
m_widgets.push_back(e3); m_widgets.push_back(e3);
gl1->addWidget(e3, 2, 0);
ConfLink lnkafln(new ConfLinkRclRep(config, "indexallfilenames", &m_sk)); ConfLink lnkafln(new ConfLinkRclRep(config, "indexallfilenames", &m_sk));
ConfParamBoolW *eafln = new ConfParamBoolW *eafln = new
ConfParamBoolW(groupbox1, lnkafln, ConfParamBoolW(w, lnkafln,
QObject::tr("Index all file names"), QObject::tr("Index all file names"),
QObject::tr("Index the names of files for which the contents " QObject::tr("Index the names of files for which the contents "
"cannot be identified or processed (no or " "cannot be identified or processed (no or "
"unsupported mime type). Default true")); "unsupported mime type). Default true"));
m_widgets.push_back(eafln); m_widgets.push_back(eafln);
gl1->addWidget(eafln, 2, 1);
ConfLink lnkzfmaxkbs(new ConfLinkRclRep(config, "compressedfilemaxkbs")); ConfLink lnkzfmaxkbs(new ConfLinkRclRep(config, "compressedfilemaxkbs"));
ConfParamIntW *ezfmaxkbs = new ConfParamIntW *ezfmaxkbs = new
ConfParamIntW(groupbox1, lnkzfmaxkbs, ConfParamIntW(w, lnkzfmaxkbs,
tr("Max. compressed file size (KB)"), tr("Max. compressed file size (KB)"),
tr("This value sets a threshold beyond which compressed" tr("This value sets a threshold beyond which compressed"
"files will not be processed. Set to -1 for no " "files will not be processed. Set to -1 for no "
"limit, to 0 for no decompression ever."), "limit, to 0 for no decompression ever."),
-1, 1000000, -1); -1, 1000000, -1);
m_widgets.push_back(ezfmaxkbs); m_widgets.push_back(ezfmaxkbs);
gl1->addWidget(ezfmaxkbs, 3, 0);
ConfLink lnktxtmaxmbs(new ConfLinkRclRep(config, "textfilemaxmbs")); ConfLink lnktxtmaxmbs(new ConfLinkRclRep(config, "textfilemaxmbs"));
ConfParamIntW *etxtmaxmbs = new ConfParamIntW *etxtmaxmbs = new
ConfParamIntW(groupbox1, lnktxtmaxmbs, ConfParamIntW(w, lnktxtmaxmbs,
tr("Max. text file size (MB)"), tr("Max. text file size (MB)"),
tr("This value sets a threshold beyond which text " tr("This value sets a threshold beyond which text "
"files will not be processed. Set to -1 for no " "files will not be processed. Set to -1 for no "
@ -452,10 +455,11 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config)
"log files from the index."), "log files from the index."),
-1, 1000000); -1, 1000000);
m_widgets.push_back(etxtmaxmbs); m_widgets.push_back(etxtmaxmbs);
gl1->addWidget(etxtmaxmbs, 3, 1);
ConfLink lnktxtpagekbs(new ConfLinkRclRep(config, "textfilepagekbs")); ConfLink lnktxtpagekbs(new ConfLinkRclRep(config, "textfilepagekbs"));
ConfParamIntW *etxtpagekbs = new ConfParamIntW *etxtpagekbs = new
ConfParamIntW(groupbox1, lnktxtpagekbs, ConfParamIntW(w, lnktxtpagekbs,
tr("Text file page size (KB)"), tr("Text file page size (KB)"),
tr("If this value is set (not equal to -1), text " tr("If this value is set (not equal to -1), text "
"files will be split in chunks of this size for " "files will be split in chunks of this size for "
@ -463,10 +467,11 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config)
" files (ie: log files)."), " files (ie: log files)."),
-1, 1000000); -1, 1000000);
m_widgets.push_back(etxtpagekbs); m_widgets.push_back(etxtpagekbs);
gl1->addWidget(etxtpagekbs, 4, 0);
ConfLink lnkfiltmaxsecs(new ConfLinkRclRep(config, "filtermaxseconds")); ConfLink lnkfiltmaxsecs(new ConfLinkRclRep(config, "filtermaxseconds"));
ConfParamIntW *efiltmaxsecs = new ConfParamIntW *efiltmaxsecs = new
ConfParamIntW(groupbox1, lnkfiltmaxsecs, ConfParamIntW(w, lnkfiltmaxsecs,
tr("Max. filter exec. time (S)"), tr("Max. filter exec. time (S)"),
tr("External filters working longer than this will be " tr("External filters working longer than this will be "
"aborted. This is for the rare case (ie: postscript) " "aborted. This is for the rare case (ie: postscript) "
@ -474,7 +479,7 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config)
"Set to -1 for no limit.\n"), "Set to -1 for no limit.\n"),
-1, 10000); -1, 10000);
m_widgets.push_back(efiltmaxsecs); m_widgets.push_back(efiltmaxsecs);
gl1->addWidget(efiltmaxsecs, 4, 1);
vboxLayout->addWidget(m_groupbox); vboxLayout->addWidget(m_groupbox);
subDirChanged(); subDirChanged();
@ -492,7 +497,7 @@ void ConfSubPanelW::subDirChanged()
{ {
LOGDEB(("ConfSubPanelW::subDirChanged\n")); LOGDEB(("ConfSubPanelW::subDirChanged\n"));
QLISTBOXITEM *item = m_subdirs->getListBox()->selectedItem(); QLISTBOXITEM *item = m_subdirs->getListBox()->selectedItem();
if (item == 0) { if (item == 0 || item->text() == "") {
m_sk = ""; m_sk = "";
m_groupbox->setTitle(tr("Global")); m_groupbox->setTitle(tr("Global"));
} else { } else {