merged branch 1.25 fixes
This commit is contained in:
@@ -56,9 +56,12 @@ static const int margin = 2;
|
||||
|
||||
void ConfParamW::setValue(const QString& value)
|
||||
{
|
||||
#ifndef _WIN32
|
||||
// On Windows all paths are unicode.
|
||||
if (m_fsencoding)
|
||||
m_cflink->set(string((const char *)value.toLocal8Bit()));
|
||||
else
|
||||
#endif
|
||||
m_cflink->set(string((const char *)value.toUtf8()));
|
||||
}
|
||||
|
||||
@@ -76,8 +79,8 @@ void ConfParamW::setValue(bool value)
|
||||
}
|
||||
|
||||
void setSzPol(QWidget *w, QSizePolicy::Policy hpol,
|
||||
QSizePolicy::Policy vpol,
|
||||
int hstretch, int vstretch)
|
||||
QSizePolicy::Policy vpol,
|
||||
int hstretch, int vstretch)
|
||||
{
|
||||
QSizePolicy policy(hpol, vpol);
|
||||
policy.setHorizontalStretch(hstretch);
|
||||
@@ -102,15 +105,15 @@ bool ConfParamW::createCommon(const QString& lbltxt, const QString& tltptxt)
|
||||
}
|
||||
|
||||
ConfParamIntW::ConfParamIntW(QWidget *parent, ConfLink cflink,
|
||||
const QString& lbltxt,
|
||||
const QString& tltptxt,
|
||||
int minvalue,
|
||||
int maxvalue,
|
||||
const QString& lbltxt,
|
||||
const QString& tltptxt,
|
||||
int minvalue,
|
||||
int maxvalue,
|
||||
int defaultvalue)
|
||||
: ConfParamW(parent, cflink), m_defaultvalue(defaultvalue)
|
||||
{
|
||||
if (!createCommon(lbltxt, tltptxt))
|
||||
return;
|
||||
return;
|
||||
|
||||
m_sb = new QSpinBox(this);
|
||||
m_sb->setMinimum(minvalue);
|
||||
@@ -124,7 +127,7 @@ ConfParamIntW::ConfParamIntW(QWidget *parent, ConfLink cflink,
|
||||
|
||||
loadValue();
|
||||
QObject::connect(m_sb, SIGNAL(valueChanged(int)),
|
||||
this, SLOT(setValue(int)));
|
||||
this, SLOT(setValue(int)));
|
||||
}
|
||||
|
||||
void ConfParamIntW::loadValue()
|
||||
@@ -137,12 +140,12 @@ void ConfParamIntW::loadValue()
|
||||
}
|
||||
|
||||
ConfParamStrW::ConfParamStrW(QWidget *parent, ConfLink cflink,
|
||||
const QString& lbltxt,
|
||||
const QString& tltptxt)
|
||||
const QString& lbltxt,
|
||||
const QString& tltptxt)
|
||||
: ConfParamW(parent, cflink)
|
||||
{
|
||||
if (!createCommon(lbltxt, tltptxt))
|
||||
return;
|
||||
return;
|
||||
|
||||
m_le = new QLineEdit(this);
|
||||
setSzPol(m_le, QSizePolicy::Preferred, QSizePolicy::Fixed, 1, 0);
|
||||
@@ -151,28 +154,31 @@ ConfParamStrW::ConfParamStrW(QWidget *parent, ConfLink cflink,
|
||||
|
||||
loadValue();
|
||||
QObject::connect(m_le, SIGNAL(textChanged(const QString&)),
|
||||
this, SLOT(setValue(const QString&)));
|
||||
this, SLOT(setValue(const QString&)));
|
||||
}
|
||||
|
||||
void ConfParamStrW::loadValue()
|
||||
{
|
||||
string s;
|
||||
m_cflink->get(s);
|
||||
#ifndef _WIN32
|
||||
// On Windows all paths are unicode.
|
||||
if (m_fsencoding)
|
||||
m_le->setText(QString::fromLocal8Bit(s.c_str()));
|
||||
else
|
||||
#endif
|
||||
m_le->setText(QString::fromUtf8(s.c_str()));
|
||||
}
|
||||
|
||||
ConfParamCStrW::ConfParamCStrW(QWidget *parent, ConfLink cflink,
|
||||
const QString& lbltxt,
|
||||
const QString& tltptxt,
|
||||
const QStringList &sl
|
||||
)
|
||||
const QString& lbltxt,
|
||||
const QString& tltptxt,
|
||||
const QStringList &sl
|
||||
)
|
||||
: ConfParamW(parent, cflink)
|
||||
{
|
||||
if (!createCommon(lbltxt, tltptxt))
|
||||
return;
|
||||
return;
|
||||
m_cmb = new QComboBox(this);
|
||||
m_cmb->setEditable(false);
|
||||
m_cmb->insertItems(0, sl);
|
||||
@@ -183,7 +189,7 @@ ConfParamCStrW::ConfParamCStrW(QWidget *parent, ConfLink cflink,
|
||||
|
||||
loadValue();
|
||||
QObject::connect(m_cmb, SIGNAL(activated(const QString&)),
|
||||
this, SLOT(setValue(const QString&)));
|
||||
this, SLOT(setValue(const QString&)));
|
||||
}
|
||||
|
||||
void ConfParamCStrW::loadValue()
|
||||
@@ -191,22 +197,25 @@ void ConfParamCStrW::loadValue()
|
||||
string s;
|
||||
m_cflink->get(s);
|
||||
QString cs;
|
||||
#ifndef _WIN32
|
||||
// On Windows all paths are unicode.
|
||||
if (m_fsencoding)
|
||||
cs = QString::fromLocal8Bit(s.c_str());
|
||||
else
|
||||
#endif
|
||||
cs = QString::fromUtf8(s.c_str());
|
||||
|
||||
for (int i = 0; i < m_cmb->count(); i++) {
|
||||
if (!cs.compare(m_cmb->itemText(i))) {
|
||||
m_cmb->setCurrentIndex(i);
|
||||
break;
|
||||
}
|
||||
if (!cs.compare(m_cmb->itemText(i))) {
|
||||
m_cmb->setCurrentIndex(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ConfParamBoolW::ConfParamBoolW(QWidget *parent, ConfLink cflink,
|
||||
const QString& lbltxt,
|
||||
const QString& tltptxt)
|
||||
const QString& lbltxt,
|
||||
const QString& tltptxt)
|
||||
: ConfParamW(parent, cflink)
|
||||
{
|
||||
// No createCommon because the checkbox has a label
|
||||
@@ -234,17 +243,17 @@ void ConfParamBoolW::loadValue()
|
||||
}
|
||||
|
||||
ConfParamFNW::ConfParamFNW(QWidget *parent, ConfLink cflink,
|
||||
const QString& lbltxt,
|
||||
const QString& tltptxt,
|
||||
bool isdir,
|
||||
const QString& lbltxt,
|
||||
const QString& tltptxt,
|
||||
bool isdir,
|
||||
QString dirloc,
|
||||
QString dfltnm
|
||||
)
|
||||
)
|
||||
: ConfParamW(parent, cflink), m_isdir(isdir), m_dirloc(dirloc),
|
||||
m_dfltnm(dfltnm)
|
||||
{
|
||||
if (!createCommon(lbltxt, tltptxt))
|
||||
return;
|
||||
return;
|
||||
|
||||
m_fsencoding = true;
|
||||
|
||||
@@ -265,14 +274,19 @@ ConfParamFNW::ConfParamFNW(QWidget *parent, ConfLink cflink,
|
||||
loadValue();
|
||||
QObject::connect(m_pb, SIGNAL(clicked()), this, SLOT(showBrowserDialog()));
|
||||
QObject::connect(m_le, SIGNAL(textChanged(const QString&)),
|
||||
this, SLOT(setValue(const QString&)));
|
||||
this, SLOT(setValue(const QString&)));
|
||||
}
|
||||
|
||||
void ConfParamFNW::loadValue()
|
||||
{
|
||||
string s;
|
||||
m_cflink->get(s);
|
||||
#ifndef _WIN32
|
||||
// On Windows all paths are unicode.
|
||||
m_le->setText(QString::fromLocal8Bit(s.c_str()));
|
||||
#else
|
||||
m_le->setText(QString::fromUtf8(s.c_str()));
|
||||
#endif
|
||||
}
|
||||
|
||||
void ConfParamFNW::showBrowserDialog()
|
||||
@@ -286,13 +300,13 @@ class SmallerListWidget: public QListWidget
|
||||
{
|
||||
public:
|
||||
SmallerListWidget(QWidget *parent)
|
||||
: QListWidget(parent) {}
|
||||
: QListWidget(parent) {}
|
||||
virtual QSize sizeHint() const {return QSize(150, 40);}
|
||||
};
|
||||
|
||||
ConfParamSLW::ConfParamSLW(QWidget *parent, ConfLink cflink,
|
||||
const QString& lbltxt,
|
||||
const QString& tltptxt)
|
||||
const QString& lbltxt,
|
||||
const QString& tltptxt)
|
||||
: ConfParamW(parent, cflink)
|
||||
{
|
||||
// Can't use createCommon here cause we want the buttons below the label
|
||||
@@ -346,9 +360,12 @@ void ConfParamSLW::loadValue()
|
||||
stringToStrings(s, ls);
|
||||
QStringList qls;
|
||||
for (list<string>::const_iterator it = ls.begin(); it != ls.end(); it++) {
|
||||
// On Windows all paths are unicode.
|
||||
#ifndef _WIN32
|
||||
if (m_fsencoding)
|
||||
qls.push_back(QString::fromLocal8Bit(it->c_str()));
|
||||
else
|
||||
#endif
|
||||
qls.push_back(QString::fromUtf8(it->c_str()));
|
||||
}
|
||||
m_lb->clear();
|
||||
@@ -359,27 +376,27 @@ void ConfParamSLW::showInputDialog()
|
||||
{
|
||||
bool ok;
|
||||
QString s = QInputDialog::getText (this,
|
||||
"", // title
|
||||
"", // label,
|
||||
QLineEdit::Normal, // EchoMode mode
|
||||
"", // const QString & text
|
||||
&ok);
|
||||
"", // title
|
||||
"", // label,
|
||||
QLineEdit::Normal, // EchoMode mode
|
||||
"", // const QString & text
|
||||
&ok);
|
||||
|
||||
if (ok && !s.isEmpty()) {
|
||||
QList<QListWidgetItem *>items =
|
||||
m_lb->findItems(s, Qt::MatchFixedString|Qt::MatchCaseSensitive);
|
||||
if (items.empty()) {
|
||||
m_lb->insertItem(0, s);
|
||||
m_lb->sortItems();
|
||||
listToConf();
|
||||
}
|
||||
QList<QListWidgetItem *>items =
|
||||
m_lb->findItems(s, Qt::MatchFixedString|Qt::MatchCaseSensitive);
|
||||
if (items.empty()) {
|
||||
m_lb->insertItem(0, s);
|
||||
m_lb->sortItems();
|
||||
listToConf();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ConfParamSLW::listToConf()
|
||||
{
|
||||
list<string> ls;
|
||||
LOGDEB2("ConfParamSLW::listToConf. m_fsencoding " << (int(m_fsencoding)) << "\n" );
|
||||
LOGDEB2("ConfParamSLW::listToConf. m_fsencoding " << m_fsencoding << "\n");
|
||||
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
|
||||
@@ -388,10 +405,11 @@ void ConfParamSLW::listToConf()
|
||||
// backslashes to slashes. This is an awful hack because
|
||||
// fsencoding does not necessarily imply that the values are
|
||||
// paths, and it will come back to haunt us one day.
|
||||
QString text = m_lb->item(i)->text();
|
||||
QString text = m_lb->item(i)->text();
|
||||
if (m_fsencoding) {
|
||||
// On Windows all paths are unicode.
|
||||
#ifdef _WIN32
|
||||
string pth((const char *)(text.toLocal8Bit()));
|
||||
string pth((const char *)(text.toUtf8()));
|
||||
path_slashize(pth);
|
||||
ls.push_back(pth);
|
||||
#else
|
||||
@@ -420,16 +438,16 @@ void ConfParamSLW::deleteSelected()
|
||||
|
||||
vector<int> idxes;
|
||||
for (int i = 0; i < m_lb->count(); i++) {
|
||||
if (m_lb->item(i)->isSelected()) {
|
||||
idxes.push_back(i);
|
||||
}
|
||||
if (m_lb->item(i)->isSelected()) {
|
||||
idxes.push_back(i);
|
||||
}
|
||||
}
|
||||
for (vector<int>::reverse_iterator it = idxes.rbegin();
|
||||
it != idxes.rend(); it++) {
|
||||
LOGDEB0("deleteSelected: " << (*it) << " was selected\n" );
|
||||
QListWidgetItem *item = m_lb->takeItem(*it);
|
||||
emit entryDeleted(item->text());
|
||||
delete item;
|
||||
it != idxes.rend(); it++) {
|
||||
LOGDEB0("deleteSelected: " << *it << " was selected\n");
|
||||
QListWidgetItem *item = m_lb->takeItem(*it);
|
||||
emit entryDeleted(item->text());
|
||||
delete item;
|
||||
}
|
||||
|
||||
listToConf();
|
||||
@@ -440,18 +458,18 @@ void ConfParamDNLW::showInputDialog()
|
||||
{
|
||||
QString s = myGetFileName(true);
|
||||
if (!s.isEmpty()) {
|
||||
QList<QListWidgetItem *>items =
|
||||
m_lb->findItems(s, Qt::MatchFixedString|Qt::MatchCaseSensitive);
|
||||
if (items.empty()) {
|
||||
m_lb->insertItem(0, s);
|
||||
m_lb->sortItems();
|
||||
QList<QListWidgetItem *>items =
|
||||
m_lb->findItems(s, Qt::MatchFixedString|Qt::MatchCaseSensitive);
|
||||
if (m_lb->selectionMode() == QAbstractItemView::SingleSelection &&
|
||||
!items.empty())
|
||||
m_lb->setCurrentItem(*items.begin());
|
||||
listToConf();
|
||||
}
|
||||
QList<QListWidgetItem *>items =
|
||||
m_lb->findItems(s, Qt::MatchFixedString|Qt::MatchCaseSensitive);
|
||||
if (items.empty()) {
|
||||
m_lb->insertItem(0, s);
|
||||
m_lb->sortItems();
|
||||
QList<QListWidgetItem *>items =
|
||||
m_lb->findItems(s, Qt::MatchFixedString|Qt::MatchCaseSensitive);
|
||||
if (m_lb->selectionMode() == QAbstractItemView::SingleSelection &&
|
||||
!items.empty())
|
||||
m_lb->setCurrentItem(*items.begin());
|
||||
listToConf();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -460,23 +478,22 @@ void ConfParamCSLW::showInputDialog()
|
||||
{
|
||||
bool ok;
|
||||
QString s = QInputDialog::getItem (this, // parent
|
||||
"", // title
|
||||
"", // label,
|
||||
m_sl, // items,
|
||||
0, // current = 0
|
||||
false, // editable = true,
|
||||
&ok);
|
||||
"", // title
|
||||
"", // label,
|
||||
m_sl, // items,
|
||||
0, // current = 0
|
||||
false, // editable = true,
|
||||
&ok);
|
||||
|
||||
if (ok && !s.isEmpty()) {
|
||||
QList<QListWidgetItem *>items =
|
||||
m_lb->findItems(s, Qt::MatchFixedString|Qt::MatchCaseSensitive);
|
||||
if (items.empty()) {
|
||||
m_lb->insertItem(0, s);
|
||||
m_lb->sortItems();
|
||||
listToConf();
|
||||
}
|
||||
QList<QListWidgetItem *>items =
|
||||
m_lb->findItems(s, Qt::MatchFixedString|Qt::MatchCaseSensitive);
|
||||
if (items.empty()) {
|
||||
m_lb->insertItem(0, s);
|
||||
m_lb->sortItems();
|
||||
listToConf();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // Namespace confgui
|
||||
|
||||
|
||||
+141
-145
@@ -57,30 +57,27 @@ static const int margin = 3;
|
||||
class ConfLinkRclRep : public ConfLinkRep {
|
||||
public:
|
||||
ConfLinkRclRep(ConfNull *conf, const string& nm,
|
||||
string *sk = 0)
|
||||
: m_conf(conf), m_nm(nm), m_sk(sk) /* KEEP THE POINTER, shared data */
|
||||
{
|
||||
}
|
||||
string *sk = 0)
|
||||
: m_conf(conf), m_nm(nm), m_sk(sk) /* KEEP THE POINTER, shared data */
|
||||
{ }
|
||||
virtual ~ConfLinkRclRep() {}
|
||||
|
||||
virtual bool set(const string& val)
|
||||
{
|
||||
if (!m_conf)
|
||||
return false;
|
||||
LOGDEB1("Setting [" << m_nm << "] value to [" << val << "]\n");
|
||||
bool ret = m_conf->set(m_nm, val, getSk());
|
||||
if (!ret)
|
||||
LOGERR("Value set failed\n" );
|
||||
return ret;
|
||||
virtual bool set(const string& val) {
|
||||
if (!m_conf)
|
||||
return false;
|
||||
LOGDEB1("Setting [" << m_nm << "] value to [" << val << "]\n");
|
||||
bool ret = m_conf->set(m_nm, val, getSk());
|
||||
if (!ret)
|
||||
LOGERR("Value set failed\n" );
|
||||
return ret;
|
||||
}
|
||||
virtual bool get(string& val)
|
||||
{
|
||||
if (!m_conf)
|
||||
return false;
|
||||
bool ret = m_conf->get(m_nm, val, getSk());
|
||||
LOGDEB1("ConfLinkRcl::get: [" << m_nm << "] sk [" <<
|
||||
virtual bool get(string& val) {
|
||||
if (!m_conf)
|
||||
return false;
|
||||
bool ret = m_conf->get(m_nm, val, getSk());
|
||||
LOGDEB1("ConfLinkRcl::get: [" << m_nm << "] sk [" <<
|
||||
getSk() << "] -> [" << (ret ? val : "no value") << "]\n" );
|
||||
return ret;
|
||||
return ret;
|
||||
}
|
||||
private:
|
||||
string getSk() {
|
||||
@@ -99,18 +96,18 @@ typedef std::function<vector<string>()> RclConfVecValueGetter;
|
||||
class ConfLinkPlusMinus : public ConfLinkRep {
|
||||
public:
|
||||
ConfLinkPlusMinus(RclConfig *rclconf, ConfNull *conf,
|
||||
const string& basename, RclConfVecValueGetter getter,
|
||||
string *sk = 0)
|
||||
: m_rclconf(rclconf), m_conf(conf),
|
||||
const string& basename, RclConfVecValueGetter getter,
|
||||
string *sk = 0)
|
||||
: m_rclconf(rclconf), m_conf(conf),
|
||||
m_basename(basename), m_getter(getter),
|
||||
m_sk(sk) /* KEEP THE POINTER, shared data */
|
||||
{
|
||||
}
|
||||
{
|
||||
}
|
||||
virtual ~ConfLinkPlusMinus() {}
|
||||
|
||||
virtual bool set(const string& snval) {
|
||||
if (!m_conf || !m_rclconf)
|
||||
return false;
|
||||
if (!m_conf || !m_rclconf)
|
||||
return false;
|
||||
|
||||
string sbase;
|
||||
m_conf->get(m_basename, sbase, getSk());
|
||||
@@ -130,14 +127,14 @@ public:
|
||||
}
|
||||
|
||||
virtual bool get(string& val) {
|
||||
if (!m_conf || !m_rclconf)
|
||||
return false;
|
||||
if (!m_conf || !m_rclconf)
|
||||
return false;
|
||||
|
||||
m_rclconf->setKeyDir(getSk());
|
||||
vector<string> vval = m_getter();
|
||||
val = stringsToString(vval);
|
||||
LOGDEB1("ConfLinkPlusMinus: "<<m_basename<<" -> " << val <<std::endl);
|
||||
return true;
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -163,7 +160,7 @@ ConfIndexW::ConfIndexW(QWidget *parent, RclConfig *config)
|
||||
reloadPanels();
|
||||
|
||||
buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok
|
||||
| QDialogButtonBox::Cancel);
|
||||
| QDialogButtonBox::Cancel);
|
||||
|
||||
QVBoxLayout *mainLayout = new QVBoxLayout;
|
||||
mainLayout->addWidget(tabWidget);
|
||||
@@ -180,13 +177,13 @@ void ConfIndexW::acceptChanges()
|
||||
{
|
||||
LOGDEB("ConfIndexW::acceptChanges()\n" );
|
||||
if (!m_conf) {
|
||||
LOGERR("ConfIndexW::acceptChanges: no config\n" );
|
||||
return;
|
||||
LOGERR("ConfIndexW::acceptChanges: no config\n" );
|
||||
return;
|
||||
}
|
||||
// Let the changes to disk
|
||||
if (!m_conf->holdWrites(false)) {
|
||||
QMessageBox::critical(0, "Recoll",
|
||||
tr("Can't write configuration file"));
|
||||
QMessageBox::critical(0, "Recoll",
|
||||
tr("Can't write configuration file"));
|
||||
}
|
||||
// Delete local copy and update the main one from the file
|
||||
delete m_conf;
|
||||
@@ -208,7 +205,7 @@ void ConfIndexW::rejectChanges()
|
||||
void ConfIndexW::reloadPanels()
|
||||
{
|
||||
if ((m_conf = m_rclconf->cloneMainConfig()) == 0)
|
||||
return;
|
||||
return;
|
||||
m_conf->holdWrites(true);
|
||||
tabWidget->clear();
|
||||
m_widgets.clear();
|
||||
@@ -216,7 +213,7 @@ void ConfIndexW::reloadPanels()
|
||||
QWidget *w = new ConfTopPanelW(this, m_conf);
|
||||
m_widgets.push_back(w);
|
||||
tabWidget->addTab(w, QObject::tr("Global parameters"));
|
||||
|
||||
|
||||
w = new ConfSubPanelW(this, m_conf, m_rclconf);
|
||||
m_widgets.push_back(w);
|
||||
tabWidget->addTab(w, QObject::tr("Local parameters"));
|
||||
@@ -242,17 +239,17 @@ ConfBeaglePanelW::ConfBeaglePanelW(QWidget *parent, ConfNull *config)
|
||||
ConfParamBoolW* cp1 =
|
||||
new ConfParamBoolW(this, lnk1, tr("Process the WEB history queue"),
|
||||
tr("Enables indexing Firefox visited pages.<br>"
|
||||
"(you need also install the Firefox Recoll plugin)"
|
||||
));
|
||||
"(you need also install the Firefox Recoll plugin)"
|
||||
));
|
||||
vboxLayout->addWidget(cp1);
|
||||
|
||||
ConfLink lnk2(new ConfLinkRclRep(config, "webcachedir"));
|
||||
ConfParamFNW* cp2 =
|
||||
new ConfParamFNW(this, lnk2, tr("Web page store directory name"),
|
||||
tr("The name for a directory where to store the copies "
|
||||
"of visited web pages.<br>"
|
||||
"A non-absolute path is taken relative to the "
|
||||
"configuration directory."), true);
|
||||
tr("The name for a directory where to store the copies "
|
||||
"of visited web pages.<br>"
|
||||
"A non-absolute path is taken relative to the "
|
||||
"configuration directory."), true);
|
||||
cp2->setEnabled(cp1->m_cb->isChecked());
|
||||
connect(cp1->m_cb, SIGNAL(toggled(bool)), cp2, SLOT(setEnabled(bool)));
|
||||
vboxLayout->addWidget(cp2);
|
||||
@@ -260,12 +257,12 @@ ConfBeaglePanelW::ConfBeaglePanelW(QWidget *parent, ConfNull *config)
|
||||
ConfLink lnk3(new ConfLinkRclRep(config, "webcachemaxmbs"));
|
||||
ConfParamIntW *cp3 =
|
||||
new ConfParamIntW(this, lnk3, tr("Max. size for the web store (MB)"),
|
||||
tr("Entries will be recycled once the size is reached."
|
||||
"<br>"
|
||||
"Only increasing the size really makes sense because "
|
||||
"reducing the value will not truncate an existing "
|
||||
"file (only waste space at the end)."
|
||||
),
|
||||
tr("Entries will be recycled once the size is reached."
|
||||
"<br>"
|
||||
"Only increasing the size really makes sense because "
|
||||
"reducing the value will not truncate an existing "
|
||||
"file (only waste space at the end)."
|
||||
),
|
||||
-1, 1000*1000); // Max 1TB...
|
||||
cp3->setEnabled(cp1->m_cb->isChecked());
|
||||
connect(cp1->m_cb, SIGNAL(toggled(bool)), cp3, SLOT(setEnabled(bool)));
|
||||
@@ -281,58 +278,58 @@ ConfSearchPanelW::ConfSearchPanelW(QWidget *parent, ConfNull *config)
|
||||
vboxLayout->setMargin(margin);
|
||||
|
||||
if (!o_index_stripchars) {
|
||||
ConfLink lnk1(new ConfLinkRclRep(config, "autodiacsens"));
|
||||
ConfParamBoolW* cp1 =
|
||||
new ConfParamBoolW(this, lnk1, tr("Automatic diacritics sensitivity"),
|
||||
tr("<p>Automatically trigger diacritics sensitivity "
|
||||
"if the search term has accented characters "
|
||||
"(not in unac_except_trans). Else you need to "
|
||||
"use the query language and the <i>D</i> "
|
||||
"modifier to specify "
|
||||
"diacritics sensitivity."
|
||||
));
|
||||
vboxLayout->addWidget(cp1);
|
||||
ConfLink lnk1(new ConfLinkRclRep(config, "autodiacsens"));
|
||||
ConfParamBoolW* cp1 =
|
||||
new ConfParamBoolW(this, lnk1, tr("Automatic diacritics sensitivity"),
|
||||
tr("<p>Automatically trigger diacritics sensitivity "
|
||||
"if the search term has accented characters "
|
||||
"(not in unac_except_trans). Else you need to "
|
||||
"use the query language and the <i>D</i> "
|
||||
"modifier to specify "
|
||||
"diacritics sensitivity."
|
||||
));
|
||||
vboxLayout->addWidget(cp1);
|
||||
|
||||
ConfLink lnk2(new ConfLinkRclRep(config, "autocasesens"));
|
||||
ConfParamBoolW* cp2 =
|
||||
new ConfParamBoolW(this, lnk2,
|
||||
tr("Automatic character case sensitivity"),
|
||||
tr("<p>Automatically trigger character case "
|
||||
"sensitivity if the entry has upper-case "
|
||||
"characters in any but the first position. "
|
||||
"Else you need to use the query language and "
|
||||
"the <i>C</i> modifier to specify character-case "
|
||||
"sensitivity."
|
||||
));
|
||||
vboxLayout->addWidget(cp2);
|
||||
ConfLink lnk2(new ConfLinkRclRep(config, "autocasesens"));
|
||||
ConfParamBoolW* cp2 =
|
||||
new ConfParamBoolW(this, lnk2,
|
||||
tr("Automatic character case sensitivity"),
|
||||
tr("<p>Automatically trigger character case "
|
||||
"sensitivity if the entry has upper-case "
|
||||
"characters in any but the first position. "
|
||||
"Else you need to use the query language and "
|
||||
"the <i>C</i> modifier to specify character-case "
|
||||
"sensitivity."
|
||||
));
|
||||
vboxLayout->addWidget(cp2);
|
||||
}
|
||||
|
||||
ConfLink lnk3(new ConfLinkRclRep(config, "maxTermExpand"));
|
||||
ConfParamIntW* cp3 =
|
||||
new ConfParamIntW(this, lnk3,
|
||||
tr("Maximum term expansion count"),
|
||||
tr("<p>Maximum expansion count for a single term "
|
||||
"(e.g.: when using wildcards). The default "
|
||||
"of 10 000 is reasonable and will avoid "
|
||||
"queries that appear frozen while the engine is "
|
||||
"walking the term list."
|
||||
));
|
||||
tr("Maximum term expansion count"),
|
||||
tr("<p>Maximum expansion count for a single term "
|
||||
"(e.g.: when using wildcards). The default "
|
||||
"of 10 000 is reasonable and will avoid "
|
||||
"queries that appear frozen while the engine is "
|
||||
"walking the term list."
|
||||
));
|
||||
vboxLayout->addWidget(cp3);
|
||||
|
||||
|
||||
ConfLink lnk4(new ConfLinkRclRep(config, "maxXapianClauses"));
|
||||
ConfParamIntW* cp4 =
|
||||
new ConfParamIntW(this, lnk4,
|
||||
tr("Maximum Xapian clauses count"),
|
||||
tr("<p>Maximum number of elementary clauses we "
|
||||
"add to a single Xapian query. In some cases, "
|
||||
"the result of term expansion can be "
|
||||
"multiplicative, and we want to avoid using "
|
||||
"excessive memory. The default of 100 000 "
|
||||
"should be both high enough in most cases "
|
||||
"and compatible with current typical hardware "
|
||||
"configurations."
|
||||
));
|
||||
tr("Maximum Xapian clauses count"),
|
||||
tr("<p>Maximum number of elementary clauses we "
|
||||
"add to a single Xapian query. In some cases, "
|
||||
"the result of term expansion can be "
|
||||
"multiplicative, and we want to avoid using "
|
||||
"excessive memory. The default of 100 000 "
|
||||
"should be both high enough in most cases "
|
||||
"and compatible with current typical hardware "
|
||||
"configurations."
|
||||
));
|
||||
vboxLayout->addWidget(cp4);
|
||||
|
||||
vboxLayout->insertStretch(-1);
|
||||
@@ -358,17 +355,17 @@ ConfTopPanelW::ConfTopPanelW(QWidget *parent, ConfNull *config)
|
||||
gl1->addWidget(w, gridrow++, 0, 1, 2);
|
||||
|
||||
ConfParamSLW *eskp = new
|
||||
ConfParamSLW(this,
|
||||
ConfParamSLW(this,
|
||||
ConfLink(new ConfLinkRclRep(config, "skippedPaths")),
|
||||
tr("Skipped paths"),
|
||||
tr("These are pathnames of directories which indexing "
|
||||
"will not enter.<br>"
|
||||
tr("These are pathnames of directories which indexing "
|
||||
"will not enter.<br>"
|
||||
"Path elements may contain wildcards. "
|
||||
"The entries must match the paths seen by the indexer "
|
||||
"The entries must match the paths seen by the indexer "
|
||||
"(e.g.: if topdirs includes '/home/me' and '/home' is "
|
||||
"actually a link "
|
||||
"to '/usr/home', a correct skippedPath entry "
|
||||
"would be '/home/me/tmp*', not '/usr/home/me/tmp*')"));
|
||||
"to '/usr/home', a correct skippedPath entry "
|
||||
"would be '/home/me/tmp*', not '/usr/home/me/tmp*')"));
|
||||
eskp->setFsEncoding(true);
|
||||
setSzPol(eskp, QSizePolicy::Preferred, QSizePolicy::Preferred, 1, 3);
|
||||
gl1->addWidget(eskp, gridrow++, 0, 1, 2);
|
||||
@@ -376,16 +373,16 @@ ConfTopPanelW::ConfTopPanelW(QWidget *parent, ConfNull *config)
|
||||
vector<string> cstemlangs = Rcl::Db::getStemmerNames();
|
||||
QStringList stemlangs;
|
||||
for (vector<string>::const_iterator it = cstemlangs.begin();
|
||||
it != cstemlangs.end(); it++) {
|
||||
stemlangs.push_back(QString::fromUtf8(it->c_str()));
|
||||
it != cstemlangs.end(); it++) {
|
||||
stemlangs.push_back(QString::fromUtf8(it->c_str()));
|
||||
}
|
||||
w = new
|
||||
ConfParamCSLW(this,
|
||||
ConfParamCSLW(this,
|
||||
ConfLink(new ConfLinkRclRep(config,
|
||||
"indexstemminglanguages")),
|
||||
tr("Stemming languages"),
|
||||
tr("The languages for which stemming expansion<br>"
|
||||
"dictionaries will be built."), stemlangs);
|
||||
tr("The languages for which stemming expansion<br>"
|
||||
"dictionaries will be built."), stemlangs);
|
||||
setSzPol(w, QSizePolicy::Preferred, QSizePolicy::Preferred, 1, 1);
|
||||
gl1->addWidget(w, gridrow, 0);
|
||||
|
||||
@@ -412,9 +409,9 @@ ConfTopPanelW::ConfTopPanelW(QWidget *parent, ConfNull *config)
|
||||
ConfLink(new ConfLinkRclRep(config, "idxflushmb")),
|
||||
tr("Index flush megabytes interval"),
|
||||
tr("This value adjust the amount of "
|
||||
"data which is indexed between flushes to disk.<br>"
|
||||
"This helps control the indexer memory usage. "
|
||||
"Default 10MB "), 0, 1000);
|
||||
"data which is indexed between flushes to disk.<br>"
|
||||
"This helps control the indexer memory usage. "
|
||||
"Default 10MB "), 0, 1000);
|
||||
gl1->addWidget(w, gridrow++, 1);
|
||||
|
||||
w = new ConfParamIntW(this,
|
||||
@@ -443,10 +440,10 @@ ConfTopPanelW::ConfTopPanelW(QWidget *parent, ConfNull *config)
|
||||
tr("The language for the aspell dictionary. "
|
||||
"This should look like 'en' or 'fr' ...<br>"
|
||||
"If this value is not set, the NLS environment "
|
||||
"will be used to compute it, which usually works. "
|
||||
"To get an idea of what is installed on your system, "
|
||||
"type 'aspell config' and look for .dat files inside "
|
||||
"the 'data-dir' directory. "));
|
||||
"will be used to compute it, which usually works. "
|
||||
"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->isChecked());
|
||||
connect(cpasp->m_cb, SIGNAL(toggled(bool)), cpaspl,SLOT(setDisabled(bool)));
|
||||
gl1->addWidget(cpaspl, gridrow++, 1);
|
||||
@@ -456,13 +453,13 @@ ConfTopPanelW::ConfTopPanelW(QWidget *parent, ConfNull *config)
|
||||
ConfLink(new ConfLinkRclRep(config, "dbdir")),
|
||||
tr("Database directory name"),
|
||||
tr("The name for a directory where to store the index<br>"
|
||||
"A non-absolute path is taken relative to the "
|
||||
"configuration directory. The default is 'xapiandb'."
|
||||
), true);
|
||||
"A non-absolute path is taken relative to the "
|
||||
"configuration directory. The default is 'xapiandb'."
|
||||
), true);
|
||||
gl1->addWidget(w, gridrow++, 0, 1, 2);
|
||||
|
||||
w = new
|
||||
ConfParamStrW(this,
|
||||
ConfParamStrW(this,
|
||||
ConfLink(new ConfLinkRclRep(config, "unac_except_trans")),
|
||||
tr("Unac exceptions"),
|
||||
tr("<p>These are exceptions to the unac mechanism "
|
||||
@@ -486,19 +483,19 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config,
|
||||
vboxLayout->setMargin(margin);
|
||||
|
||||
m_subdirs = new
|
||||
ConfParamDNLW(this,
|
||||
ConfParamDNLW(this,
|
||||
ConfLink(new ConfLinkNullRep()),
|
||||
QObject::tr("<b>Customised subtrees"),
|
||||
QObject::tr("The list of subdirectories in the indexed "
|
||||
"hierarchy <br>where some parameters need "
|
||||
"to be redefined. Default: empty."));
|
||||
QObject::tr("<b>Customised subtrees"),
|
||||
QObject::tr("The list of subdirectories in the indexed "
|
||||
"hierarchy <br>where some parameters need "
|
||||
"to be redefined. Default: empty."));
|
||||
m_subdirs->getListBox()->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
connect(m_subdirs->getListBox(),
|
||||
SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)),
|
||||
this,
|
||||
SLOT(subDirChanged(QListWidgetItem *, QListWidgetItem *)));
|
||||
SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)),
|
||||
this,
|
||||
SLOT(subDirChanged(QListWidgetItem *, QListWidgetItem *)));
|
||||
connect(m_subdirs, SIGNAL(entryDeleted(QString)),
|
||||
this, SLOT(subDirDeleted(QString)));
|
||||
this, SLOT(subDirDeleted(QString)));
|
||||
|
||||
// We only retrieve the subkeys from the user's config (shallow),
|
||||
// no use to confuse the user by showing the subtrees which are
|
||||
@@ -509,8 +506,8 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config,
|
||||
|
||||
QStringList qls;
|
||||
for (vector<string>::const_iterator it = allkeydirs.begin();
|
||||
it != allkeydirs.end(); it++) {
|
||||
qls.push_back(QString::fromUtf8(it->c_str()));
|
||||
it != allkeydirs.end(); it++) {
|
||||
qls.push_back(QString::fromUtf8(it->c_str()));
|
||||
}
|
||||
m_subdirs->getListBox()->insertItems(0, qls);
|
||||
vboxLayout->addWidget(m_subdirs);
|
||||
@@ -523,13 +520,13 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config,
|
||||
QLabel *explain = new QLabel(this);
|
||||
explain->setWordWrap(true);
|
||||
explain->setText(
|
||||
QObject::
|
||||
tr("<i>The parameters that follow are set either at the "
|
||||
"top level, if nothing "
|
||||
"or an empty line is selected in the listbox above, "
|
||||
"or for the selected subdirectory. "
|
||||
"You can add or remove directories by clicking "
|
||||
"the +/- buttons."));
|
||||
QObject::
|
||||
tr("<i>The parameters that follow are set either at the "
|
||||
"top level, if nothing "
|
||||
"or an empty line is selected in the listbox above, "
|
||||
"or for the selected subdirectory. "
|
||||
"You can add or remove directories by clicking "
|
||||
"the +/- buttons."));
|
||||
vboxLayout->addWidget(explain);
|
||||
|
||||
|
||||
@@ -556,8 +553,8 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config,
|
||||
vector<string> amimes = rclconf->getAllMimeTypes();
|
||||
QStringList amimesq;
|
||||
for (vector<string>::const_iterator it = amimes.begin();
|
||||
it != amimes.end(); it++) {
|
||||
amimesq.push_back(QString::fromUtf8(it->c_str()));
|
||||
it != amimes.end(); it++) {
|
||||
amimesq.push_back(QString::fromUtf8(it->c_str()));
|
||||
}
|
||||
|
||||
ConfParamCSLW *eincm = new ConfParamCSLW(
|
||||
@@ -597,7 +594,7 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config,
|
||||
string cmd = "iconv";
|
||||
int status = ex.doexec(cmd, args, 0, &icout);
|
||||
if (status) {
|
||||
LOGERR("Can't get list of charsets from 'iconv -l'" );
|
||||
LOGERR("Can't get list of charsets from 'iconv -l'" );
|
||||
}
|
||||
icout = neutchars(icout, ",");
|
||||
list<string> ccsets;
|
||||
@@ -605,8 +602,8 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config,
|
||||
QStringList charsets;
|
||||
charsets.push_back("");
|
||||
for (list<string>::const_iterator it = ccsets.begin();
|
||||
it != ccsets.end(); it++) {
|
||||
charsets.push_back(QString::fromUtf8(it->c_str()));
|
||||
it != ccsets.end(); it++) {
|
||||
charsets.push_back(QString::fromUtf8(it->c_str()));
|
||||
}
|
||||
|
||||
ConfParamCStrW *e21 = new ConfParamCStrW(
|
||||
@@ -692,21 +689,21 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config,
|
||||
void ConfSubPanelW::reloadAll()
|
||||
{
|
||||
for (list<ConfParamW*>::iterator it = m_widgets.begin();
|
||||
it != m_widgets.end(); it++) {
|
||||
(*it)->loadValue();
|
||||
it != m_widgets.end(); it++) {
|
||||
(*it)->loadValue();
|
||||
}
|
||||
}
|
||||
|
||||
void ConfSubPanelW::subDirChanged(QListWidgetItem *current, QListWidgetItem *)
|
||||
{
|
||||
LOGDEB("ConfSubPanelW::subDirChanged\n" );
|
||||
|
||||
|
||||
if (current == 0 || current->text() == "") {
|
||||
m_sk = "";
|
||||
m_groupbox->setTitle(tr("Global"));
|
||||
m_sk = "";
|
||||
m_groupbox->setTitle(tr("Global"));
|
||||
} else {
|
||||
m_sk = (const char *) current->text().toUtf8();
|
||||
m_groupbox->setTitle(current->text());
|
||||
m_sk = (const char *) current->text().toUtf8();
|
||||
m_groupbox->setTitle(current->text());
|
||||
}
|
||||
LOGDEB("ConfSubPanelW::subDirChanged: now [" << (m_sk) << "]\n" );
|
||||
reloadAll();
|
||||
@@ -716,9 +713,9 @@ void ConfSubPanelW::subDirDeleted(QString sbd)
|
||||
{
|
||||
LOGDEB("ConfSubPanelW::subDirDeleted(" << ((const char *)sbd.toUtf8()) << ")\n" );
|
||||
if (sbd == "") {
|
||||
// Can't do this, have to reinsert it
|
||||
QTimer::singleShot(0, this, SLOT(restoreEmpty()));
|
||||
return;
|
||||
// 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.toUtf8());
|
||||
@@ -731,4 +728,3 @@ void ConfSubPanelW::restoreEmpty()
|
||||
}
|
||||
|
||||
} // Namespace confgui
|
||||
|
||||
|
||||
@@ -1331,14 +1331,6 @@ Prověřte soubor pracovní plochy</translation>
|
||||
<source>Content has been indexed for these MIME types:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors/%d total files) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Empty or non-existant paths in configuration file. Click Ok to start indexing anyway (absent data will not be purged from the index):
|
||||
</source>
|
||||
@@ -1368,6 +1360,34 @@ Prověřte soubor pracovní plochy</translation>
|
||||
<source>Click Cancel to return to the list.<br>Click Ignore to show the preview anyway (and remember for this session). There is a risk of showing the wrong entry.<br/></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>documents</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>document</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>errors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total files)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RclMainBase</name>
|
||||
@@ -2391,7 +2411,7 @@ Použijte odkaz <b>Ukázat hledání</b>, když máte o výsledku po
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory (else use regular topdirs):</source>
|
||||
<translation>Začáteční adresář (jinak použít počáteční adresáře):</translation>
|
||||
<translation type="vanished">Začáteční adresář (jinak použít počáteční adresáře):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Leave empty to select all files. You can use multiple space-separated shell-type patterns.<br>Patterns with embedded spaces should be quoted with double quotes.<br>Can only be used if the start target is set.</source>
|
||||
@@ -2409,6 +2429,10 @@ Použijte odkaz <b>Ukázat hledání</b>, když máte o výsledku po
|
||||
<source>Retry previously failed files.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory. Must be part of the indexed tree. Use full indexed area if empty.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SpellBase</name>
|
||||
|
||||
@@ -1239,14 +1239,6 @@ Tjek venligst desktopfilen</translation>
|
||||
<source>Content has been indexed for these MIME types:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors/%d total files) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Empty or non-existant paths in configuration file. Click Ok to start indexing anyway (absent data will not be purged from the index):
|
||||
</source>
|
||||
@@ -1276,6 +1268,34 @@ Tjek venligst desktopfilen</translation>
|
||||
<source>Click Cancel to return to the list.<br>Click Ignore to show the preview anyway (and remember for this session). There is a risk of showing the wrong entry.<br/></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>documents</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>document</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>errors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total files)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RclMainBase</name>
|
||||
@@ -2056,7 +2076,7 @@ Brug <b>Vis Forespørgsel</b> link når i tvivl om resultatet og se
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory (else use regular topdirs):</source>
|
||||
<translation>Startmappe (ellers brug de regulære øverste mapper):</translation>
|
||||
<translation type="vanished">Startmappe (ellers brug de regulære øverste mapper):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Leave empty to select all files. You can use multiple space-separated shell-type patterns.<br>Patterns with embedded spaces should be quoted with double quotes.<br>Can only be used if the start target is set.</source>
|
||||
@@ -2074,6 +2094,10 @@ Brug <b>Vis Forespørgsel</b> link når i tvivl om resultatet og se
|
||||
<source>Retry previously failed files.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory. Must be part of the indexed tree. Use full indexed area if empty.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SpellBase</name>
|
||||
|
||||
+32
-12
@@ -1299,14 +1299,6 @@ Please check the desktop file</source>
|
||||
<source>Content has been indexed for these MIME types:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors/%d total files) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Empty or non-existant paths in configuration file. Click Ok to start indexing anyway (absent data will not be purged from the index):
|
||||
</source>
|
||||
@@ -1336,6 +1328,34 @@ Please check the desktop file</source>
|
||||
<source>Click Cancel to return to the list.<br>Click Ignore to show the preview anyway (and remember for this session). There is a risk of showing the wrong entry.<br/></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>documents</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>document</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>errors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total files)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RclMainBase</name>
|
||||
@@ -2328,10 +2348,6 @@ Drücken Sie ESC+Leerzeichen für Vervollständigungen des aktuellen Begriffs.</
|
||||
<source>Browse</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory (else use regular topdirs):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Leave empty to select all files. You can use multiple space-separated shell-type patterns.<br>Patterns with embedded spaces should be quoted with double quotes.<br>Can only be used if the start target is set.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -2348,6 +2364,10 @@ Drücken Sie ESC+Leerzeichen für Vervollständigungen des aktuellen Begriffs.</
|
||||
<source>Retry previously failed files.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory. Must be part of the indexed tree. Use full indexed area if empty.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SpellBase</name>
|
||||
|
||||
+32
-12
@@ -1283,14 +1283,6 @@ Please check the desktop file</source>
|
||||
<source>Content has been indexed for these MIME types:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors/%d total files) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Empty or non-existant paths in configuration file. Click Ok to start indexing anyway (absent data will not be purged from the index):
|
||||
</source>
|
||||
@@ -1320,6 +1312,34 @@ Please check the desktop file</source>
|
||||
<source>Click Cancel to return to the list.<br>Click Ignore to show the preview anyway (and remember for this session). There is a risk of showing the wrong entry.<br/></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>documents</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>document</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>errors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total files)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RclMainBase</name>
|
||||
@@ -2239,10 +2259,6 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Browse</source>
|
||||
<translation type="unfinished">Περιήγηση</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory (else use regular topdirs):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Leave empty to select all files. You can use multiple space-separated shell-type patterns.<br>Patterns with embedded spaces should be quoted with double quotes.<br>Can only be used if the start target is set.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -2259,6 +2275,10 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Retry previously failed files.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory. Must be part of the indexed tree. Use full indexed area if empty.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SpellBase</name>
|
||||
|
||||
+32
-12
@@ -1289,14 +1289,6 @@ Please check the desktop file</source>
|
||||
<source>Content has been indexed for these MIME types:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors/%d total files) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Empty or non-existant paths in configuration file. Click Ok to start indexing anyway (absent data will not be purged from the index):
|
||||
</source>
|
||||
@@ -1326,6 +1318,34 @@ Please check the desktop file</source>
|
||||
<source>Click Cancel to return to the list.<br>Click Ignore to show the preview anyway (and remember for this session). There is a risk of showing the wrong entry.<br/></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>documents</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>document</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>errors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total files)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RclMainBase</name>
|
||||
@@ -2282,10 +2302,6 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Browse</source>
|
||||
<translation type="unfinished">Buscar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory (else use regular topdirs):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Leave empty to select all files. You can use multiple space-separated shell-type patterns.<br>Patterns with embedded spaces should be quoted with double quotes.<br>Can only be used if the start target is set.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -2302,6 +2318,10 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Retry previously failed files.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory. Must be part of the indexed tree. Use full indexed area if empty.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SpellBase</name>
|
||||
|
||||
Binary file not shown.
@@ -1347,11 +1347,11 @@ Merci de vérifier le fichier desktop </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors/%d total files) </source>
|
||||
<translation>(%d documents/%d fichiers/%d erreurs/%d fichiers en tout) </translation>
|
||||
<translation type="vanished">(%d documents/%d fichiers/%d erreurs/%d fichiers en tout) </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors) </source>
|
||||
<translation>(%d documents/%d fichiers/%d erreurs) </translation>
|
||||
<translation type="vanished">(%d documents/%d fichiers/%d erreurs) </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Empty or non-existant paths in configuration file. Click Ok to start indexing anyway (absent data will not be purged from the index):
|
||||
@@ -1382,6 +1382,34 @@ Merci de vérifier le fichier desktop </translation>
|
||||
<source>Click Cancel to return to the list.<br>Click Ignore to show the preview anyway (and remember for this session). There is a risk of showing the wrong entry.<br/></source>
|
||||
<translation>Cliquer Annuler pour retourner à la liste.<br>Cliquer Ignorer pour afficher la prévisualisation (et enregister l'option pour cette session). Il y a un risque d'afficher le mauvais document.<br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>documents</source>
|
||||
<translation>documents</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>document</source>
|
||||
<translation>document</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>files</source>
|
||||
<translation>fichiers</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>file</source>
|
||||
<translation>fichier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>errors</source>
|
||||
<translation>erreurs</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>error</source>
|
||||
<translation>erreur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total files)</source>
|
||||
<translation>fichiers totaux)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RclMainBase</name>
|
||||
@@ -2421,7 +2449,7 @@ Utiliser le lien <b>Afficher la requête en détail</b> en cas de do
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory (else use regular topdirs):</source>
|
||||
<translation>Répertoire de départ (sinon utiliser la variable normale topdirs) :</translation>
|
||||
<translation type="vanished">Répertoire de départ (sinon utiliser la variable normale topdirs) :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Leave empty to select all files. You can use multiple space-separated shell-type patterns.<br>Patterns with embedded spaces should be quoted with double quotes.<br>Can only be used if the start target is set.</source>
|
||||
@@ -2443,6 +2471,14 @@ Utiliser le lien <b>Afficher la requête en détail</b> en cas de do
|
||||
<source>Retry previously failed files.</source>
|
||||
<translation>Ne pas réessayer les fichiers en erreur.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory. Must be part of the indexed tree. We use topdirs if empty.</source>
|
||||
<translation type="vanished">Répertoire de départ. Doit faire partie de la zone indexée. topdirs est utilisé si non renseigné.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory. Must be part of the indexed tree. Use full indexed area if empty.</source>
|
||||
<translation>Répertoire de départ. Doit faire partie de la zone indexée. Traite toute la zone si non renseigné.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SpellBase</name>
|
||||
|
||||
+32
-12
@@ -1203,14 +1203,6 @@ Please check the desktop file</source>
|
||||
<source>Content has been indexed for these MIME types:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors/%d total files) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Empty or non-existant paths in configuration file. Click Ok to start indexing anyway (absent data will not be purged from the index):
|
||||
</source>
|
||||
@@ -1240,6 +1232,34 @@ Please check the desktop file</source>
|
||||
<source>Click Cancel to return to the list.<br>Click Ignore to show the preview anyway (and remember for this session). There is a risk of showing the wrong entry.<br/></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>documents</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>document</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>errors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total files)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RclMainBase</name>
|
||||
@@ -2077,10 +2097,6 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Browse</source>
|
||||
<translation type="unfinished">Esplora</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory (else use regular topdirs):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Leave empty to select all files. You can use multiple space-separated shell-type patterns.<br>Patterns with embedded spaces should be quoted with double quotes.<br>Can only be used if the start target is set.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -2097,6 +2113,10 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Retry previously failed files.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory. Must be part of the indexed tree. Use full indexed area if empty.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SpellBase</name>
|
||||
|
||||
+32
-12
@@ -1223,14 +1223,6 @@ Please check the desktop file</source>
|
||||
<source>Content has been indexed for these MIME types:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors/%d total files) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Empty or non-existant paths in configuration file. Click Ok to start indexing anyway (absent data will not be purged from the index):
|
||||
</source>
|
||||
@@ -1260,6 +1252,34 @@ Please check the desktop file</source>
|
||||
<source>Click Cancel to return to the list.<br>Click Ignore to show the preview anyway (and remember for this session). There is a risk of showing the wrong entry.<br/></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>documents</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>document</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>errors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total files)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RclMainBase</name>
|
||||
@@ -2161,10 +2181,6 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Browse</source>
|
||||
<translation type="unfinished">Naršyti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory (else use regular topdirs):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Leave empty to select all files. You can use multiple space-separated shell-type patterns.<br>Patterns with embedded spaces should be quoted with double quotes.<br>Can only be used if the start target is set.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -2181,6 +2197,10 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Retry previously failed files.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory. Must be part of the indexed tree. Use full indexed area if empty.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SpellBase</name>
|
||||
|
||||
+59
-30
@@ -748,7 +748,7 @@ Click Cancel if you want to edit the configuration file before indexing starts,
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../confgui/confguiindex.cpp" line="+218"/>
|
||||
<location filename="../confgui/confguiindex.cpp" line="+215"/>
|
||||
<source>Global parameters</source>
|
||||
<translation>Общие параметры</translation>
|
||||
</message>
|
||||
@@ -1064,8 +1064,8 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Невозможно извлечь сведения о документе из БД</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../rclm_idx.cpp" line="+261"/>
|
||||
<location line="+271"/>
|
||||
<location filename="../rclm_idx.cpp" line="+263"/>
|
||||
<location line="+273"/>
|
||||
<location line="+19"/>
|
||||
<location filename="../rclm_preview.cpp" line="-138"/>
|
||||
<location line="+44"/>
|
||||
@@ -1101,7 +1101,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>История</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../rclm_idx.cpp" line="-507"/>
|
||||
<location filename="../rclm_idx.cpp" line="-511"/>
|
||||
<source>Indexing in progress: </source>
|
||||
<translation>Идёт индексирование: </translation>
|
||||
</message>
|
||||
@@ -1162,7 +1162,7 @@ Please check the mimeconf file</source>
|
||||
<translation>ошибка получения списка языков</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../rclm_idx.cpp" line="+121"/>
|
||||
<location filename="../rclm_idx.cpp" line="+123"/>
|
||||
<source>Update &Index</source>
|
||||
<translation>Обновить &индекс</translation>
|
||||
</message>
|
||||
@@ -1172,7 +1172,42 @@ Please check the mimeconf file</source>
|
||||
<translation>Индексирование прервано</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+34"/>
|
||||
<location line="-66"/>
|
||||
<source>documents</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+0"/>
|
||||
<source>document</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<source>files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+0"/>
|
||||
<source>file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<source>errors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+0"/>
|
||||
<source>error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+4"/>
|
||||
<source>total files)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+94"/>
|
||||
<location line="+27"/>
|
||||
<source>Stop &Indexing</source>
|
||||
<translation>О&становить индексирование</translation>
|
||||
@@ -1309,7 +1344,7 @@ Do you want to start the preferences dialog ?</source>
|
||||
<translation>Поиск не дал результатов</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../rclm_idx.cpp" line="-136"/>
|
||||
<location filename="../rclm_idx.cpp" line="-138"/>
|
||||
<source>None</source>
|
||||
<translation>Отсутствует</translation>
|
||||
</message>
|
||||
@@ -1329,17 +1364,7 @@ Do you want to start the preferences dialog ?</source>
|
||||
<translation>Монитор</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+8"/>
|
||||
<source>(%d documents/%d files/%d errors/%d total files) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+6"/>
|
||||
<source>(%d documents/%d files/%d errors) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+58"/>
|
||||
<location line="+74"/>
|
||||
<source>Indexing failed</source>
|
||||
<translation>Не удалось выполнить индексирование</translation>
|
||||
</message>
|
||||
@@ -1370,7 +1395,7 @@ Do you want to start the preferences dialog ?</source>
|
||||
<translation>Сбросить индекс и начать заново?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+193"/>
|
||||
<location line="+195"/>
|
||||
<source>Can't update index: internal error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -1501,7 +1526,7 @@ Please check the desktop file</source>
|
||||
<translation type="vanished">Для запуска текущего процесса индексирования был использован другой интерфейс. Прекратить выполнение процесса невозможно</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../rclm_idx.cpp" line="-303"/>
|
||||
<location filename="../rclm_idx.cpp" line="-305"/>
|
||||
<source>Bad paths</source>
|
||||
<translation>Неверные пути</translation>
|
||||
</message>
|
||||
@@ -1512,7 +1537,7 @@ Please check the desktop file</source>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+279"/>
|
||||
<location line="+281"/>
|
||||
<source>Selection patterns need topdir</source>
|
||||
<translation>Для шаблонов отбора требуется topdir</translation>
|
||||
</message>
|
||||
@@ -1622,7 +1647,7 @@ Please check the desktop file</source>
|
||||
<translation>Больше не показывать (для восстановления значений используйте окно настройки интерфейса).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../rclm_idx.cpp" line="-342"/>
|
||||
<location filename="../rclm_idx.cpp" line="-344"/>
|
||||
<source>Index locked</source>
|
||||
<translation>Индекс заблокирован</translation>
|
||||
</message>
|
||||
@@ -2138,12 +2163,12 @@ Please check the desktop file</source>
|
||||
<translation>Дата и время</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+193"/>
|
||||
<location line="+189"/>
|
||||
<source>Can't sort by inverse relevance</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-202"/>
|
||||
<location line="-198"/>
|
||||
<source>Ipath</source>
|
||||
<translation>Ipath</translation>
|
||||
</message>
|
||||
@@ -2293,7 +2318,7 @@ Please check the desktop file</source>
|
||||
<context>
|
||||
<name>ResTable</name>
|
||||
<message>
|
||||
<location filename="../restable.cpp" line="+787"/>
|
||||
<location filename="../restable.cpp" line="+783"/>
|
||||
<source>&Reset sort</source>
|
||||
<translation>&Сбросить сортировку</translation>
|
||||
</message>
|
||||
@@ -2311,7 +2336,7 @@ Please check the desktop file</source>
|
||||
<translation type="obsolete">"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-313"/>
|
||||
<location line="-312"/>
|
||||
<source>Save table to CSV file</source>
|
||||
<translation>Сохранить таблицу в CSV-файл</translation>
|
||||
</message>
|
||||
@@ -2353,7 +2378,7 @@ Please check the desktop file</source>
|
||||
<translation type="obsolete">&Открыть родительский документ/каталог</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+301"/>
|
||||
<location line="+300"/>
|
||||
<source>&Save as CSV</source>
|
||||
<translation>&Сохранить как CSV</translation>
|
||||
</message>
|
||||
@@ -2843,8 +2868,12 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
</message>
|
||||
<message>
|
||||
<location line="+10"/>
|
||||
<source>Start directory. Must be part of the indexed tree. Use full indexed area if empty.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory (else use regular topdirs):</source>
|
||||
<translation>Корневой каталог (или использовать стандартный topdirs):</translation>
|
||||
<translation type="vanished">Корневой каталог (или использовать стандартный topdirs):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+14"/>
|
||||
@@ -3609,7 +3638,7 @@ This should give higher precedence to the results where the search terms appear
|
||||
<translation type="obsolete">Просмотр</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../confgui/confgui.cpp" line="+258"/>
|
||||
<location filename="../confgui/confgui.cpp" line="+267"/>
|
||||
<source>Choose</source>
|
||||
<translation>Выбрать</translation>
|
||||
</message>
|
||||
@@ -3617,7 +3646,7 @@ This should give higher precedence to the results where the search terms appear
|
||||
<context>
|
||||
<name>confgui::ConfParamSLW</name>
|
||||
<message>
|
||||
<location line="+54"/>
|
||||
<location line="+59"/>
|
||||
<source>+</source>
|
||||
<translation>+</translation>
|
||||
</message>
|
||||
|
||||
+32
-12
@@ -1204,14 +1204,6 @@ Please check the desktop file</source>
|
||||
<source>Content has been indexed for these MIME types:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors/%d total files) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Empty or non-existant paths in configuration file. Click Ok to start indexing anyway (absent data will not be purged from the index):
|
||||
</source>
|
||||
@@ -1241,6 +1233,34 @@ Please check the desktop file</source>
|
||||
<source>Click Cancel to return to the list.<br>Click Ignore to show the preview anyway (and remember for this session). There is a risk of showing the wrong entry.<br/></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>documents</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>document</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>errors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total files)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RclMainBase</name>
|
||||
@@ -2078,10 +2098,6 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Browse</source>
|
||||
<translation type="unfinished">Gözat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory (else use regular topdirs):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Leave empty to select all files. You can use multiple space-separated shell-type patterns.<br>Patterns with embedded spaces should be quoted with double quotes.<br>Can only be used if the start target is set.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -2098,6 +2114,10 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Retry previously failed files.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory. Must be part of the indexed tree. Use full indexed area if empty.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SpellBase</name>
|
||||
|
||||
+32
-12
@@ -1221,14 +1221,6 @@ Please check the desktop file</source>
|
||||
<source>Content has been indexed for these MIME types:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors/%d total files) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Empty or non-existant paths in configuration file. Click Ok to start indexing anyway (absent data will not be purged from the index):
|
||||
</source>
|
||||
@@ -1258,6 +1250,34 @@ Please check the desktop file</source>
|
||||
<source>Click Cancel to return to the list.<br>Click Ignore to show the preview anyway (and remember for this session). There is a risk of showing the wrong entry.<br/></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>documents</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>document</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>errors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total files)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RclMainBase</name>
|
||||
@@ -2107,10 +2127,6 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Browse</source>
|
||||
<translation type="unfinished">Перегляд</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory (else use regular topdirs):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Leave empty to select all files. You can use multiple space-separated shell-type patterns.<br>Patterns with embedded spaces should be quoted with double quotes.<br>Can only be used if the start target is set.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -2127,6 +2143,10 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Retry previously failed files.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory. Must be part of the indexed tree. Use full indexed area if empty.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SpellBase</name>
|
||||
|
||||
+32
-12
@@ -1144,14 +1144,6 @@ Please check the desktop file</source>
|
||||
<source>Content has been indexed for these MIME types:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors/%d total files) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Empty or non-existant paths in configuration file. Click Ok to start indexing anyway (absent data will not be purged from the index):
|
||||
</source>
|
||||
@@ -1181,6 +1173,34 @@ Please check the desktop file</source>
|
||||
<source>Click Cancel to return to the list.<br>Click Ignore to show the preview anyway (and remember for this session). There is a risk of showing the wrong entry.<br/></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>documents</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>document</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>errors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total files)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RclMainBase</name>
|
||||
@@ -1842,10 +1862,6 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Browse</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory (else use regular topdirs):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Leave empty to select all files. You can use multiple space-separated shell-type patterns.<br>Patterns with embedded spaces should be quoted with double quotes.<br>Can only be used if the start target is set.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -1862,6 +1878,10 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Retry previously failed files.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory. Must be part of the indexed tree. Use full indexed area if empty.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SpellBase</name>
|
||||
|
||||
+32
-12
@@ -1317,14 +1317,6 @@ Please check the desktop file</source>
|
||||
<source>Content has been indexed for these MIME types:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors/%d total files) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Empty or non-existant paths in configuration file. Click Ok to start indexing anyway (absent data will not be purged from the index):
|
||||
</source>
|
||||
@@ -1354,6 +1346,34 @@ Please check the desktop file</source>
|
||||
<source>Click Cancel to return to the list.<br>Click Ignore to show the preview anyway (and remember for this session). There is a risk of showing the wrong entry.<br/></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>documents</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>document</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>errors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total files)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RclMainBase</name>
|
||||
@@ -2250,10 +2270,6 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Browse</source>
|
||||
<translation type="unfinished">浏览</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory (else use regular topdirs):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Leave empty to select all files. You can use multiple space-separated shell-type patterns.<br>Patterns with embedded spaces should be quoted with double quotes.<br>Can only be used if the start target is set.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -2270,6 +2286,10 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Retry previously failed files.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory. Must be part of the indexed tree. Use full indexed area if empty.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SpellBase</name>
|
||||
|
||||
@@ -1330,14 +1330,6 @@ Please check the desktop file</source>
|
||||
<source>Content has been indexed for these MIME types:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors/%d total files) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(%d documents/%d files/%d errors) </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Empty or non-existant paths in configuration file. Click Ok to start indexing anyway (absent data will not be purged from the index):
|
||||
</source>
|
||||
@@ -1367,6 +1359,34 @@ Please check the desktop file</source>
|
||||
<source>Click Cancel to return to the list.<br>Click Ignore to show the preview anyway (and remember for this session). There is a risk of showing the wrong entry.<br/></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>documents</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>document</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>errors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>total files)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RclMainBase</name>
|
||||
@@ -2283,10 +2303,6 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Browse</source>
|
||||
<translation type="unfinished">浏览</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory (else use regular topdirs):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Leave empty to select all files. You can use multiple space-separated shell-type patterns.<br>Patterns with embedded spaces should be quoted with double quotes.<br>Can only be used if the start target is set.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -2303,6 +2319,10 @@ Use <b>Show Query</b> link when in doubt about result and see manual
|
||||
<source>Retry previously failed files.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start directory. Must be part of the indexed tree. Use full indexed area if empty.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SpellBase</name>
|
||||
|
||||
+120
-116
@@ -55,20 +55,22 @@ void RclMain::updateIdxStatus()
|
||||
}
|
||||
msg += phs + " ";
|
||||
if (status.phase == DbIxStatus::DBIXS_FILES) {
|
||||
char cnts[100];
|
||||
if (status.dbtotdocs > 0) {
|
||||
string format =
|
||||
qs2utf8s(tr("(%d documents/%d files/%d errors/%d total files) "));
|
||||
sprintf(cnts, format.c_str(),
|
||||
status.docsdone, status.filesdone, status.fileerrors,
|
||||
status.totfiles);
|
||||
QString sdocs = status.docsdone > 1 ?tr("documents") : tr("document");
|
||||
QString sfiles = status.filesdone > 1 ? tr("files") : tr("file");
|
||||
QString serrors = status.fileerrors > 1 ? tr("errors") : tr("error");
|
||||
QString stats;
|
||||
if (status.dbtotdocs > 0) {
|
||||
stats = QString("(%1 ") + sdocs + "/%2 " + sfiles +
|
||||
"/%3 " + serrors + "/%4 " + tr("total files)");
|
||||
stats = stats.arg(status.docsdone).arg(status.filesdone).
|
||||
arg(status.fileerrors).arg(status.totfiles);
|
||||
} else {
|
||||
string format =
|
||||
qs2utf8s(tr("(%d documents/%d files/%d errors) "));
|
||||
sprintf(cnts, format.c_str(),
|
||||
status.docsdone, status.filesdone, status.fileerrors);
|
||||
stats = QString("(%1 ") + sdocs + "/%2 " + sfiles +
|
||||
"/%3 " + serrors + ") ";
|
||||
stats = stats.arg(status.docsdone).arg(status.filesdone).
|
||||
arg(status.fileerrors);
|
||||
}
|
||||
msg += QString::fromUtf8(cnts) + " ";
|
||||
msg += stats + " ";
|
||||
}
|
||||
string mf;int ecnt = 0;
|
||||
string fcharset = theconfig->getDefCharset(true);
|
||||
@@ -95,10 +97,10 @@ void RclMain::periodic100()
|
||||
}
|
||||
|
||||
if (m_idxproc) {
|
||||
// An indexing process was launched. If its' done, see status.
|
||||
int status;
|
||||
bool exited = m_idxproc->maybereap(&status);
|
||||
if (exited) {
|
||||
// An indexing process was launched. If its' done, see status.
|
||||
int status;
|
||||
bool exited = m_idxproc->maybereap(&status);
|
||||
if (exited) {
|
||||
QString reasonmsg;
|
||||
if (m_idxreasontmp && m_idxreasontmp->ok()) {
|
||||
string reasons;
|
||||
@@ -115,8 +117,8 @@ void RclMain::periodic100()
|
||||
}
|
||||
}
|
||||
}
|
||||
deleteZ(m_idxproc);
|
||||
if (status) {
|
||||
deleteZ(m_idxproc);
|
||||
if (status) {
|
||||
if (m_idxkilled) {
|
||||
QMessageBox::warning(0, "Recoll",
|
||||
tr("Indexing interrupted"));
|
||||
@@ -129,58 +131,58 @@ void RclMain::periodic100()
|
||||
}
|
||||
QMessageBox::warning(0, "Recoll", msg);
|
||||
}
|
||||
} else {
|
||||
// On the first run, show missing helpers. We only do this once
|
||||
if (m_firstIndexing)
|
||||
showMissingHelpers();
|
||||
} else {
|
||||
// On the first run, show missing helpers. We only do this once
|
||||
if (m_firstIndexing)
|
||||
showMissingHelpers();
|
||||
if (!reasonmsg.isEmpty()) {
|
||||
QString msg = tr("Non-fatal indexing message: ");
|
||||
msg.append(reasonmsg);
|
||||
QMessageBox::warning(0, "Recoll", msg);
|
||||
}
|
||||
}
|
||||
string reason;
|
||||
maybeOpenDb(reason, 1);
|
||||
} else {
|
||||
// update/show status even if the status file did not
|
||||
// change (else the status line goes blank during
|
||||
// lengthy operations).
|
||||
updateIdxStatus();
|
||||
}
|
||||
}
|
||||
string reason;
|
||||
maybeOpenDb(reason, 1);
|
||||
} else {
|
||||
// update/show status even if the status file did not
|
||||
// change (else the status line goes blank during
|
||||
// lengthy operations).
|
||||
updateIdxStatus();
|
||||
}
|
||||
}
|
||||
// Update the "start/stop indexing" menu entry, can't be done from
|
||||
// the "start/stop indexing" slot itself
|
||||
IndexerState prevstate = m_indexerState;
|
||||
if (m_idxproc) {
|
||||
m_indexerState = IXST_RUNNINGMINE;
|
||||
fileToggleIndexingAction->setText(tr("Stop &Indexing"));
|
||||
fileToggleIndexingAction->setEnabled(true);
|
||||
fileRebuildIndexAction->setEnabled(false);
|
||||
m_indexerState = IXST_RUNNINGMINE;
|
||||
fileToggleIndexingAction->setText(tr("Stop &Indexing"));
|
||||
fileToggleIndexingAction->setEnabled(true);
|
||||
fileRebuildIndexAction->setEnabled(false);
|
||||
actionSpecial_Indexing->setEnabled(false);
|
||||
periodictimer->setInterval(200);
|
||||
periodictimer->setInterval(200);
|
||||
} else {
|
||||
Pidfile pidfile(theconfig->getPidfile());
|
||||
Pidfile pidfile(theconfig->getPidfile());
|
||||
pid_t pid = pidfile.open();
|
||||
fileBumpIndexingAction->setEnabled(false);
|
||||
if (pid == getpid()) {
|
||||
// Locked by me
|
||||
m_indexerState = IXST_NOTRUNNING;
|
||||
fileToggleIndexingAction->setText(tr("Index locked"));
|
||||
fileToggleIndexingAction->setEnabled(false);
|
||||
fileRebuildIndexAction->setEnabled(false);
|
||||
m_indexerState = IXST_NOTRUNNING;
|
||||
fileToggleIndexingAction->setText(tr("Index locked"));
|
||||
fileToggleIndexingAction->setEnabled(false);
|
||||
fileRebuildIndexAction->setEnabled(false);
|
||||
actionSpecial_Indexing->setEnabled(false);
|
||||
periodictimer->setInterval(1000);
|
||||
periodictimer->setInterval(1000);
|
||||
} else if (pid == 0) {
|
||||
m_indexerState = IXST_NOTRUNNING;
|
||||
fileToggleIndexingAction->setText(tr("Update &Index"));
|
||||
fileToggleIndexingAction->setEnabled(true);
|
||||
fileRebuildIndexAction->setEnabled(true);
|
||||
m_indexerState = IXST_NOTRUNNING;
|
||||
fileToggleIndexingAction->setText(tr("Update &Index"));
|
||||
fileToggleIndexingAction->setEnabled(true);
|
||||
fileRebuildIndexAction->setEnabled(true);
|
||||
actionSpecial_Indexing->setEnabled(true);
|
||||
periodictimer->setInterval(1000);
|
||||
} else {
|
||||
// Real time or externally started batch indexer running
|
||||
m_indexerState = IXST_RUNNINGNOTMINE;
|
||||
fileToggleIndexingAction->setText(tr("Stop &Indexing"));
|
||||
periodictimer->setInterval(1000);
|
||||
} else {
|
||||
// Real time or externally started batch indexer running
|
||||
m_indexerState = IXST_RUNNINGNOTMINE;
|
||||
fileToggleIndexingAction->setText(tr("Stop &Indexing"));
|
||||
DbIxStatus status;
|
||||
readIdxStatus(theconfig, status);
|
||||
if (status.hasmonitor) {
|
||||
@@ -188,11 +190,11 @@ void RclMain::periodic100()
|
||||
// incremental pass
|
||||
fileBumpIndexingAction->setEnabled(true);
|
||||
}
|
||||
fileToggleIndexingAction->setEnabled(true);
|
||||
fileRebuildIndexAction->setEnabled(false);
|
||||
fileToggleIndexingAction->setEnabled(true);
|
||||
fileRebuildIndexAction->setEnabled(false);
|
||||
actionSpecial_Indexing->setEnabled(false);
|
||||
periodictimer->setInterval(200);
|
||||
}
|
||||
periodictimer->setInterval(200);
|
||||
}
|
||||
}
|
||||
|
||||
if ((prevstate == IXST_RUNNINGMINE || prevstate == IXST_RUNNINGNOTMINE)
|
||||
@@ -202,22 +204,22 @@ void RclMain::periodic100()
|
||||
|
||||
// Possibly cleanup the dead viewers
|
||||
for (vector<ExecCmd*>::iterator it = m_viewers.begin();
|
||||
it != m_viewers.end(); it++) {
|
||||
int status;
|
||||
if ((*it)->maybereap(&status)) {
|
||||
deleteZ(*it);
|
||||
}
|
||||
it != m_viewers.end(); it++) {
|
||||
int status;
|
||||
if ((*it)->maybereap(&status)) {
|
||||
deleteZ(*it);
|
||||
}
|
||||
}
|
||||
vector<ExecCmd*> v;
|
||||
for (vector<ExecCmd*>::iterator it = m_viewers.begin();
|
||||
it != m_viewers.end(); it++) {
|
||||
if (*it)
|
||||
v.push_back(*it);
|
||||
it != m_viewers.end(); it++) {
|
||||
if (*it)
|
||||
v.push_back(*it);
|
||||
}
|
||||
m_viewers = v;
|
||||
|
||||
if (recollNeedsExit)
|
||||
fileExit();
|
||||
fileExit();
|
||||
}
|
||||
|
||||
bool RclMain::checkIdxPaths()
|
||||
@@ -246,43 +248,43 @@ void RclMain::toggleIndexing()
|
||||
{
|
||||
switch (m_indexerState) {
|
||||
case IXST_RUNNINGMINE:
|
||||
if (m_idxproc) {
|
||||
// Indexing was in progress, request stop. Let the periodic
|
||||
// routine check for the results.
|
||||
if (m_idxproc) {
|
||||
// Indexing was in progress, request stop. Let the periodic
|
||||
// routine check for the results.
|
||||
if (m_idxproc->requestChildExit()) {
|
||||
m_idxkilled = true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case IXST_RUNNINGNOTMINE:
|
||||
{
|
||||
int rep =
|
||||
QMessageBox::information(
|
||||
int rep =
|
||||
QMessageBox::information(
|
||||
0, tr("Warning"),
|
||||
tr("The current indexing process was not started from this "
|
||||
"interface. Click Ok to kill it "
|
||||
"anyway, or Cancel to leave it alone"),
|
||||
QMessageBox::Ok, QMessageBox::Cancel, QMessageBox::NoButton);
|
||||
if (rep == QMessageBox::Ok) {
|
||||
if (rep == QMessageBox::Ok) {
|
||||
#ifdef _WIN32
|
||||
// No simple way to signal the process. Use the stop file
|
||||
::close(::creat(theconfig->getIdxStopFile().c_str(), 0666));
|
||||
#else
|
||||
Pidfile pidfile(theconfig->getPidfile());
|
||||
pid_t pid = pidfile.open();
|
||||
if (pid > 0)
|
||||
kill(pid, SIGTERM);
|
||||
Pidfile pidfile(theconfig->getPidfile());
|
||||
pid_t pid = pidfile.open();
|
||||
if (pid > 0)
|
||||
kill(pid, SIGTERM);
|
||||
#endif // !_WIN32
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case IXST_NOTRUNNING:
|
||||
{
|
||||
// Could also mean that no helpers are missing, but then we
|
||||
// won't try to show a message anyway (which is what
|
||||
// firstIndexing is used for)
|
||||
string mhd;
|
||||
m_firstIndexing = !theconfig->getMissingHelperDesc(mhd);
|
||||
// Could also mean that no helpers are missing, but then we
|
||||
// won't try to show a message anyway (which is what
|
||||
// firstIndexing is used for)
|
||||
string mhd;
|
||||
m_firstIndexing = !theconfig->getMissingHelperDesc(mhd);
|
||||
|
||||
if (!checkIdxPaths()) {
|
||||
return;
|
||||
@@ -292,8 +294,8 @@ void RclMain::toggleIndexing()
|
||||
args.push_back("-R");
|
||||
args.push_back(m_idxreasontmp->filename());
|
||||
}
|
||||
m_idxproc = new ExecCmd;
|
||||
m_idxproc->startExec("recollindex", args, false, false);
|
||||
m_idxproc = new ExecCmd;
|
||||
m_idxproc->startExec("recollindex", args, false, false);
|
||||
}
|
||||
break;
|
||||
case IXST_UNKNOWN:
|
||||
@@ -347,21 +349,21 @@ void RclMain::rebuildIndex()
|
||||
case IXST_UNKNOWN:
|
||||
case IXST_RUNNINGMINE:
|
||||
case IXST_RUNNINGNOTMINE:
|
||||
return; //?? Should not have been called
|
||||
return; //?? Should not have been called
|
||||
case IXST_NOTRUNNING:
|
||||
{
|
||||
if (m_idxproc) {
|
||||
LOGERR("RclMain::rebuildIndex: current indexer exec not null\n" );
|
||||
return;
|
||||
}
|
||||
int rep =
|
||||
QMessageBox::warning(0, tr("Erasing index"),
|
||||
tr("Reset the index and start "
|
||||
"from scratch ?"),
|
||||
QMessageBox::Ok,
|
||||
QMessageBox::Cancel,
|
||||
QMessageBox::NoButton);
|
||||
if (rep == QMessageBox::Ok) {
|
||||
int rep =
|
||||
QMessageBox::warning(0, tr("Erasing index"),
|
||||
tr("Reset the index and start "
|
||||
"from scratch ?"),
|
||||
QMessageBox::Ok,
|
||||
QMessageBox::Cancel,
|
||||
QMessageBox::NoButton);
|
||||
if (rep == QMessageBox::Ok) {
|
||||
#ifdef _WIN32
|
||||
// Under windows, it is necessary to close the db here,
|
||||
// else Xapian won't be able to do what it wants with the
|
||||
@@ -382,24 +384,24 @@ void RclMain::rebuildIndex()
|
||||
rcldb->close();
|
||||
}
|
||||
#endif // _WIN32
|
||||
// Could also mean that no helpers are missing, but then we
|
||||
// won't try to show a message anyway (which is what
|
||||
// firstIndexing is used for)
|
||||
string mhd;
|
||||
m_firstIndexing = !theconfig->getMissingHelperDesc(mhd);
|
||||
// Could also mean that no helpers are missing, but then we
|
||||
// won't try to show a message anyway (which is what
|
||||
// firstIndexing is used for)
|
||||
string mhd;
|
||||
m_firstIndexing = !theconfig->getMissingHelperDesc(mhd);
|
||||
|
||||
if (!checkIdxPaths()) {
|
||||
return;
|
||||
}
|
||||
|
||||
vector<string> args{"-c", theconfig->getConfDir(), "-z"};
|
||||
vector<string> args{"-c", theconfig->getConfDir(), "-z"};
|
||||
if (m_idxreasontmp && m_idxreasontmp->ok()) {
|
||||
args.push_back("-R");
|
||||
args.push_back(m_idxreasontmp->filename());
|
||||
}
|
||||
m_idxproc = new ExecCmd;
|
||||
m_idxproc->startExec("recollindex", args, false, false);
|
||||
}
|
||||
m_idxproc = new ExecCmd;
|
||||
m_idxproc->startExec("recollindex", args, false, false);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -467,7 +469,7 @@ void RclMain::specialIndex()
|
||||
case IXST_UNKNOWN:
|
||||
case IXST_RUNNINGMINE:
|
||||
case IXST_RUNNINGNOTMINE:
|
||||
return; //?? Should not have been called
|
||||
return; //?? Should not have been called
|
||||
case IXST_NOTRUNNING:
|
||||
default:
|
||||
break;
|
||||
@@ -495,6 +497,8 @@ void RclMain::specialIndex()
|
||||
args.push_back("-Z");
|
||||
} else {
|
||||
args.push_back("-e");
|
||||
// -e also needs -i, else we don't reindex, just erase
|
||||
args.push_back("-i");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -529,28 +533,28 @@ void RclMain::specialIndex()
|
||||
void RclMain::updateIdxForDocs(vector<Rcl::Doc>& docs)
|
||||
{
|
||||
if (m_idxproc) {
|
||||
QMessageBox::warning(0, tr("Warning"),
|
||||
tr("Can't update index: indexer running"),
|
||||
QMessageBox::Ok, QMessageBox::NoButton);
|
||||
return;
|
||||
QMessageBox::warning(0, tr("Warning"),
|
||||
tr("Can't update index: indexer running"),
|
||||
QMessageBox::Ok, QMessageBox::NoButton);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
vector<string> paths;
|
||||
if (Rcl::docsToPaths(docs, paths)) {
|
||||
vector<string> args{"-c", theconfig->getConfDir(), "-i",};
|
||||
vector<string> args{"-c", theconfig->getConfDir(), "-i",};
|
||||
if (m_idxreasontmp && m_idxreasontmp->ok()) {
|
||||
args.push_back("-R");
|
||||
args.push_back(m_idxreasontmp->filename());
|
||||
}
|
||||
args.insert(args.end(), paths.begin(), paths.end());
|
||||
m_idxproc = new ExecCmd;
|
||||
m_idxproc->startExec("recollindex", args, false, false);
|
||||
args.insert(args.end(), paths.begin(), paths.end());
|
||||
m_idxproc = new ExecCmd;
|
||||
m_idxproc->startExec("recollindex", args, false, false);
|
||||
// Call periodic100 to update the menu entries states
|
||||
periodic100();
|
||||
} else {
|
||||
QMessageBox::warning(0, tr("Warning"),
|
||||
tr("Can't update index: internal error"),
|
||||
QMessageBox::Ok, QMessageBox::NoButton);
|
||||
return;
|
||||
QMessageBox::warning(0, tr("Warning"),
|
||||
tr("Can't update index: internal error"),
|
||||
QMessageBox::Ok, QMessageBox::NoButton);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>413</width>
|
||||
<height>191</height>
|
||||
<width>610</width>
|
||||
<height>192</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -70,7 +70,7 @@
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="textLabel1">
|
||||
<property name="text">
|
||||
<string>Start directory (else use regular topdirs):</string>
|
||||
<string>Start directory. Must be part of the indexed tree. Use full indexed area if empty.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>false</bool>
|
||||
|
||||
@@ -90,9 +90,6 @@
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Enter search terms here.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
|
||||
Reference in New Issue
Block a user