- Removed Package::Project
[dashstudio.git] / src / shell / mainwindow.h
blobf10b002615470a670cda9ff8cd2a1eace3cdb924
1 /***************************************************************************
2 * Copyright (C) 2007 by David Cuadrado *
3 * krawek@gmail.com *
4 * *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
9 * *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
14 * *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19 ***************************************************************************/
21 #ifndef MAINWINDOW_H
22 #define MAINWINDOW_H
24 #include <ideality/stackedmainwindow.h>
25 #include <dgui/actionmanager.h>
26 #include <dash/dash.h>
27 #include <components/colorpalette/brushsynchronizer.h>
29 #include <QTimer>
31 class DocumentViewer;
32 class ProjectManager;
34 namespace Dash {
35 namespace Component {
36 class Manager;
40 namespace YAMF {
41 namespace Gui {
42 class ProjectView;
46 /**
47 * @author David Cuadrado <krawek@gmail.com>
49 class MainWindow : public Ideality::StackedMainWindow
51 Q_OBJECT;
53 public:
54 MainWindow(QWidget *parent = 0);
55 ~MainWindow();
57 private:
58 void setupFileActions();
59 void setupEditActions();
60 void setupMenu();
61 void setupComponents();
63 private slots: // Project
64 void newProject();
65 bool openProject();
66 bool openProject(const QString &file);
67 void openCollaborativeProject();
68 void exportProjectToServer();
69 void saveProject();
70 void saveProjectAs();
71 void autoSaveProject();
72 bool closeProject();
73 void exportProject();
75 void loadLastProject();
78 private slots: // Edit
79 void configure();
81 private slots: // Help
82 void showHelp();
83 void aboutDash();
85 private slots:
86 void changePerspective( QAction *action );
87 void connectToPaintArea(QObject *object);
88 void saveSettings();
89 void loadSettings();
91 protected:
92 virtual void closeEvent(QCloseEvent *e);
94 private:
95 ProjectManager *m_projectManager;
96 DGui::ActionManager *m_actionManager;
97 DocumentViewer *m_viewer;
99 Dash::Component::Manager *m_componentManager;
100 YAMF::Gui::ProjectView *m_projectView;
102 QString m_currentFile;
104 QTimer m_saver;
105 Component::BrushSynchronizer *m_brushSynchronizer;
108 #endif