|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef SHORTCUTPOPUP_H
|
|
Toshihiro Shimizu |
890ddd |
#define SHORTCUTPOPUP_H
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#include <qdialog></qdialog>
|
|
Toshihiro Shimizu |
890ddd |
#include <qtreewidget></qtreewidget>
|
|
Jeremy Bullock |
e8903b |
#include <qcombobox></qcombobox>
|
|
shun-iwasawa |
83baef |
#include <qkeysequenceedit></qkeysequenceedit>
|
|
Jeremy Bullock |
e8903b |
#include "filebrowserpopup.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonzqt/dvdialog.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// forward declaration
|
|
Toshihiro Shimizu |
890ddd |
class QPushButton;
|
|
Toshihiro Shimizu |
890ddd |
class ShortcutItem;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//=============================================================================
|
|
Toshihiro Shimizu |
890ddd |
// ShortcutViewer
|
|
Toshihiro Shimizu |
890ddd |
// --------------
|
|
Toshihiro Shimizu |
890ddd |
// E' l'editor dello shortcut associato all'azione corrente
|
|
Toshihiro Shimizu |
890ddd |
// Visualizza lo shortcut e permette di cambiarlo digitando direttamente
|
|
Toshihiro Shimizu |
890ddd |
// la nuova sequenza di tasti
|
|
Toshihiro Shimizu |
890ddd |
// Per cancellarlo bisogna chiamare removeShortcut()
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
shun-iwasawa |
83baef |
class ShortcutViewer final : public QKeySequenceEdit {
|
|
Shinya Kitaoka |
120a6e |
Q_OBJECT
|
|
Shinya Kitaoka |
120a6e |
QAction *m_action;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
ShortcutViewer(QWidget *parent);
|
|
Shinya Kitaoka |
120a6e |
~ShortcutViewer();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
protected:
|
|
Shinya Kitaoka |
473e70 |
void enterEvent(QEvent *event) override;
|
|
Shinya Kitaoka |
473e70 |
void leaveEvent(QEvent *event) override;
|
|
shun-iwasawa |
83baef |
void keyPressEvent(QKeyEvent *event) override;
|
|
Toshihiro Shimizu |
890ddd |
public slots:
|
|
Shinya Kitaoka |
120a6e |
void setAction(QAction *action);
|
|
Shinya Kitaoka |
120a6e |
void removeShortcut();
|
|
shun-iwasawa |
83baef |
void onEditingFinished();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
signals:
|
|
Shinya Kitaoka |
120a6e |
void shortcutChanged();
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//=============================================================================
|
|
Toshihiro Shimizu |
890ddd |
// ShortcutTree
|
|
Toshihiro Shimizu |
890ddd |
// ------------
|
|
Toshihiro Shimizu |
890ddd |
// Visualizza tutti le QAction (con gli eventuali shortcut assegnati)
|
|
Toshihiro Shimizu |
890ddd |
// Serve per selezionare la QAction corrente
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
d1f6c4 |
class ShortcutTree final : public QTreeWidget {
|
|
Shinya Kitaoka |
120a6e |
Q_OBJECT
|
|
Shinya Kitaoka |
120a6e |
std::vector<shortcutitem *=""> m_items;</shortcutitem>
|
|
shun_iwasawa |
4343e7 |
std::vector<qtreewidgetitem *=""> m_folders;</qtreewidgetitem>
|
|
shun_iwasawa |
4343e7 |
std::vector<qtreewidgetitem *=""> m_subFolders;</qtreewidgetitem>
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
ShortcutTree(QWidget *parent = 0);
|
|
Shinya Kitaoka |
120a6e |
~ShortcutTree();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
2a7129 |
void searchItems(const QString &searchWord = QString());
|
|
Shinya Kitaoka |
2a7129 |
|
|
Toshihiro Shimizu |
890ddd |
protected:
|
|
Shinya Kitaoka |
120a6e |
// aggiunge un blocco di QAction. commandType e' un
|
|
Shinya Kitaoka |
120a6e |
// CommandType::MenubarCommandType
|
|
Shinya Kitaoka |
2a7129 |
void addFolder(const QString &title, int commandType,
|
|
Shinya Kitaoka |
120a6e |
QTreeWidgetItem *folder = 0);
|
|
Shinya Kitaoka |
2a7129 |
|
|
shun_iwasawa |
4343e7 |
void resizeEvent(QResizeEvent *event);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public slots:
|
|
Shinya Kitaoka |
120a6e |
void onCurrentItemChanged(QTreeWidgetItem *current,
|
|
Shinya Kitaoka |
120a6e |
QTreeWidgetItem *previous);
|
|
Shinya Kitaoka |
120a6e |
void onShortcutChanged();
|
|
Toshihiro Shimizu |
890ddd |
|
|
shun-iwasawa |
750e14 |
void onItemClicked(const QModelIndex &);
|
|
shun-iwasawa |
750e14 |
|
|
Toshihiro Shimizu |
890ddd |
signals:
|
|
Shinya Kitaoka |
120a6e |
void actionSelected(QAction *);
|
|
shun_iwasawa |
4343e7 |
void searched(bool haveResult);
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//=============================================================================
|
|
Toshihiro Shimizu |
890ddd |
// ShortcutPopup
|
|
Toshihiro Shimizu |
890ddd |
// -------------
|
|
Toshihiro Shimizu |
890ddd |
// Questo e' il popup che l'utente utilizza per modificare gli shortcut
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
d1f6c4 |
class ShortcutPopup final : public DVGui::Dialog {
|
|
Shinya Kitaoka |
120a6e |
Q_OBJECT
|
|
Shinya Kitaoka |
120a6e |
QPushButton *m_removeBtn;
|
|
Shinya Kitaoka |
120a6e |
ShortcutViewer *m_sViewer;
|
|
Shinya Kitaoka |
120a6e |
ShortcutTree *m_list;
|
|
Jeremy Bullock |
e8903b |
QComboBox *m_presetChoiceCB;
|
|
Jeremy Bullock |
e8903b |
DVGui::Dialog *m_dialog;
|
|
Jeremy Bullock |
e8903b |
GenericLoadFilePopup *m_loadShortcutsPopup;
|
|
Jeremy Bullock |
e8903b |
GenericSaveFilePopup *m_saveShortcutsPopup;
|
|
Jeremy Bullock |
e8903b |
QPushButton *m_exportButton;
|
|
Jeremy Bullock |
e8903b |
QPushButton *m_deletePresetButton;
|
|
Jeremy Bullock |
e8903b |
QPushButton *m_savePresetButton;
|
|
Jeremy Bullock |
e8903b |
QPushButton *m_loadPresetButton;
|
|
Jeremy Bullock |
e8903b |
QPushButton *m_clearAllShortcutsButton;
|
|
Jeremy Bullock |
e8903b |
QLabel *m_dialogLabel;
|
|
Shinya Kitaoka |
2a7129 |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
ShortcutPopup();
|
|
Shinya Kitaoka |
120a6e |
~ShortcutPopup();
|
|
shun_iwasawa |
4343e7 |
|
|
Jeremy Bullock |
e8903b |
private:
|
|
Jeremy Bullock |
e8903b |
void setPresetShortcuts(TFilePath fp);
|
|
Jeremy Bullock |
e8903b |
void showDialog(QString text);
|
|
Jeremy Bullock |
e8903b |
bool showConfirmDialog();
|
|
Jeremy Bullock |
e8903b |
bool showOverwriteDialog(QString name);
|
|
Jeremy Bullock |
e8903b |
void importPreset();
|
|
shun-iwasawa |
7e230a |
void buildPresets();
|
|
Jeremy Bullock |
e8903b |
void showEvent(QShowEvent *se) override;
|
|
Jeremy Bullock |
e8903b |
void setCurrentPresetPref(QString preset);
|
|
Jeremy Bullock |
e8903b |
void getCurrentPresetPref();
|
|
Jeremy Bullock |
e8903b |
|
|
shun_iwasawa |
4343e7 |
protected slots:
|
|
Jeremy Bullock |
e8903b |
void clearAllShortcuts(bool warning = true);
|
|
shun_iwasawa |
4343e7 |
void onSearchTextChanged(const QString &text);
|
|
shun-iwasawa |
7e230a |
void onPresetChanged();
|
|
Jeremy Bullock |
e8903b |
void onExportButton(TFilePath fp = TFilePath());
|
|
Jeremy Bullock |
e8903b |
void onDeletePreset();
|
|
Jeremy Bullock |
e8903b |
void onSavePreset();
|
|
Jeremy Bullock |
e8903b |
void onLoadPreset();
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
#endif // SHORTCUTPOPUP_H
|