Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "toonzqt/lineedit.h"
Toshihiro Shimizu 890ddd
#include "toonzqt/dvdialog.h"
Toshihiro Shimizu 890ddd
#include <qkeyevent></qkeyevent>
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
using namespace DVGui;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
// LineEdit
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
LineEdit::LineEdit(QWidget *parent, bool forbiddenSpecialChars)
Shinya Kitaoka 120a6e
    : QLineEdit(parent), m_forbiddenSpecialChars(forbiddenSpecialChars) {}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
LineEdit::LineEdit(const QString &contents, QWidget *parent,
Shinya Kitaoka 120a6e
                   bool forbiddenSpecialChars)
Shinya Kitaoka 120a6e
    : QLineEdit(contents, parent)
Shinya Kitaoka 120a6e
    , m_isReturnPressed(false)
Shinya Kitaoka 120a6e
    , m_forbiddenSpecialChars(forbiddenSpecialChars) {}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
void LineEdit::focusInEvent(QFocusEvent *event) {
Shinya Kitaoka 120a6e
  m_isReturnPressed = false;
Shinya Kitaoka 120a6e
  QLineEdit::focusInEvent(event);
Shinya Kitaoka 120a6e
  emit focusIn();
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
void LineEdit::keyPressEvent(QKeyEvent *event) {
Shinya Kitaoka 120a6e
  if (event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) {
Shinya Kitaoka 120a6e
    m_isReturnPressed = true;
Shinya Kitaoka 120a6e
    clearFocus();
Shinya Kitaoka 120a6e
    return;
Shinya Kitaoka 120a6e
  } else {
Shinya Kitaoka 120a6e
    m_isReturnPressed = false;
Shinya Kitaoka 120a6e
    if (m_forbiddenSpecialChars) {
Shinya Kitaoka 120a6e
      switch (event->key()) {
Shinya Kitaoka 120a6e
      case Qt::Key_Backslash:
Shinya Kitaoka 120a6e
      case Qt::Key_Slash:
Shinya Kitaoka 120a6e
      case Qt::Key_Colon:
Shinya Kitaoka 120a6e
      case Qt::Key_Asterisk:
Shinya Kitaoka 120a6e
      case Qt::Key_Question:
Shinya Kitaoka 120a6e
      case Qt::Key_QuoteDbl:
Shinya Kitaoka 120a6e
      case Qt::Key_Greater:
Shinya Kitaoka 120a6e
      case Qt::Key_Less:
Shinya Kitaoka 120a6e
      case Qt::Key_Bar:
Shinya Kitaoka 120a6e
      case Qt::Key_Period:
Shinya Kitaoka 120a6e
        DVGui::info(
Shinya Kitaoka 120a6e
            tr("A file name cannot contains any of the following chracters: "
Shinya Kitaoka 120a6e
               "/\\:*?\"<>|."));
Shinya Kitaoka 120a6e
        return;
Shinya Kitaoka 120a6e
      default:
Shinya Kitaoka 120a6e
        QLineEdit::keyPressEvent(event);
Shinya Kitaoka 120a6e
        break;
Shinya Kitaoka 120a6e
      }
Shinya Kitaoka 120a6e
    } else
Shinya Kitaoka 120a6e
      QLineEdit::keyPressEvent(event);
Shinya Kitaoka 120a6e
  }
Toshihiro Shimizu 890ddd
}