1 #ifndef ABSTRACT_WORKSPACE_GUI_H 2 #define ABSTRACT_WORKSPACE_GUI_H 5 #include "item/item_view.h" 6 #include "helper/dom_helper.h" 7 #include "abstract_workspace.h" 8 #include "projectlist_dockwidget.h" 9 #include "project_manager.h" 10 #include "project_save_reminder_dialog.h" 12 enum WorkspaceGuiType {
23 virtual QDialog* dialogNewWorkspace(QDialog* parent = 0)
const = 0;
24 virtual QDialog* dialogLoadWorkspace(QDialog* parent = 0)
const = 0;
25 virtual QDialog* dialogEditWorkspace(QDialog* parent = 0, QSharedPointer<AbstractWorkspace> workspace = QSharedPointer<AbstractWorkspace>())
const = 0;
26 virtual QString workspaceTypeName()
const = 0;
27 virtual void addListWidgetItem(QListWidget* parentListWidget) = 0;
28 virtual bool isTypeFriendly(
const QSharedPointer<AbstractWorkspace>& workspace)
const = 0;
29 virtual bool removeProject(
const QSharedPointer<ProjectGui>& projectGui,
bool showMessagebox =
true) = 0;
30 virtual bool deleteProject(
const QSharedPointer<ProjectGui>& projectGui,
bool showMessagebox =
true) = 0;
31 virtual void editProject(QSharedPointer<ProjectGui> projectGui) = 0;
32 virtual bool saveExternChangedProjects() = 0;
33 virtual void resetExternChangedProjects() = 0;
34 virtual void showChangeSourceDialog(
const QSharedPointer<AbstractWorkspace>& workspace) = 0;
35 virtual bool exportToFileSystem(QString exportPath,
ExportOptions options, QVector<QSharedPointer<AbstractProject>> projects) = 0;
36 virtual void searchProjectSource(QSharedPointer<ProjectGui> projectGui) = 0;
37 virtual void createProjectsFromImport(
const QStringList& projectPaths,
bool overwrite =
false) = 0;
39 QSharedPointer<AbstractWorkspace> workspace()
const;
40 void setItemViewTabWidget(QTabWidget* itemViewTabWidget);
41 QTabWidget* itemViewTabWidget()
const;
46 void deleteWorkspace(
const QSharedPointer<AbstractWorkspace>& workspace);
47 bool openWorkspace(
const QSharedPointer<AbstractWorkspace>& workspace);
48 bool closeWorkspace();
49 void addProjectGui(
const QSharedPointer<ProjectGui>& projectGui);
50 bool loadProject(
const QSharedPointer<ProjectGui>& projectGui);
51 bool unloadProject(
const QSharedPointer<ProjectGui>& projectGui,
bool saveReminder=
true);
52 bool unloadProjects(
const QVector<QSharedPointer<ProjectGui>>& projectGui);
53 bool unloadAllProjectsExceptThis(
const QSharedPointer<ProjectGui>& projectGui);
54 bool unloadAllProjectsExceptVisible();
55 QMenu* switchWorkspaceMenu()
const;
56 void setSwitchWorkspaceMenu(QMenu* switchWorkspaceMenu);
57 QSharedPointer<ProjectGui> projectGui(
const QSharedPointer<AbstractProject>& project);
60 void setWorkspace(
const QSharedPointer<AbstractWorkspace>& workspace);
61 void setGuiElements();
62 void unsetGuiElements();
63 bool showSaveReminder(
const QVector<QSharedPointer<ProjectGui>>& dirtyProjects);
64 QSharedPointer<AbstractWorkspace> _workspace;
71 QSharedPointer<T> workspaceTypeCast(QSharedPointer<AbstractWorkspace> abstractWorkspace)
73 return qSharedPointerCast<T>(abstractWorkspace);
77 QTabWidget* _itemViewTabWidget =
nullptr;
79 QMenu* _switchWorkspaceMenu =
nullptr;
81 virtual void onProjectLoad(
const QSharedPointer<ProjectGui>& projectGui);
82 virtual void onProjectUnload(
const QSharedPointer<ProjectGui>& projectGui);
85 void acceptWorkspace(QSharedPointer<AbstractWorkspace> workspace);
86 void showContextMenu(
const QPoint& position);
87 void switchWorkspace();
90 void closeProjectTabWidget(
int tabIndex);
91 void projectGuiLabelChanged(QSharedPointer<ProjectGui> projectGui);
95 void workspaceMenuRequested(
const QPoint& position);
96 void multiProjectMenuRequested(
const QPoint& position,
const QList<QSharedPointer<ProjectGui>> projectGuis);
98 void onSaveAllProjects();
99 void onUnloadAllProjects();
100 void onLoadAllProjects();
101 void onRemoveSelectedProjects();
102 void onDeleteSelectedProjects();
103 void onUnloadAllProjectsExceptSelected();
104 void onEnableFastLoadForSelected(
bool enable);
107 #endif // ABSTRACT_WORKSPACE_GUI_H
Definition: project_manager.h:8
Definition: export_import_helper.h:4
Definition: abstract_workspace_gui.h:18