QtNovelUI/WordsIDE/project_view.h

51 lines
1.4 KiB
C++

#ifndef PROJECT_VIEW_H
#define PROJECT_VIEW_H
#include "DocsManager.h"
#include "manager_docs.h"
#include <QTreeView>
#include <QWidget>
#include <commandsdispatcher.h>
#include <libProjectManager.h>
#include "message_view.h"
namespace Components {
/**
* @brief 妞ゅ湱娲扮憴鍡楁禈
*/
class ProjectView : public QWidget, public ExtendView {
Q_OBJECT
public:
ProjectView();
explicit ProjectView(QWidget *parent, Schedule::CommandsDispatcher *core, Core::DocumentsManager *mgr);
// ExtendView interface
public:
virtual ExtendView *newInst(QWidget *parent, XApp *core) override;
virtual QMenu *bindMenu() const override;
virtual QString typeName() const override;
virtual Components::ExtendType type() const override;
virtual QWidget *presentWidget() const override;
virtual void saveProcess() override;
virtual void closeProcess() override;
signals:
void currentIndexChanged(const QModelIndex &index);
private:
Core::DocumentsManager *const project_manager;
Schedule::CommandsDispatcher *const source;
QTreeView *const view_present;
QMenu *const menu_root;
void menu_popup(const QPoint &p);
void open_target(const QModelIndex &t);
QMenu* menGenerate(QMenu *m=nullptr);
};
}
#endif // PROJECT_VIEW_H