tahoma2d/toonz/sources/include/toonzqt/lineedit.h

73 lines
1.9 KiB
C
Raw Normal View History

2016-05-17 03:04:11 +12:00
#pragma once
2016-03-19 06:57:51 +13:00
#ifndef LINEEDIT_H
#define LINEEDIT_H
#include "tcommon.h"
#include <QLineEdit>
#undef DVAPI
#undef DVVAR
#ifdef TOONZQT_EXPORTS
#define DVAPI DV_EXPORT_API
#define DVVAR DV_EXPORT_VAR
#else
#define DVAPI DV_IMPORT_API
#define DVVAR DV_IMPORT_VAR
#endif
//=============================================================================
2016-06-15 18:43:10 +12:00
namespace DVGui {
2016-03-19 06:57:51 +13:00
//=============================================================================
/*! \brief It is a \b QLineEdit which lost focus when enter is pressed and emit
2016-06-15 18:43:10 +12:00
focusIn signal when line edit take
focus.
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
Inherits \b QLineEdit.
2016-03-19 06:57:51 +13:00
*/
2016-06-15 18:43:10 +12:00
class DVAPI LineEdit : public QLineEdit {
Q_OBJECT
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
bool m_isReturnPressed;
bool m_forbiddenSpecialChars;
bool m_mouseDragEditing = false;
bool m_typing = false;
2016-03-19 06:57:51 +13:00
public:
2016-06-15 18:43:10 +12:00
LineEdit(QWidget *parent = 0, bool forbiddenSpecialChars = false);
LineEdit(const QString &contents, QWidget *parent = 0,
bool forbiddenSpecialChars = false);
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
bool isReturnPressed() const { return m_isReturnPressed; }
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
~LineEdit() {}
2016-03-19 06:57:51 +13:00
// In the function editor, ctrl + dragging on the lineedit
// can adjust the value.
bool getMouseDragEditing() { return m_mouseDragEditing; }
void setMouseDragEditing(bool status) { m_mouseDragEditing = status; }
2016-03-19 06:57:51 +13:00
protected:
2016-06-19 20:06:29 +12:00
void focusInEvent(QFocusEvent *event) override;
void keyPressEvent(QKeyEvent *event) override;
void mouseMoveEvent(QMouseEvent *) override;
void focusOutEvent(QFocusEvent *) override;
void mousePressEvent(QMouseEvent *) override;
2016-03-19 06:57:51 +13:00
signals:
2016-06-15 18:43:10 +12:00
void focusIn();
void returnPressedNow();
// this signal is only used for mouse drag value editing in the function
// panel.
void mouseMoved(QMouseEvent *);
2016-03-19 06:57:51 +13:00
};
//-----------------------------------------------------------------------------
2016-06-15 18:43:10 +12:00
} // namespace DVGui
2016-03-19 06:57:51 +13:00
//-----------------------------------------------------------------------------
2016-06-15 18:43:10 +12:00
#endif // LINEEDIT_H