diff --git a/src/qtgui/confgui/confguiindex.cpp b/src/qtgui/confgui/confguiindex.cpp index 3875608d..e14a439a 100644 --- a/src/qtgui/confgui/confguiindex.cpp +++ b/src/qtgui/confgui/confguiindex.cpp @@ -1,5 +1,5 @@ #ifndef lint -static char rcsid[] = "@(#$Id: confguiindex.cpp,v 1.9 2007-10-25 15:51:06 dockes Exp $ (C) 2007 J.F.Dockes"; +static char rcsid[] = "@(#$Id: confguiindex.cpp,v 1.10 2007-11-21 14:15:48 dockes Exp $ (C) 2007 J.F.Dockes"; #endif #include @@ -50,6 +50,8 @@ static char rcsid[] = "@(#$Id: confguiindex.cpp,v 1.9 2007-10-25 15:51:06 dockes using std::list; #include "confgui.h" +#include "recoll.h" +#include "idxthread.h" #include "confguiindex.h" #include "smallut.h" #include "debuglog.h" @@ -94,6 +96,10 @@ void ConfIndexW::acceptChanges() m_rclconf->updateMainConfig(); QTimer::singleShot(0, this, SLOT(reloadPanels())); + if (startIndexingAfterConfig) { + startIndexingAfterConfig = 0; + startindexing = 1; + } } void ConfIndexW::rejectChanges() diff --git a/src/qtgui/main.cpp b/src/qtgui/main.cpp index 8e5ae781..a3bcf4cc 100644 --- a/src/qtgui/main.cpp +++ b/src/qtgui/main.cpp @@ -1,5 +1,5 @@ #ifndef lint -static char rcsid[] = "@(#$Id: main.cpp,v 1.63 2007-11-08 09:35:47 dockes Exp $ (C) 2005 J.F.Dockes"; +static char rcsid[] = "@(#$Id: main.cpp,v 1.64 2007-11-21 14:15:48 dockes Exp $ (C) 2005 J.F.Dockes"; #endif /* * This program is free software; you can redistribute it and/or modify @@ -86,6 +86,7 @@ RclConfig* RclConfig::getMainConfig() RclHistory *g_dynconf; int recollNeedsExit; +int startIndexingAfterConfig; static string dbdir; static RclMain *mainWindow; static string recollsharedir; @@ -320,8 +321,8 @@ int main(int argc, char **argv) rcldb = new Rcl::Db; + bool needindexconfig = false; if (!maybeOpenDb(reason)) { - startindexing = 1; switch (QMessageBox:: #if (QT_VERSION >= 0x030200) @@ -337,20 +338,27 @@ int main(int argc, char **argv) "Click Cancel if you want to edit the configuration file before indexation starts, or Ok to let it proceed."), "Ok", "Cancel", 0, 0)) { - case 0: // Ok + case 0: // Ok: indexing is going to start. + startindexing = 1; break; case 1: // Cancel - exit(0); + needindexconfig = true; + startindexing = 0; + break; } } mainWindow->show(); - - if (prefs.startWithAdvSearchOpen) - mainWindow->showAdvSearchDialog(); - if (prefs.startWithSortToolOpen) - mainWindow->showSortDialog(); + if (needindexconfig) { + startIndexingAfterConfig = 1; + mainWindow->showIndexConfig(); + } else { + if (prefs.startWithAdvSearchOpen) + mainWindow->showAdvSearchDialog(); + if (prefs.startWithSortToolOpen) + mainWindow->showSortDialog(); + } // Connect exit handlers etc.. Beware, apparently this must come // after mainWindow->show() , else the QMessageBox above never diff --git a/src/qtgui/rclmain_w.cpp b/src/qtgui/rclmain_w.cpp index bf7a6fb1..1b974b37 100644 --- a/src/qtgui/rclmain_w.cpp +++ b/src/qtgui/rclmain_w.cpp @@ -1,5 +1,5 @@ #ifndef lint -static char rcsid[] = "@(#$Id: rclmain_w.cpp,v 1.44 2007-10-09 14:08:24 dockes Exp $ (C) 2005 J.F.Dockes"; +static char rcsid[] = "@(#$Id: rclmain_w.cpp,v 1.45 2007-11-21 14:15:48 dockes Exp $ (C) 2005 J.F.Dockes"; #endif /* * This program is free software; you can redistribute it and/or modify @@ -407,7 +407,7 @@ void RclMain::startSearch(RefCntr sdata) // If indexing is being performed, we reopen the db at each query. if (!maybeOpenDb(reason, indexingdone == 0)) { QMessageBox::critical(0, "Recoll", QString(reason.c_str())); - exit(1); + return; } resList->resetSearch(); @@ -915,7 +915,7 @@ void RclMain::showDocHistory() string reason; if (!maybeOpenDb(reason)) { QMessageBox::critical(0, "Recoll", QString(reason.c_str())); - exit(1); + return; } // Construct a bogus SearchData structure m_searchData = diff --git a/src/qtgui/recoll.h b/src/qtgui/recoll.h index 79ca6077..8be10f3b 100644 --- a/src/qtgui/recoll.h +++ b/src/qtgui/recoll.h @@ -16,7 +16,7 @@ */ #ifndef _RECOLL_H_INCLUDED_ #define _RECOLL_H_INCLUDED_ -/* @(#$Id: recoll.h,v 1.17 2006-10-11 14:16:26 dockes Exp $ (C) 2004 J.F.Dockes */ +/* @(#$Id: recoll.h,v 1.18 2007-11-21 14:15:48 dockes Exp $ (C) 2004 J.F.Dockes */ #include #include "rclconfig.h" @@ -32,6 +32,7 @@ extern bool maybeOpenDb(std::string &reason, bool force = true); extern RclConfig *rclconfig; extern Rcl::Db *rcldb; extern int recollNeedsExit; +extern int startIndexingAfterConfig; // 1st startup extern const std::string recoll_datadir; extern RclHistory *g_dynconf; #ifdef RCL_USE_ASPELL