X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/f65b0899c3666561cafac14f67ab0bb8a5bfa00a..cebcf8db:/src/kitemviews/private/kitemlistroleeditor.h diff --git a/src/kitemviews/private/kitemlistroleeditor.h b/src/kitemviews/private/kitemlistroleeditor.h index 070cf5ce9..eb8a9cb5e 100644 --- a/src/kitemviews/private/kitemlistroleeditor.h +++ b/src/kitemviews/private/kitemlistroleeditor.h @@ -11,12 +11,25 @@ #include +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,39 +38,41 @@ class DOLPHIN_EXPORT KItemListRoleEditor : public KTextEdit Q_OBJECT public: - explicit KItemListRoleEditor(QWidget* parent); + explicit KItemListRoleEditor(QWidget *parent); ~KItemListRoleEditor() override; - void setRole(const QByteArray& role); + 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(QEvent* event) override; - void keyPressEvent(QKeyEvent* event) override; - -private Q_SLOTS: +public Q_SLOTS: /** * Increases the size of the editor in case if there is not * enough room for the text. */ void autoAdjustSize(); +protected: + bool event(QEvent *event) override; + void keyPressEvent(QKeyEvent *event) override; + 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