--- a
+++ b/src/qtgui/idxthread.cpp
@@ -0,0 +1,50 @@
+#include <stdio.h>
+#include <qthread.h>
+
+#include "indexer.h"
+#include "debuglog.h"
+
+class IdxThread : public QThread {
+ virtual void run();
+ public:
+ ConfIndexer *indexer;
+};
+
+int startindexing;
+int indexingdone;
+bool indexingstatus;
+int stopidxthread;
+
+void IdxThread::run()
+{
+ DebugLog::getdbl()->setloglevel(DEBDEB1);
+ for (;;) {
+ if (stopidxthread) {
+ delete indexer;
+ return;
+ }
+ if (startindexing) {
+ indexingdone = indexingstatus = startindexing = 0;
+ fprintf(stderr, "Index thread :start index\n");
+ indexingstatus = indexer->index();
+ indexingdone = 1;
+ }
+ msleep(100);
+ }
+}
+
+static IdxThread idxthread;
+
+void start_idxthread(RclConfig *cnf)
+{
+ ConfIndexer *ix = new ConfIndexer(cnf);
+ idxthread.indexer = ix;
+ idxthread.start();
+}
+
+void stop_idxthread()
+{
+ stopidxthread = 1;
+ while (idxthread.running())
+ sleep(1);
+}