]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/private/kitemlistroleeditor.h
Fix selection rect after porting from QFontMetrics::width()
[dolphin.git] / src / kitemviews / private / kitemlistroleeditor.h
index 14aa694cee37c48d05f40fdd1d601051ee4ad289..7285d62f7788e8767d772e2860dd1fdd936767d3 100644 (file)
 #ifndef KITEMLISTROLEEDITOR_H
 #define KITEMLISTROLEEDITOR_H
 
-#include "libdolphin_export.h"
+#include "dolphin_export.h"
 
 #include <KTextEdit>
 
 /**
- * @brief
+ * @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).
+ *
+ * The size automatically gets increased if the text does not fit.
  */
-class LIBDOLPHINPRIVATE_EXPORT KItemListRoleEditor : public KTextEdit
+class DOLPHIN_EXPORT KItemListRoleEditor : public KTextEdit
 {
     Q_OBJECT
 
 public:
     explicit KItemListRoleEditor(QWidget* parent);
-    virtual ~KItemListRoleEditor();
-
-    void setIndex(int index);
-    int index() const;
+    ~KItemListRoleEditor() override;
 
     void setRole(const QByteArray& role);
     QByteArray role() const;
 
-    virtual bool eventFilter(QObject* watched, QEvent* event);
+    bool eventFilter(QObject* watched, QEvent* event) override;
 
 signals:
-    void roleEditingFinished(int index, const QByteArray& role, const QVariant& value);
-    void roleEditingCanceled(int index, const QByteArray& role, const QVariant& value);
+    void roleEditingFinished(const QByteArray& role, const QVariant& value);
+    void roleEditingCanceled(const QByteArray& role, const QVariant& value);
 
 protected:
-    virtual bool event(QEvent* event);
-    virtual void keyPressEvent(QKeyEvent* event);
+    bool event(QEvent* event) override;
+    void keyPressEvent(QKeyEvent* event) override;
 
 private slots:
     /**
-     * Increases the width of the editor in case if there is not
+     * Increases the size of the editor in case if there is not
      * enough room for the text.
      */
     void autoAdjustSize();
 
 private:
-    int m_index;
-    QByteArray m_role;
+    /**
+     * Emits the signal roleEditingFinished if m_blockFinishedSignal
+     * is false.
+     */
+    void emitRoleEditingFinished();
 
+private:
+    QByteArray m_role;
+    bool m_blockFinishedSignal;
 };
 
 #endif