tahoma2d/toonz/sources/toonz/insertfxpopup.h
2020-04-20 11:48:09 +08:00

81 lines
1.7 KiB
C++

#pragma once
#ifndef INSERTFXPOPUP_H
#define INSERTFXPOPUP_H
#include <QTreeWidget>
#include "toonzqt/dvdialog.h"
#include "tfilepath.h"
#include "tstream.h"
// forward declaration
class QTreeWidget;
class QTreeWidgetItem;
class TFx;
#include <QIcon>
//=============================================================================
// FxTree
//-----------------------------------------------------------------------------
class FxTree final : public QTreeWidget {
Q_OBJECT
public:
void searchItems(const QString &searchWord = QString());
private:
void displayAll(QTreeWidgetItem *item);
void hideAll(QTreeWidgetItem *item);
};
//=============================================================================
// InsertFxPopup
//-----------------------------------------------------------------------------
class InsertFxPopup final : public DVGui::Dialog {
Q_OBJECT
FxTree *m_fxTree;
TIStream *m_is;
TFilePath m_presetFolder;
QIcon m_folderIcon;
QIcon m_presetIcon;
QIcon m_fxIcon;
public:
InsertFxPopup();
private:
TFx *createFx();
void makeItem(QTreeWidgetItem *parent, std::string fxid);
void loadFolder(QTreeWidgetItem *parent);
/*!Return true if preset is loaded.*/
bool loadPreset(QTreeWidgetItem *item);
bool loadFx(TFilePath fp);
void loadMacro();
public slots:
void onItemDoubleClicked(QTreeWidgetItem *w, int c);
void onInsert();
void onReplace();
void onAdd();
protected:
void showEvent(QShowEvent *) override;
void hideEvent(QHideEvent *) override;
void contextMenuEvent(QContextMenuEvent *) override;
protected slots:
void updatePresets();
void removePreset();
void onSearchTextChanged(const QString &text);
};
#endif // INSERTFXPOPUP_H