2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
|
|
|
|
#include "toonzqt/lineedit.h"
|
|
|
|
#include "toonzqt/dvdialog.h"
|
|
|
|
#include <QKeyEvent>
|
|
|
|
|
|
|
|
using namespace DVGui;
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// LineEdit
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
LineEdit::LineEdit(QWidget *parent, bool forbiddenSpecialChars)
|
2016-06-15 18:43:10 +12:00
|
|
|
: QLineEdit(parent), m_forbiddenSpecialChars(forbiddenSpecialChars) {}
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
LineEdit::LineEdit(const QString &contents, QWidget *parent,
|
|
|
|
bool forbiddenSpecialChars)
|
|
|
|
: QLineEdit(contents, parent)
|
|
|
|
, m_isReturnPressed(false)
|
|
|
|
, m_forbiddenSpecialChars(forbiddenSpecialChars) {}
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void LineEdit::focusInEvent(QFocusEvent *event) {
|
|
|
|
m_isReturnPressed = false;
|
|
|
|
QLineEdit::focusInEvent(event);
|
|
|
|
emit focusIn();
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
2020-11-12 16:36:21 +13:00
|
|
|
void LineEdit::focusOutEvent(QFocusEvent *event) {
|
|
|
|
m_typing = false;
|
|
|
|
QLineEdit::focusOutEvent(event);
|
|
|
|
}
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void LineEdit::keyPressEvent(QKeyEvent *event) {
|
|
|
|
if (event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) {
|
|
|
|
m_isReturnPressed = true;
|
2016-08-18 21:38:37 +12:00
|
|
|
emit returnPressedNow();
|
2016-06-15 18:43:10 +12:00
|
|
|
clearFocus();
|
|
|
|
return;
|
|
|
|
} else {
|
|
|
|
m_isReturnPressed = false;
|
|
|
|
if (m_forbiddenSpecialChars) {
|
|
|
|
switch (event->key()) {
|
|
|
|
case Qt::Key_Backslash:
|
|
|
|
case Qt::Key_Slash:
|
|
|
|
case Qt::Key_Colon:
|
|
|
|
case Qt::Key_Asterisk:
|
|
|
|
case Qt::Key_Question:
|
|
|
|
case Qt::Key_QuoteDbl:
|
|
|
|
case Qt::Key_Greater:
|
|
|
|
case Qt::Key_Less:
|
|
|
|
case Qt::Key_Bar:
|
|
|
|
case Qt::Key_Period:
|
|
|
|
DVGui::info(
|
|
|
|
tr("A file name cannot contains any of the following chracters: "
|
|
|
|
"/\\:*?\"<>|."));
|
|
|
|
return;
|
|
|
|
default:
|
|
|
|
QLineEdit::keyPressEvent(event);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
} else
|
|
|
|
QLineEdit::keyPressEvent(event);
|
|
|
|
}
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
2017-11-20 20:28:59 +13:00
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
void LineEdit::mouseMoveEvent(QMouseEvent *event) {
|
|
|
|
emit(mouseMoved(event));
|
|
|
|
QLineEdit::mouseMoveEvent(event);
|
|
|
|
}
|
2020-11-12 16:36:21 +13:00
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
void LineEdit::mousePressEvent(QMouseEvent *event) {
|
|
|
|
QLineEdit::mousePressEvent(event);
|
|
|
|
if (!m_typing) { // only the first click will select all
|
|
|
|
selectAll();
|
|
|
|
m_typing = true;
|
|
|
|
}
|
|
|
|
}
|