12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /******************************************************************************
- Copyright (C) 2023 by Lain Bailey <[email protected]>
- Zachary Lund <[email protected]>
- Philippe Groarke <[email protected]>
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
- #include "SceneRenameDelegate.hpp"
- #include <QKeyEvent>
- #include <QLineEdit>
- #include "moc_SceneRenameDelegate.cpp"
- SceneRenameDelegate::SceneRenameDelegate(QObject *parent) : QStyledItemDelegate(parent) {}
- void SceneRenameDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
- {
- QStyledItemDelegate::setEditorData(editor, index);
- QLineEdit *lineEdit = qobject_cast<QLineEdit *>(editor);
- if (lineEdit)
- lineEdit->selectAll();
- }
- bool SceneRenameDelegate::eventFilter(QObject *editor, QEvent *event)
- {
- if (event->type() == QEvent::KeyPress) {
- QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
- switch (keyEvent->key()) {
- case Qt::Key_Escape: {
- QLineEdit *lineEdit = qobject_cast<QLineEdit *>(editor);
- if (lineEdit)
- lineEdit->undo();
- break;
- }
- case Qt::Key_Tab:
- case Qt::Key_Backtab:
- return false;
- }
- }
- return QStyledItemDelegate::eventFilter(editor, event);
- }
|