added GUI interface to edit the path translations
This commit is contained in:
parent
6a4a385657
commit
6c41ff55d6
@ -218,7 +218,7 @@ RclConfig::RclConfig(const string *argcnf)
|
|||||||
if (!readFieldsConfig(cnferrloc))
|
if (!readFieldsConfig(cnferrloc))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_ptrans = new ConfSimple(path_cat(m_confdir, "ptrans").c_str(), 1);
|
m_ptrans = new ConfSimple(path_cat(m_confdir, "ptrans").c_str());
|
||||||
|
|
||||||
m_ok = true;
|
m_ok = true;
|
||||||
setKeyDir(cstr_null);
|
setKeyDir(cstr_null);
|
||||||
|
|||||||
@ -152,7 +152,10 @@ class RclConfig {
|
|||||||
string getIdxStatusFile() const;
|
string getIdxStatusFile() const;
|
||||||
/** Do path translation according to the ptrans table */
|
/** Do path translation according to the ptrans table */
|
||||||
void urlrewrite(const string& dbdir, string& url) const;
|
void urlrewrite(const string& dbdir, string& url) const;
|
||||||
|
ConfSimple *getPTrans()
|
||||||
|
{
|
||||||
|
return m_ptrans;
|
||||||
|
}
|
||||||
/** Get Web Queue directory name */
|
/** Get Web Queue directory name */
|
||||||
string getWebQueueDir() const;
|
string getWebQueueDir() const;
|
||||||
|
|
||||||
|
|||||||
@ -1767,7 +1767,7 @@ fvwm
|
|||||||
|
|
||||||
<para>Index selection is performed in two phases. A set of all
|
<para>Index selection is performed in two phases. A set of all
|
||||||
usable indexes must first be defined, and then the subset of
|
usable indexes must first be defined, and then the subset of
|
||||||
indexes to be used for searching. Of course, these parameters
|
indexes to be used for searching. These parameters
|
||||||
are retained across program executions (there are kept
|
are retained across program executions (there are kept
|
||||||
separately for each &RCL; configuration). The set of all indexes
|
separately for each &RCL; configuration). The set of all indexes
|
||||||
is usually quite stable, while the active ones might typically
|
is usually quite stable, while the active ones might typically
|
||||||
@ -1778,6 +1778,11 @@ fvwm
|
|||||||
undesirable, you can set up your base configuration to index
|
undesirable, you can set up your base configuration to index
|
||||||
an empty directory.</para>
|
an empty directory.</para>
|
||||||
|
|
||||||
|
<para>When adding a new index to the set, you can select either
|
||||||
|
a &RCL; configuration directory, or directly a &XAP; index
|
||||||
|
directory. In the first case, the &XAP; index directory will
|
||||||
|
be obtained from the selected configuration.</para>
|
||||||
|
|
||||||
<para>As building the set of all indexes can be a little tedious
|
<para>As building the set of all indexes can be a little tedious
|
||||||
when done through the user interface, you can use the
|
when done through the user interface, you can use the
|
||||||
<envar>RECOLL_EXTRA_DBS</envar> environment
|
<envar>RECOLL_EXTRA_DBS</envar> environment
|
||||||
|
|||||||
@ -82,7 +82,6 @@ void ConfIndexW::acceptChanges()
|
|||||||
delete m_conf;
|
delete m_conf;
|
||||||
m_conf = 0;
|
m_conf = 0;
|
||||||
m_rclconf->updateMainConfig();
|
m_rclconf->updateMainConfig();
|
||||||
snapshotConfig();
|
|
||||||
|
|
||||||
hide();
|
hide();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -51,20 +51,12 @@
|
|||||||
#include "recollq.h"
|
#include "recollq.h"
|
||||||
|
|
||||||
extern RclConfig *theconfig;
|
extern RclConfig *theconfig;
|
||||||
RclConfig *thestableconfig;
|
|
||||||
PTMutexInit thestableconfiglock;
|
|
||||||
|
|
||||||
// To avoid writing settings if we stopped before reading them (else
|
// To avoid writing settings if we stopped before reading them (else
|
||||||
// some kinds of errors would reset the qt/recoll settings to
|
// some kinds of errors would reset the qt/recoll settings to
|
||||||
// defaults)
|
// defaults)
|
||||||
static bool havereadsettings;
|
static bool havereadsettings;
|
||||||
|
|
||||||
void snapshotConfig()
|
|
||||||
{
|
|
||||||
PTMutexLocker locker(thestableconfiglock);
|
|
||||||
thestableconfig = new RclConfig(*theconfig);
|
|
||||||
}
|
|
||||||
|
|
||||||
PTMutexInit thetempfileslock;
|
PTMutexInit thetempfileslock;
|
||||||
static vector<TempFile> o_tempfiles;
|
static vector<TempFile> o_tempfiles;
|
||||||
/* Keep an array of temporary files for deletion at exit. It happens that we
|
/* Keep an array of temporary files for deletion at exit. It happens that we
|
||||||
@ -156,7 +148,6 @@ static void recollCleanup()
|
|||||||
LOGDEB2(("recollCleanup: closing database\n"));
|
LOGDEB2(("recollCleanup: closing database\n"));
|
||||||
deleteZ(rcldb);
|
deleteZ(rcldb);
|
||||||
deleteZ(theconfig);
|
deleteZ(theconfig);
|
||||||
// deleteZ(thestableconfig);
|
|
||||||
|
|
||||||
PTMutexLocker locker(thetempfileslock);
|
PTMutexLocker locker(thetempfileslock);
|
||||||
o_tempfiles.clear();
|
o_tempfiles.clear();
|
||||||
@ -308,7 +299,6 @@ int main(int argc, char **argv)
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
// fprintf(stderr, "recollinit done\n");
|
// fprintf(stderr, "recollinit done\n");
|
||||||
snapshotConfig();
|
|
||||||
|
|
||||||
// Translations for Qt standard widgets
|
// Translations for Qt standard widgets
|
||||||
QString slang = QLocale::system().name().left(2);
|
QString slang = QLocale::system().name().left(2);
|
||||||
|
|||||||
142
src/qtgui/ptrans.ui
Normal file
142
src/qtgui/ptrans.ui
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>EditTransBase</class>
|
||||||
|
<widget class="QDialog" name="EditTransBase">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>649</width>
|
||||||
|
<height>362</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Path Translations</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="whatIdxLA">
|
||||||
|
<property name="text">
|
||||||
|
<string>Setting path translations for </string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QTableWidget" name="transTW">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Select one or several file types, then use the controls in the frame below to change how they are processed</string>
|
||||||
|
</property>
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
<property name="editTriggers">
|
||||||
|
<set>QAbstractItemView::NoEditTriggers</set>
|
||||||
|
</property>
|
||||||
|
<property name="selectionMode">
|
||||||
|
<enum>QAbstractItemView::ExtendedSelection</enum>
|
||||||
|
</property>
|
||||||
|
<property name="selectionBehavior">
|
||||||
|
<enum>QAbstractItemView::SelectRows</enum>
|
||||||
|
</property>
|
||||||
|
<property name="showGrid">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="sortingEnabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="columnCount">
|
||||||
|
<number>2</number>
|
||||||
|
</property>
|
||||||
|
<property name="allColumnsShowFocus" stdset="0">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="showSortIndicator" stdset="0">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<attribute name="horizontalHeaderDefaultSectionSize">
|
||||||
|
<number>300</number>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="horizontalHeaderMinimumSectionSize">
|
||||||
|
<number>20</number>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="horizontalHeaderShowSortIndicator" stdset="0">
|
||||||
|
<bool>false</bool>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="horizontalHeaderStretchLastSection">
|
||||||
|
<bool>true</bool>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="verticalHeaderVisible">
|
||||||
|
<bool>false</bool>
|
||||||
|
</attribute>
|
||||||
|
<column/>
|
||||||
|
<column/>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="addPB">
|
||||||
|
<property name="text">
|
||||||
|
<string>Add</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="delPB">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Delete</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="cancelPB">
|
||||||
|
<property name="text">
|
||||||
|
<string>Cancel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="savePB">
|
||||||
|
<property name="text">
|
||||||
|
<string>Save</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<layoutdefault spacing="6" margin="11"/>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
||||||
134
src/qtgui/ptrans_w.cpp
Normal file
134
src/qtgui/ptrans_w.cpp
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
/* Copyright (C) 2006 J.F.Dockes
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the
|
||||||
|
* Free Software Foundation, Inc.,
|
||||||
|
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <utility>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
#include <qpushbutton.h>
|
||||||
|
#include <qtimer.h>
|
||||||
|
|
||||||
|
#include <qlistwidget.h>
|
||||||
|
|
||||||
|
#include <qmessagebox.h>
|
||||||
|
#include <qinputdialog.h>
|
||||||
|
#include <qlayout.h>
|
||||||
|
|
||||||
|
#include "recoll.h"
|
||||||
|
#include "debuglog.h"
|
||||||
|
#include "guiutils.h"
|
||||||
|
#include "conftree.h"
|
||||||
|
|
||||||
|
#include "ptrans_w.h"
|
||||||
|
|
||||||
|
void EditTrans::init(const string& dbdir)
|
||||||
|
{
|
||||||
|
m_dbdir = path_canon(dbdir);
|
||||||
|
connect(transTW, SIGNAL(itemDoubleClicked(QTableWidgetItem *)),
|
||||||
|
this, SLOT(onItemDoubleClicked(QTableWidgetItem *)));
|
||||||
|
connect(cancelPB, SIGNAL(clicked()), this, SLOT(close()));
|
||||||
|
|
||||||
|
QString lab = whatIdxLA->text();
|
||||||
|
lab.append(QString::fromLocal8Bit(m_dbdir.c_str()));
|
||||||
|
whatIdxLA->setText(lab);
|
||||||
|
|
||||||
|
QStringList labels(tr("Source path"));
|
||||||
|
labels.push_back(tr("Local path"));
|
||||||
|
transTW->setHorizontalHeaderLabels(labels);
|
||||||
|
|
||||||
|
ConfSimple *conftrans = theconfig->getPTrans();
|
||||||
|
if (!conftrans)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int row = 0;
|
||||||
|
vector<string> opaths = conftrans->getNames(m_dbdir);
|
||||||
|
for (vector<string>::const_iterator it = opaths.begin();
|
||||||
|
it != opaths.end(); it++) {
|
||||||
|
transTW->setRowCount(row+1);
|
||||||
|
transTW->setItem(row, 0, new QTableWidgetItem(
|
||||||
|
QString::fromLocal8Bit(it->c_str())));
|
||||||
|
string npath;
|
||||||
|
conftrans->get(*it, npath, m_dbdir);
|
||||||
|
transTW->setItem(row, 1, new QTableWidgetItem(
|
||||||
|
QString::fromLocal8Bit(npath.c_str())));
|
||||||
|
row++;
|
||||||
|
}
|
||||||
|
|
||||||
|
resize(QSize(640, 300).expandedTo(minimumSizeHint()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void EditTrans::onItemDoubleClicked(QTableWidgetItem *item)
|
||||||
|
{
|
||||||
|
transTW->editItem(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
void EditTrans::on_savePB_clicked()
|
||||||
|
{
|
||||||
|
ConfSimple *conftrans = theconfig->getPTrans();
|
||||||
|
if (!conftrans) {
|
||||||
|
QMessageBox::warning(0, "Recoll", tr("Config error"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
conftrans->holdWrites(true);
|
||||||
|
conftrans->eraseKey(m_dbdir);
|
||||||
|
|
||||||
|
for (int row = 0; row < transTW->rowCount(); row++) {
|
||||||
|
QTableWidgetItem *item0 = transTW->item(row, 0);
|
||||||
|
string from = path_canon((const char *)item0->text().toLocal8Bit());
|
||||||
|
QTableWidgetItem *item1 = transTW->item(row, 1);
|
||||||
|
string to = path_canon((const char*)item1->text().toLocal8Bit());
|
||||||
|
conftrans->set(from, to, m_dbdir);
|
||||||
|
}
|
||||||
|
conftrans->holdWrites(false);
|
||||||
|
close();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EditTrans::on_addPB_clicked()
|
||||||
|
{
|
||||||
|
transTW->setRowCount(transTW->rowCount()+1);
|
||||||
|
int row = transTW->rowCount()-1;
|
||||||
|
transTW->setItem(row, 0, new QTableWidgetItem(tr("Original path")));
|
||||||
|
transTW->setItem(row, 1, new QTableWidgetItem(tr("Local path")));
|
||||||
|
transTW->editItem(transTW->item(row, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
void EditTrans::on_delPB_clicked()
|
||||||
|
{
|
||||||
|
QModelIndexList indexes = transTW->selectionModel()->selectedIndexes();
|
||||||
|
vector<int> rows;
|
||||||
|
for (int i = 0; i < indexes.size(); i++) {
|
||||||
|
rows.push_back(indexes.at(i).row());
|
||||||
|
}
|
||||||
|
sort(rows.begin(), rows.end());
|
||||||
|
rows.resize(unique(rows.begin(), rows.end()) - rows.begin());
|
||||||
|
for (int i = rows.size()-1; i >= 0; i--) {
|
||||||
|
transTW->removeRow(rows[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void EditTrans::on_transTW_itemSelectionChanged()
|
||||||
|
{
|
||||||
|
QModelIndexList indexes = transTW->selectionModel()->selectedIndexes();
|
||||||
|
if(indexes.size() < 1)
|
||||||
|
delPB->setEnabled(0);
|
||||||
|
else
|
||||||
|
delPB->setEnabled(1);
|
||||||
|
}
|
||||||
52
src/qtgui/ptrans_w.h
Normal file
52
src/qtgui/ptrans_w.h
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/* Copyright (C) 2006 J.F.Dockes
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the
|
||||||
|
* Free Software Foundation, Inc.,
|
||||||
|
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
#ifndef _PTRANS_W_H_INCLUDED_
|
||||||
|
#define _PTRANS_W_H_INCLUDED_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include <qvariant.h>
|
||||||
|
#include <qdialog.h>
|
||||||
|
|
||||||
|
#include "ui_ptrans.h"
|
||||||
|
|
||||||
|
class QTableWidgetItem;
|
||||||
|
|
||||||
|
class EditTrans : public QDialog, public Ui::EditTransBase
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
EditTrans(const std::string& dbdir, QWidget* parent = 0)
|
||||||
|
: QDialog(parent)
|
||||||
|
{
|
||||||
|
setupUi(this);
|
||||||
|
init(dbdir);
|
||||||
|
}
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
virtual void onItemDoubleClicked(QTableWidgetItem *);
|
||||||
|
virtual void on_savePB_clicked();
|
||||||
|
virtual void on_addPB_clicked();
|
||||||
|
virtual void on_delPB_clicked();
|
||||||
|
virtual void on_transTW_itemSelectionChanged();
|
||||||
|
private:
|
||||||
|
virtual void init(const std::string& dbdir);
|
||||||
|
std::string m_dbdir;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* _PTRANS_W_H_INCLUDED_ */
|
||||||
@ -35,9 +35,7 @@ extern bool maybeOpenDb(std::string &reason, bool force = true,
|
|||||||
bool getStemLangs(vector<string>& langs);
|
bool getStemLangs(vector<string>& langs);
|
||||||
|
|
||||||
extern RclConfig *theconfig;
|
extern RclConfig *theconfig;
|
||||||
extern RclConfig *thestableconfig;
|
|
||||||
extern PTMutexInit thestableconfiglock;
|
|
||||||
extern void snapshotConfig();
|
|
||||||
extern void rememberTempFile(TempFile);
|
extern void rememberTempFile(TempFile);
|
||||||
extern void forgetTempFile(string &fn);
|
extern void forgetTempFile(string &fn);
|
||||||
|
|
||||||
|
|||||||
@ -22,6 +22,7 @@ HEADERS += \
|
|||||||
idxsched.h \
|
idxsched.h \
|
||||||
listdialog.h \
|
listdialog.h \
|
||||||
preview_w.h \
|
preview_w.h \
|
||||||
|
ptrans_w.h \
|
||||||
rclhelp.h \
|
rclhelp.h \
|
||||||
rclmain_w.h \
|
rclmain_w.h \
|
||||||
reslist.h \
|
reslist.h \
|
||||||
@ -34,7 +35,6 @@ HEADERS += \
|
|||||||
uiprefs_w.h \
|
uiprefs_w.h \
|
||||||
viewaction_w.h \
|
viewaction_w.h \
|
||||||
|
|
||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
advsearch_w.cpp \
|
advsearch_w.cpp \
|
||||||
advshist.cpp \
|
advshist.cpp \
|
||||||
@ -44,6 +44,7 @@ SOURCES += \
|
|||||||
guiutils.cpp \
|
guiutils.cpp \
|
||||||
main.cpp \
|
main.cpp \
|
||||||
preview_w.cpp \
|
preview_w.cpp \
|
||||||
|
ptrans_w.cpp \
|
||||||
rclhelp.cpp \
|
rclhelp.cpp \
|
||||||
rclmain_w.cpp \
|
rclmain_w.cpp \
|
||||||
rclzg.cpp \
|
rclzg.cpp \
|
||||||
@ -65,6 +66,7 @@ FORMS = \
|
|||||||
firstidx.ui \
|
firstidx.ui \
|
||||||
idxsched.ui \
|
idxsched.ui \
|
||||||
listdialog.ui \
|
listdialog.ui \
|
||||||
|
ptrans.ui \
|
||||||
rclmain.ui \
|
rclmain.ui \
|
||||||
restable.ui \
|
restable.ui \
|
||||||
rtitool.ui \
|
rtitool.ui \
|
||||||
|
|||||||
@ -306,14 +306,14 @@ void SpellW::showStats()
|
|||||||
resTW->setItem(row++, 1, new QTableWidgetItem(
|
resTW->setItem(row++, 1, new QTableWidgetItem(
|
||||||
QString::number(res.maxdoclen)));
|
QString::number(res.maxdoclen)));
|
||||||
|
|
||||||
if (!thestableconfig)
|
if (!theconfig)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ExecCmd cmd;
|
ExecCmd cmd;
|
||||||
vector<string> args;
|
vector<string> args;
|
||||||
int status;
|
int status;
|
||||||
args.push_back("-sk");
|
args.push_back("-sk");
|
||||||
args.push_back(thestableconfig->getDbDir());
|
args.push_back(theconfig->getDbDir());
|
||||||
string output;
|
string output;
|
||||||
status = cmd.doexec("du", args, 0, &output);
|
status = cmd.doexec("du", args, 0, &output);
|
||||||
int dbkbytes = 0;
|
int dbkbytes = 0;
|
||||||
@ -327,14 +327,13 @@ void SpellW::showStats()
|
|||||||
QString::fromUtf8(
|
QString::fromUtf8(
|
||||||
displayableBytes(dbkbytes*1024).c_str())));
|
displayableBytes(dbkbytes*1024).c_str())));
|
||||||
|
|
||||||
vector<string> allmimetypes = thestableconfig->getAllMimeTypes();
|
vector<string> allmimetypes = theconfig->getAllMimeTypes();
|
||||||
multimap<int, string> mtbycnt;
|
multimap<int, string> mtbycnt;
|
||||||
for (vector<string>::const_iterator it = allmimetypes.begin();
|
for (vector<string>::const_iterator it = allmimetypes.begin();
|
||||||
it != allmimetypes.end(); it++) {
|
it != allmimetypes.end(); it++) {
|
||||||
string reason;
|
string reason;
|
||||||
string q = string("mime:") + *it;
|
string q = string("mime:") + *it;
|
||||||
Rcl::SearchData *sd =
|
Rcl::SearchData *sd = wasaStringToRcl(theconfig, "", q, reason);
|
||||||
wasaStringToRcl(thestableconfig, "", q, reason);
|
|
||||||
RefCntr<Rcl::SearchData> rq(sd);
|
RefCntr<Rcl::SearchData> rq(sd);
|
||||||
Rcl::Query query(rcldb);
|
Rcl::Query query(rcldb);
|
||||||
if (!query.setQuery(rq)) {
|
if (!query.setQuery(rq)) {
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>531</width>
|
<width>531</width>
|
||||||
<height>422</height>
|
<height>427</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
@ -22,7 +22,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QTabWidget" name="tabWidget">
|
<widget class="QTabWidget" name="tabWidget">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>0</number>
|
<number>3</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="tab">
|
<widget class="QWidget" name="tab">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
@ -133,39 +133,39 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label">
|
<widget class="QLabel" name="label">
|
||||||
<property name="text">
|
<property name="toolTip">
|
||||||
<string>Plain text to HTML line style</string>
|
<string>Lines in PRE text are not folded. Using BR loses some indentation. PRE + Wrap style may be what you want.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="text">
|
||||||
<string>Lines in PRE text are not folded. Using BR loses some indentation. PRE + Wrap style may be what you want.</string>
|
<string>Plain text to HTML line style</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QRadioButton" name="plainBRRB">
|
<widget class="QRadioButton" name="plainBRRB">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string><BR></string>
|
<string><BR></string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QRadioButton" name="plainPRERB">
|
<widget class="QRadioButton" name="plainPRERB">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string><PRE></string>
|
<string><PRE></string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QRadioButton" name="plainPREWRAPRB">
|
<widget class="QRadioButton" name="plainPREWRAPRB">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string><PRE> + wrap</string>
|
<string><PRE> + wrap</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="viewActionPB">
|
<widget class="QPushButton" name="viewActionPB">
|
||||||
@ -715,6 +715,13 @@ May be slow for big documents.</string>
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="ptransPB">
|
||||||
|
<property name="text">
|
||||||
|
<string>Paths translations</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@ -761,7 +768,7 @@ May be slow for big documents.</string>
|
|||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Click to add another index directory to the list</string>
|
<string>Click to add another index directory to the list. You can select either a Recoll configuration directory or a Xapian index.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Add index</string>
|
<string>Add index</string>
|
||||||
|
|||||||
@ -53,6 +53,7 @@
|
|||||||
#include "debuglog.h"
|
#include "debuglog.h"
|
||||||
#include "editdialog.h"
|
#include "editdialog.h"
|
||||||
#include "rclmain_w.h"
|
#include "rclmain_w.h"
|
||||||
|
#include "ptrans_w.h"
|
||||||
|
|
||||||
void UIPrefsDialog::init()
|
void UIPrefsDialog::init()
|
||||||
{
|
{
|
||||||
@ -64,6 +65,10 @@ void UIPrefsDialog::init()
|
|||||||
connect(stylesheetPB, SIGNAL(clicked()), this, SLOT(showStylesheetDialog()));
|
connect(stylesheetPB, SIGNAL(clicked()), this, SLOT(showStylesheetDialog()));
|
||||||
connect(resetSSPB, SIGNAL(clicked()), this, SLOT(resetStylesheet()));
|
connect(resetSSPB, SIGNAL(clicked()), this, SLOT(resetStylesheet()));
|
||||||
|
|
||||||
|
connect(idxLV, SIGNAL(itemSelectionChanged()),
|
||||||
|
this, SLOT(extradDbSelectChanged()));
|
||||||
|
connect(ptransPB, SIGNAL(clicked()),
|
||||||
|
this, SLOT(extraDbEditPtrans()));
|
||||||
connect(addExtraDbPB, SIGNAL(clicked()),
|
connect(addExtraDbPB, SIGNAL(clicked()),
|
||||||
this, SLOT(addExtraDbPB_clicked()));
|
this, SLOT(addExtraDbPB_clicked()));
|
||||||
connect(delExtraDbPB, SIGNAL(clicked()),
|
connect(delExtraDbPB, SIGNAL(clicked()),
|
||||||
@ -397,6 +402,33 @@ void UIPrefsDialog::showViewAction(const QString& mt)
|
|||||||
////////////////////////////////////////////
|
////////////////////////////////////////////
|
||||||
// External / extra search indexes setup
|
// External / extra search indexes setup
|
||||||
|
|
||||||
|
void UIPrefsDialog::extradDbSelectChanged()
|
||||||
|
{
|
||||||
|
if (idxLV->selectedItems().size() <= 1)
|
||||||
|
ptransPB->setEnabled(true);
|
||||||
|
else
|
||||||
|
ptransPB->setEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UIPrefsDialog::extraDbEditPtrans()
|
||||||
|
{
|
||||||
|
string dbdir;
|
||||||
|
if (idxLV->selectedItems().size() == 0) {
|
||||||
|
dbdir = theconfig->getDbDir();
|
||||||
|
} else if (idxLV->selectedItems().size() == 1) {
|
||||||
|
QListWidgetItem *item = idxLV->selectedItems()[0];
|
||||||
|
QString qd = item->data(Qt::DisplayRole).toString();
|
||||||
|
dbdir = (const char *)qd.toLocal8Bit();
|
||||||
|
} else {
|
||||||
|
QMessageBox::warning(
|
||||||
|
0, "Recoll", tr("At most one index should be selected"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
dbdir = path_canon(dbdir);
|
||||||
|
EditTrans *etrans = new EditTrans(dbdir, this);
|
||||||
|
etrans->show();
|
||||||
|
}
|
||||||
|
|
||||||
void UIPrefsDialog::togExtraDbPB_clicked()
|
void UIPrefsDialog::togExtraDbPB_clicked()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < idxLV->count(); i++) {
|
for (int i = 0; i < idxLV->count(); i++) {
|
||||||
|
|||||||
@ -59,6 +59,8 @@ public slots:
|
|||||||
virtual void setStemLang(const QString& lang);
|
virtual void setStemLang(const QString& lang);
|
||||||
virtual void editParaFormat();
|
virtual void editParaFormat();
|
||||||
virtual void editHeaderText();
|
virtual void editHeaderText();
|
||||||
|
virtual void extradDbSelectChanged();
|
||||||
|
virtual void extraDbEditPtrans();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void uiprefsDone();
|
void uiprefsDone();
|
||||||
|
|||||||
@ -322,9 +322,14 @@ media = \
|
|||||||
image/x-xcf \
|
image/x-xcf \
|
||||||
image/bmp \
|
image/bmp \
|
||||||
image/x-xpmi \
|
image/x-xpmi \
|
||||||
|
video/3gpp \
|
||||||
video/mp2p \
|
video/mp2p \
|
||||||
video/mp2t \
|
video/mp2t \
|
||||||
video/mp4 \
|
video/mp4 \
|
||||||
|
video/mpeg \
|
||||||
|
video/quicktime \
|
||||||
|
video/x-matroska \
|
||||||
|
video/x-ms-asf \
|
||||||
video/x-msvideo \
|
video/x-msvideo \
|
||||||
|
|
||||||
message = message/rfc822 \
|
message = message/rfc822 \
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user