This commit is contained in:
Jean-Francois Dockes
2011-04-29 18:10:11 +02:00
14 changed files with 232 additions and 171 deletions
+7 -3
View File
@@ -72,7 +72,7 @@ void startManual(const string& helpindex)
mainWindow->startManual(helpindex);
}
bool maybeOpenDb(string &reason, bool force)
bool maybeOpenDb(string &reason, bool force, bool *maindberror)
{
if (!rcldb) {
reason = "Internal error: db not created";
@@ -87,9 +87,13 @@ bool maybeOpenDb(string &reason, bool force)
LOGDEB(("main: adding [%s]\n", it->c_str()));
rcldb->addQueryDb(*it);
}
if (!rcldb->isopen() && !rcldb->open(Rcl::Db::DbRO)) {
Rcl::Db::OpenError error;
if (!rcldb->isopen() && !rcldb->open(Rcl::Db::DbRO, &error)) {
reason = "Could not open database in " +
theconfig->getDbDir() + " wait for indexing to complete?";
if (maindberror) {
*maindberror = (error == Rcl::Db::DbOpenMainDb) ? true : false;
}
return false;
}
rcldb->setAbstractParams(-1, prefs.syntAbsLen, prefs.syntAbsCtx);
@@ -114,7 +118,7 @@ static void recollCleanup()
LOGDEB2(("recollCleanup: closing database\n"));
deleteZ(rcldb);
deleteZ(theconfig);
deleteZ(thestableconfig);
// deleteZ(thestableconfig);
#ifdef RCL_USE_ASPELL
deleteZ(aspell);
#endif
+22 -16
View File
@@ -345,25 +345,31 @@ void RclMain::initDbOpen()
bool needindexconfig = false;
bool nodb = false;
string reason;
if (!maybeOpenDb(reason)) {
bool maindberror;
if (!maybeOpenDb(reason, true, &maindberror)) {
nodb = true;
switch (QMessageBox::
question
(this, "Recoll",
qApp->translate("Main", "Could not open database in ") +
QString::fromLocal8Bit(theconfig->getDbDir().c_str()) +
qApp->translate("Main",
".\n"
"Click Cancel if you want to edit the configuration file before indexing starts, or Ok to let it proceed."),
"Ok", "Cancel", 0, 0)) {
if (maindberror) {
switch (QMessageBox::
question
(this, "Recoll",
qApp->translate("Main", "Could not open database in ") +
QString::fromLocal8Bit(theconfig->getDbDir().c_str()) +
qApp->translate("Main",
".\n"
"Click Cancel if you want to edit the configuration file before indexing starts, or Ok to let it proceed."),
"Ok", "Cancel", 0, 0)) {
case 0: // Ok: indexing is going to start.
start_indexing(true);
break;
case 0: // Ok: indexing is going to start.
start_indexing(true);
break;
case 1: // Cancel
needindexconfig = true;
break;
case 1: // Cancel
needindexconfig = true;
break;
}
} else {
QMessageBox::warning(0, "Recoll",
tr("Could not open external index. Db not open. Check external indexes list."));
}
}
+2 -1
View File
@@ -26,7 +26,8 @@
// Misc declarations in need of sharing between the UI files
// Open the database if needed. We now force a close/open by default
extern bool maybeOpenDb(std::string &reason, bool force = true);
extern bool maybeOpenDb(std::string &reason, bool force = true,
bool *maindberror = 0);
/** Retrieve configured stemming languages */
bool getStemLangs(list<string>& langs);