]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/private/kitemlistkeyboardsearchmanager.h
Fix selection rect after porting from QFontMetrics::width()
[dolphin.git] / src / kitemviews / private / kitemlistkeyboardsearchmanager.h
index 3f13ff4459400839971ecf24f7f5ab2664544691..d0161f927c985996ecbdb65d20fb7c6fbfbfc33c 100644 (file)
@@ -1,8 +1,7 @@
 /***************************************************************************
  * Copyright (C) 2011 by Tirtha Chatterjee <tirtha.p.chatterjee@gmail.com> *
  *                                                                         *
- *   Based on the Itemviews NG project from Trolltech Labs:                *
- *   http://qt.gitorious.org/qt-labs/itemviews-ng                          *
+ *   Based on the Itemviews NG project from Trolltech Labs                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#ifndef KITEMLISTKEYBOARDMANAGER_H
-#define KITEMLISTKEYBOARDMANAGER_H
+#ifndef KITEMLISTKEYBOARDSEARCHMANAGER_H
+#define KITEMLISTKEYBOARDSEARCHMANAGER_H
 
-#include <libdolphin_export.h>
+#include "dolphin_export.h"
+#include "kitemviews/kitemset.h"
 
+#include <QElapsedTimer>
 #include <QObject>
 #include <QString>
-#include <QElapsedTimer>
 
 /**
  * @brief Controls the keyboard searching ability for a KItemListController.
  * @see KItemListController
  * @see KItemModelBase
  */
-class LIBDOLPHINPRIVATE_EXPORT KItemListKeyboardSearchManager : public QObject
+class DOLPHIN_EXPORT KItemListKeyboardSearchManager : public QObject
 {
     Q_OBJECT
 
 public:
 
-    KItemListKeyboardSearchManager(QObject* parent = 0);
-    virtual ~KItemListKeyboardSearchManager();
+    explicit KItemListKeyboardSearchManager(QObject* parent = nullptr);
+    ~KItemListKeyboardSearchManager() override;
 
     /**
      * Add \a keys to the text buffer used for searching.
@@ -59,6 +59,12 @@ public:
     qint64 timeout() const;
 
     void cancelSearch();
+    bool shouldClearSearchIfInputTimeReached();
+
+public slots:
+
+    void slotCurrentChanged(int current, int previous);
+    void slotSelectionChanged(const KItemSet& current, const KItemSet& previous);
 
 signals:
     /**
@@ -69,11 +75,12 @@ signals:
      *                           current item.
      */
     // TODO: Think about getting rid of the bool parameter
-    // (see http://doc.qt.nokia.com/qq/qq13-apis.html#thebooleanparametertrap)
+    // (see https://doc.qt.io/archives/qq/qq13-apis.html#thebooleanparametertrap)
     void changeCurrentItem(const QString& string, bool searchFromNextItem);
 
 private:
     QString m_searchedString;
+    bool m_isSearchRestarted;
     QElapsedTimer m_keyboardInputTime;
     qint64 m_timeout;
 };