]> gitweb.hamatoma.de Git - reqt/commitdiff
ReFind: start/stop works
authorHamatoma <git.tortouse@hm.f-r-e-i.de>
Thu, 24 Dec 2015 16:00:13 +0000 (17:00 +0100)
committerHamatoma <git.tortouse@hm.f-r-e-i.de>
Thu, 24 Dec 2015 16:00:13 +0000 (17:00 +0100)
* menu, toolbar and buttons for start/stop works now
* exact value of "stop after" works now

appl/refind/filefinder.cpp
appl/refind/filefinder.hpp
appl/refind/mainwindow.cpp
appl/refind/mainwindow.ui

index a061a60f38ce5929c9e9a4f15e00cc2b8e4acdde..469221e7b6ce165ee88526e6d856f05ed91c8b66 100644 (file)
@@ -142,7 +142,7 @@ void FileFinder::fillTable(const QString& path, int depth){
          }
          if (ignore)
                  continue;
-         if (isInterruptionRequested())
+      if (m_stop)
                  break;
          if (depth >= m_minDepth && isValid(*it)){
                 bool isDir = it->isDir();
@@ -180,8 +180,7 @@ void FileFinder::fillTable(const QString& path, int depth){
    for (it2 = antiPatterns.begin(); it2 != antiPatterns.end(); ++it2){
           delete *it2;
    }
-   if (! isInterruptionRequested()
-                  && (depth < m_maxDepth || m_maxDepth < 0) && m_maxHits > 0){
+   if (! m_stop && (depth < m_maxDepth || m_maxDepth < 0) && m_maxHits > 0){
          entries = dir.entryInfoList(
                 QDir::NoSymLinks | QDir::NoDotAndDotDot | QDir::AllDirs, QDir::NoSort);
          bool filtered = m_excludedDirs.length() > 0;
@@ -205,6 +204,7 @@ void FileFinder::run()
  */
 void FileFinder::search(){
        clock_t start = clock();
+    setStop(false);
        m_statistics.clear();
        QString path = ReFileUtils::nativePath(m_baseDir);
        path = ReQStringUtils::chomp(path, OS_SEPARATOR);
@@ -264,6 +264,16 @@ bool FileFinder::isValid(const QFileInfo& file){
    }
    return rc;
 }
+/**
+ * Sets the stop flag.
+ *
+ * @param stop  <code>true</code>: the file search must be stopped
+ */
+void FileFinder::setStop(bool stop)
+{
+    m_stop = stop;
+}
+
 
 /**
  * Sets the maximal hit count.
index 0916cfea5557ab30923afa1f6b36aefef1292204..188ebc3f59cd8f757a32faa88745867283144e03 100644 (file)
@@ -40,10 +40,12 @@ public:
    void setObserver(ReObserver* observer);
    void setOlderThan(const QDateTime& olderThan);
    void setPatterns(const QStringList& patterns);
+   void setStop(bool stop);
    void setTable(QTableWidget* table);
    void setTextFinder(TextFinder* textFinder);
    void setYoungerThan(const QDateTime& youngerThan);
    const Statistics& statistics() const;
+
 private:
    bool isExcludedDir(const QString& node);
    bool isValid(const QFileInfo& file);
@@ -67,6 +69,7 @@ private:
    ReObserver* m_observer;
    ReGuiQueue* m_guiQueue;
    int m_maxHits;
+   bool m_stop;
 };
 
 #endif // FILEFINDER_HPP
index a8cfd2ed3bfd7a89d56890eace3c94dcd42467bd..884e7ceac3faf86e92933529ca7e7a304dc22349 100644 (file)
@@ -74,11 +74,13 @@ MainWindow::MainWindow(const QString& startDir, const QString& homeDir,
          ui->comboBoxDirectory->setCurrentText(QDir::currentPath());
    ui->tableWidget->setMainWindow(this);
    statusBar()->addWidget(m_statusMessage);
-   connect(ui->actionSearch, SIGNAL(triggered()), this, SLOT(search()));
+   connect(ui->actionStart, SIGNAL(triggered()), this, SLOT(search()));
    connect(ui->actionClear, SIGNAL(triggered()), this, SLOT(clear()));
    connect(ui->actionStop, SIGNAL(triggered()), this, SLOT(stop()));
    connect(ui->pushButtonSearch, SIGNAL(clicked()), this, SLOT(search()));
    connect(ui->pushButtonSearch2, SIGNAL(clicked()), this, SLOT(search()));
+   connect(ui->pushButtonStop, SIGNAL(clicked()), this, SLOT(stop()));
+   connect(ui->pushButtonStop2, SIGNAL(clicked()), this, SLOT(stop()));
    connect(ui->pushButtonClear, SIGNAL(clicked()), this, SLOT(clear()));
    connect(ui->actionUp, SIGNAL(triggered()), this, SLOT(up()));
    connect(ui->pushButtonUp, SIGNAL(clicked()), this, SLOT(up()));
@@ -97,7 +99,6 @@ MainWindow::MainWindow(const QString& startDir, const QString& homeDir,
    connect(ui->actionGetFullName, SIGNAL(triggered()), this,
          SLOT(fullNameToClipboard()));
    connect(ui->actionReset, SIGNAL(triggered()), this, SLOT(resetParameters()));
-   connect(ui->tableWidget, SIGNAL(cellClicked(int,int)), this, SLOT(cellEntered(int, int)));
    connect(ui->actionExport, SIGNAL(triggered()), this, SLOT(exportFiles()));
    connect(ui->pushButtonExport, SIGNAL(clicked()), this, SLOT(exportFiles()));
    connect(ui->pushButtonExportFile, SIGNAL(clicked()), this,
@@ -942,7 +943,7 @@ bool MainWindow::say(ReLoggerLevel level, const QString& message){
  * @param start        <code>true</code>: the search should start
  */
 void MainWindow::startStop(bool start){
-       ui->actionSearch->setEnabled(!start);
+    ui->actionStart->setEnabled(!start);
        ui->actionStop->setEnabled(start);
        ui->pushButtonSearch->setEnabled(! start);
        ui->pushButtonSearch2->setEnabled(! start);
@@ -954,7 +955,7 @@ void MainWindow::startStop(bool start){
  * Handles the "search" button.
  */
 void MainWindow::stop(){
-       m_finder->requestInterruption();
+    m_finder->setStop(true);
        startStop(false);
 }
 
index 153a6ce67bb2452ef3cf1a8a63866933fbbcae24..de51ca8f0a7db19a6703196d22b95ab9ee48e863 100644 (file)
           <string>Size (MByte)</string>
          </property>
          <property name="textAlignment">
-          <set>AlignTrailing|AlignBottom</set>
+          <set>AlignRight|AlignBottom</set>
          </property>
         </column>
         <column>
     <property name="title">
      <string>&amp;File</string>
     </property>
-    <addaction name="actionSearch"/>
-    <addaction name="separator"/>
     <addaction name="actionPreview"/>
     <addaction name="actionExport"/>
     <addaction name="separator"/>
     <addaction name="actionStop"/>
    </widget>
    <addaction name="menuFile"/>
-   <addaction name="menuSearch"/>
    <addaction name="menu_Edit"/>
+   <addaction name="menuSearch"/>
    <addaction name="menuNavigation"/>
    <addaction name="menuHelp"/>
   </widget>
    <attribute name="toolBarBreak">
     <bool>false</bool>
    </attribute>
-   <addaction name="actionSearch"/>
+   <addaction name="actionStart"/>
+   <addaction name="actionStop"/>
   </widget>
   <widget class="QStatusBar" name="statusBar"/>
   <widget class="QToolBar" name="toolBarNavigate">