restable col list and widths, splitter state, now use qsettings directly: not managed by the prefs dialog, so no sense in going through uiprefs
This commit is contained in:
parent
fc559bcba7
commit
dec9968bc5
@ -293,42 +293,6 @@ void rwSettings(bool writing)
|
|||||||
"/Recoll/prefs/query/asearchIgnFilTyps").toStringList();
|
"/Recoll/prefs/query/asearchIgnFilTyps").toStringList();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Field list for the restable
|
|
||||||
if (writing) {
|
|
||||||
settings.setValue("/Recoll/prefs/query/restableFields",
|
|
||||||
prefs.restableFields);
|
|
||||||
} else {
|
|
||||||
prefs.restableFields =
|
|
||||||
settings.value("/Recoll/prefs/query/restableFields").toStringList();
|
|
||||||
if (prefs.restableFields.empty()) {
|
|
||||||
prefs.restableFields.push_back("date");
|
|
||||||
prefs.restableFields.push_back("title");
|
|
||||||
prefs.restableFields.push_back("filename");
|
|
||||||
prefs.restableFields.push_back("author");
|
|
||||||
prefs.restableFields.push_back("url");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// restable col widths
|
|
||||||
QString rtcw;
|
|
||||||
if (writing) {
|
|
||||||
for (const auto& width : prefs.restableColWidths) {
|
|
||||||
char buf[20];
|
|
||||||
sprintf(buf, "%d ", width);
|
|
||||||
rtcw += QString::fromUtf8(buf);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
SETTING_RW(rtcw, "/Recoll/prefs/query/restableWidths", String,
|
|
||||||
"83 253 132 172 130 ");
|
|
||||||
if (!writing) {
|
|
||||||
prefs.restableColWidths.clear();
|
|
||||||
vector<string> widths;
|
|
||||||
stringToStrings(qs2utf8s(rtcw), widths);
|
|
||||||
for (const auto& width : widths) {
|
|
||||||
prefs.restableColWidths.push_back(atoi(width.c_str()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SETTING_RW(prefs.fileTypesByCats, "/Recoll/prefs/query/asearchFilTypByCat",
|
SETTING_RW(prefs.fileTypesByCats, "/Recoll/prefs/query/asearchFilTypByCat",
|
||||||
Bool, false);
|
Bool, false);
|
||||||
SETTING_RW(prefs.showTrayIcon, "/Recoll/prefs/showTrayIcon", Bool, false);
|
SETTING_RW(prefs.showTrayIcon, "/Recoll/prefs/showTrayIcon", Bool, false);
|
||||||
|
|||||||
@ -133,9 +133,6 @@ class PrefsPack {
|
|||||||
|
|
||||||
bool darkMode;
|
bool darkMode;
|
||||||
|
|
||||||
QStringList restableFields;
|
|
||||||
vector<int> restableColWidths;
|
|
||||||
|
|
||||||
// Remembered term match mode
|
// Remembered term match mode
|
||||||
int termMatchType{0};
|
int termMatchType{0};
|
||||||
|
|
||||||
|
|||||||
@ -70,6 +70,10 @@ static const int fsadjusttable = 1;
|
|||||||
|
|
||||||
static PlainToRichQtReslist g_hiliter;
|
static PlainToRichQtReslist g_hiliter;
|
||||||
|
|
||||||
|
static const char *settingskey_fieldlist="/Recoll/prefs/query/restableFields";
|
||||||
|
static const char *settingskey_fieldwiths="/Recoll/prefs/query/restableWidths";
|
||||||
|
static const char *settingskey_splittersizes="resTableSplitterSizes";
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Restable "pager". We use it to print details for a document in the
|
// Restable "pager". We use it to print details for a document in the
|
||||||
// detail area
|
// detail area
|
||||||
@ -567,7 +571,16 @@ void ResTable::setDefRowHeight()
|
|||||||
|
|
||||||
void ResTable::init()
|
void ResTable::init()
|
||||||
{
|
{
|
||||||
if (!(m_model = new RecollModel(prefs.restableFields, this)))
|
QSettings settings;
|
||||||
|
auto restableFields = settings.value(settingskey_fieldlist).toStringList();
|
||||||
|
if (restableFields.empty()) {
|
||||||
|
restableFields.push_back("date");
|
||||||
|
restableFields.push_back("title");
|
||||||
|
restableFields.push_back("filename");
|
||||||
|
restableFields.push_back("author");
|
||||||
|
restableFields.push_back("url");
|
||||||
|
}
|
||||||
|
if (!(m_model = new RecollModel(restableFields, this)))
|
||||||
return;
|
return;
|
||||||
tableView->setModel(m_model);
|
tableView->setModel(m_model);
|
||||||
tableView->setMouseTracking(true);
|
tableView->setMouseTracking(true);
|
||||||
@ -584,9 +597,16 @@ void ResTable::init()
|
|||||||
|
|
||||||
QHeaderView *header = tableView->horizontalHeader();
|
QHeaderView *header = tableView->horizontalHeader();
|
||||||
if (header) {
|
if (header) {
|
||||||
if (int(prefs.restableColWidths.size()) == header->count()) {
|
QString qw = settings.value(settingskey_fieldwiths).toString();
|
||||||
|
vector<string> vw;
|
||||||
|
stringToStrings(qs2utf8s(qw), vw);
|
||||||
|
vector<int> restableColWidths;
|
||||||
|
for (const auto& w : vw) {
|
||||||
|
restableColWidths.push_back(atoi(w.c_str()));
|
||||||
|
}
|
||||||
|
if (int(restableColWidths.size()) == header->count()) {
|
||||||
for (int i = 0; i < header->count(); i++) {
|
for (int i = 0; i < header->count(); i++) {
|
||||||
header->resizeSection(i, prefs.restableColWidths[i]);
|
header->resizeSection(i, restableColWidths[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
header->setSortIndicatorShown(true);
|
header->setSortIndicatorShown(true);
|
||||||
@ -617,16 +637,6 @@ void ResTable::init()
|
|||||||
m_pager = new ResTablePager(this);
|
m_pager = new ResTablePager(this);
|
||||||
m_pager->setHighLighter(&g_hiliter);
|
m_pager->setHighLighter(&g_hiliter);
|
||||||
|
|
||||||
QSettings settings;
|
|
||||||
QVariant saved = settings.value("resTableSplitterSizes");
|
|
||||||
if (saved != QVariant()) {
|
|
||||||
splitter->restoreState(saved.toByteArray());
|
|
||||||
} else {
|
|
||||||
QList<int> sizes;
|
|
||||||
sizes << 355 << 125;
|
|
||||||
splitter->setSizes(sizes);
|
|
||||||
}
|
|
||||||
|
|
||||||
deleteZ(textBrowser);
|
deleteZ(textBrowser);
|
||||||
m_detail = new ResTableDetailArea(this);
|
m_detail = new ResTableDetailArea(this);
|
||||||
m_detail->setReadOnly(true);
|
m_detail->setReadOnly(true);
|
||||||
@ -638,6 +648,14 @@ void ResTable::init()
|
|||||||
this, SLOT(linkWasClicked(const QUrl &)));
|
this, SLOT(linkWasClicked(const QUrl &)));
|
||||||
splitter->addWidget(m_detail);
|
splitter->addWidget(m_detail);
|
||||||
splitter->setOrientation(Qt::Vertical);
|
splitter->setOrientation(Qt::Vertical);
|
||||||
|
QVariant saved = settings.value(settingskey_splittersizes);
|
||||||
|
if (saved != QVariant()) {
|
||||||
|
splitter->restoreState(saved.toByteArray());
|
||||||
|
} else {
|
||||||
|
QList<int> sizes;
|
||||||
|
sizes << 355 << 125;
|
||||||
|
splitter->setSizes(sizes);
|
||||||
|
}
|
||||||
installEventFilter(this);
|
installEventFilter(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -719,7 +737,7 @@ void ResTable::saveColState()
|
|||||||
if (!m_ismainres)
|
if (!m_ismainres)
|
||||||
return;
|
return;
|
||||||
QSettings settings;
|
QSettings settings;
|
||||||
settings.setValue("resTableSplitterSizes", splitter->saveState());
|
settings.setValue(settingskey_splittersizes, splitter->saveState());
|
||||||
|
|
||||||
QHeaderView *header = tableView->horizontalHeader();
|
QHeaderView *header = tableView->horizontalHeader();
|
||||||
const vector<string>& vf = m_model->getFields();
|
const vector<string>& vf = m_model->getFields();
|
||||||
@ -731,18 +749,18 @@ void ResTable::saveColState()
|
|||||||
// Remember the current column order. Walk in visual order and
|
// Remember the current column order. Walk in visual order and
|
||||||
// create new list
|
// create new list
|
||||||
QStringList newfields;
|
QStringList newfields;
|
||||||
vector<int> newwidths;
|
QString newwidths;
|
||||||
for (int vi = 0; vi < header->count(); vi++) {
|
for (int vi = 0; vi < header->count(); vi++) {
|
||||||
int li = header->logicalIndex(vi);
|
int li = header->logicalIndex(vi);
|
||||||
if (li < 0 || li >= int(vf.size())) {
|
if (li < 0 || li >= int(vf.size())) {
|
||||||
LOGERR("saveColState: logical index beyond list size!\n");
|
LOGERR("saveColState: logical index beyond list size!\n");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
newfields.push_back(QString::fromUtf8(vf[li].c_str()));
|
newfields.push_back(u8s2qs(vf[li]));
|
||||||
newwidths.push_back(header->sectionSize(li));
|
newwidths += QString().setNum(header->sectionSize(li)) + QString(" ");
|
||||||
}
|
}
|
||||||
prefs.restableFields = newfields;
|
settings.setValue(settingskey_fieldlist, newfields);
|
||||||
prefs.restableColWidths = newwidths;
|
settings.setValue(settingskey_fieldwiths, newwidths);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ResTable::onTableView_currentChanged(const QModelIndex& index)
|
void ResTable::onTableView_currentChanged(const QModelIndex& index)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user