| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #ifndef VVIMCMDLINEEDIT_H
- #define VVIMCMDLINEEDIT_H
- #include "vlineedit.h"
- #include "utils/vvim.h"
- class QKeyEvent;
- class QFocusEvent;
- class VVimCmdLineEdit : public VLineEdit
- {
- Q_OBJECT
- public:
- explicit VVimCmdLineEdit(QWidget *p_parent = 0);
- void reset(VVim::CommandLineType p_type);
- // Set the command to @p_cmd with leader unchanged.
- void setCommand(const QString &p_cmd);
- // Get the command.
- QString getCommand() const;
- void restoreUserLastInput();
- QVariant inputMethodQuery(Qt::InputMethodQuery p_query) const Q_DECL_OVERRIDE;
- signals:
- // User has finished the input and the command is ready to execute.
- void commandFinished(VVim::CommandLineType p_type, const QString &p_cmd);
- // User cancelled the input.
- void commandCancelled();
- // User request the next command in the history.
- void requestNextCommand(VVim::CommandLineType p_type, const QString &p_cmd);
- // User request the previous command in the history.
- void requestPreviousCommand(VVim::CommandLineType p_type, const QString &p_cmd);
- // Emit when the input text changed.
- void commandChanged(VVim::CommandLineType p_type, const QString &p_cmd);
- // Emit when expecting to read a register.
- void requestRegister(int p_key, int p_modifiers);
- protected:
- void keyPressEvent(QKeyEvent *p_event) Q_DECL_OVERRIDE;
- void focusOutEvent(QFocusEvent *p_event) Q_DECL_OVERRIDE;
- private:
- // Return the leader of @p_type.
- QString commandLineTypeLeader(VVim::CommandLineType p_type);
- void setRegisterPending(bool p_pending);
- void setInputMethodEnabled(bool p_enabled);
- VVim::CommandLineType m_type;
- // The latest command user input.
- QString m_userLastInput;
- // Whether we are expecting a register name to read.
- bool m_registerPending;
- QString m_originStyleSheet;
- // Whether enable input method.
- bool m_enableInputMethod;
- };
- #endif // VVIMCMDLINEEDIT_H
|