|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef ADDFXCONTEXTMENU_H
|
|
Toshihiro Shimizu |
890ddd |
#define ADDFXCONTEXTMENU_H
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#include "tfilepath.h"
|
|
Toshihiro Shimizu |
890ddd |
#include <qobject></qobject>
|
|
Toshihiro Shimizu |
890ddd |
#include <qpointf></qpointf>
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
class QMenu;
|
|
Toshihiro Shimizu |
890ddd |
class QActionGroup;
|
|
Toshihiro Shimizu |
890ddd |
class TIStream;
|
|
Toshihiro Shimizu |
890ddd |
class QAction;
|
|
Toshihiro Shimizu |
890ddd |
class TXsheetHandle;
|
|
Toshihiro Shimizu |
890ddd |
class TFxHandle;
|
|
Toshihiro Shimizu |
890ddd |
class FxSelection;
|
|
Toshihiro Shimizu |
890ddd |
class TColumnHandle;
|
|
Toshihiro Shimizu |
890ddd |
class TFrameHandle;
|
|
Toshihiro Shimizu |
890ddd |
class TApplication;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
class PluginInformation;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
//! Create Insert - Add - Replace menus for the context menu of a
|
|
Shinya Kitaoka |
120a6e |
//! FxSchematicScene and its items!
|
|
Toshihiro Shimizu |
890ddd |
//! This method is used to create and keep updated the three menus.
|
|
Toshihiro Shimizu |
890ddd |
//! Each menus contains all toonz special effect and effect presets.
|
|
Shinya Kitaoka |
d1f6c4 |
class AddFxContextMenu final : public QObject {
|
|
Shinya Kitaoka |
120a6e |
Q_OBJECT
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
QMenu *m_insertMenu, *m_addMenu, *m_replaceMenu;
|
|
Shinya Kitaoka |
120a6e |
TFilePath m_fxListPath, m_presetPath;
|
|
Shinya Kitaoka |
120a6e |
QActionGroup *m_insertActionGroup, *m_addActionGroup, *m_replaceActionGroup;
|
|
Shinya Kitaoka |
120a6e |
TApplication *m_app;
|
|
Shinya Kitaoka |
120a6e |
FxSelection *m_selection;
|
|
Shinya Kitaoka |
120a6e |
// in order to add fx at the cursor position
|
|
Shinya Kitaoka |
120a6e |
QPointF m_currentCursorScenePos;
|
|
Shinya Kitaoka |
120a6e |
// for reproduce the last added fx
|
|
Shinya Kitaoka |
120a6e |
QAction *m_againCommand;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
AddFxContextMenu();
|
|
Shinya Kitaoka |
120a6e |
~AddFxContextMenu();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
QMenu *getInsertMenu() { return m_insertMenu; }
|
|
Shinya Kitaoka |
120a6e |
QMenu *getAddMenu() { return m_addMenu; }
|
|
Shinya Kitaoka |
120a6e |
QMenu *getReplaceMenu() { return m_replaceMenu; }
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void setApplication(TApplication *app);
|
|
Shinya Kitaoka |
120a6e |
void setSelection(FxSelection *selection) { m_selection = selection; }
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void setCurrentCursorScenePos(const QPointF &scenePos) {
|
|
Shinya Kitaoka |
120a6e |
m_currentCursorScenePos = scenePos;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
enum Commands { Insert = 0x1, Add = 0x2, Replace = 0x4 };
|
|
Shinya Kitaoka |
120a6e |
QAction *getAgainCommand(int command);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
private:
|
|
Shinya Kitaoka |
120a6e |
void fillMenus();
|
|
Shinya Kitaoka |
120a6e |
void loadFxs();
|
|
Shinya Kitaoka |
120a6e |
void loadFxGroup(TIStream *is);
|
|
Shinya Kitaoka |
120a6e |
void loadFx(TIStream *is, QMenu *insertFxGroup, QMenu *addFxGroup,
|
|
Shinya Kitaoka |
120a6e |
QMenu *replaceFxGroup);
|
|
Shinya Kitaoka |
120a6e |
bool loadPreset(const std::string &name, QMenu *insertFxGroup,
|
|
Shinya Kitaoka |
120a6e |
QMenu *addFxGroup, QMenu *replaceFxGroup);
|
|
Shinya Kitaoka |
120a6e |
void loadMacro();
|
|
Shinya Kitaoka |
120a6e |
void loadFxPluginGroup();
|
|
Shinya Kitaoka |
120a6e |
void loadFxPlugins(QMenu *insertFxGroup, QMenu *addFxGroup,
|
|
Shinya Kitaoka |
120a6e |
QMenu *replaceFxGroup);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
private slots:
|
|
Shinya Kitaoka |
120a6e |
void onInsertFx(QAction *);
|
|
Shinya Kitaoka |
120a6e |
void onAddFx(QAction *);
|
|
Shinya Kitaoka |
120a6e |
void onReplaceFx(QAction *);
|
|
Shinya Kitaoka |
120a6e |
void onFxPresetHandled();
|
|
Shinya Kitaoka |
120a6e |
void onAgainCommand();
|
|
Toshihiro Shimizu |
890ddd |
public slots:
|
|
Shinya Kitaoka |
120a6e |
void result(PluginInformation *);
|
|
Shinya Kitaoka |
120a6e |
void fixup();
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
#endif // ADDFXCONTEXTMENU_H
|