]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/private/kitemlistroleeditor.h
Add clang-format and format code as in Frameworks
[dolphin.git] / src / kitemviews / private / kitemlistroleeditor.h
index 070cf5ce95062026417f9b0e9f35cf7246310943..18304374d48a49b8d71e7557fbd767b0372ec85f 100644 (file)
 
 #include <KTextEdit>
 
+enum EditResultDirection {
+    EditDone,
+    EditNext,
+    EditPrevious,
+};
+Q_DECLARE_METATYPE(EditResultDirection)
+
+struct EditResult {
+    QString newName;
+    EditResultDirection direction;
+};
+Q_DECLARE_METATYPE(EditResult)
+
 /**
  * @brief Editor for renaming roles of a KItemListWidget.
  *
  * Provides signals when the editing got cancelled (e.g. by
  * pressing Escape or when losing the focus) or when the editing
- * got finished (e.g. by pressing Enter or Return).
+ * got finished (e.g. by pressing Enter, Tab or Return).
  *
  * The size automatically gets increased if the text does not fit.
  */
@@ -25,21 +38,22 @@ class DOLPHIN_EXPORT KItemListRoleEditor : public KTextEdit
     Q_OBJECT
 
 public:
-    explicit KItemListRoleEditor(QWidgetparent);
+    explicit KItemListRoleEditor(QWidget *parent);
     ~KItemListRoleEditor() override;
 
-    void setRole(const QByteArrayrole);
+    void setRole(const QByteArray &role);
     QByteArray role() const;
 
-    bool eventFilter(QObject* watched, QEvent* event) override;
+    void setAllowUpDownKeyChainEdit(bool allowChainEdit);
+    bool eventFilter(QObject *watched, QEvent *event) override;
 
 Q_SIGNALS:
-    void roleEditingFinished(const QByteArray& role, const QVariant& value);
-    void roleEditingCanceled(const QByteArray& role, const QVariant& value);
+    void roleEditingFinished(const QByteArray &role, const QVariant &value);
+    void roleEditingCanceled(const QByteArray &role, const QVariant &value);
 
 protected:
-    bool event(QEventevent) override;
-    void keyPressEvent(QKeyEventevent) override;
+    bool event(QEvent *event) override;
+    void keyPressEvent(QKeyEvent *event) override;
 
 private Q_SLOTS:
     /**
@@ -53,11 +67,12 @@ private:
      * Emits the signal roleEditingFinished if m_blockFinishedSignal
      * is false.
      */
-    void emitRoleEditingFinished();
+    void emitRoleEditingFinished(EditResultDirection direction = EditDone);
 
 private:
     QByteArray m_role;
     bool m_blockFinishedSignal;
+    bool m_allowUpDownKeyChainEdit;
 };
 
 #endif