1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-25 06:35:30 +00:00
OpenMW/apps/opencs/view/doc/viewmanager.hpp

98 lines
2.3 KiB
C++
Raw Normal View History

2012-11-22 13:30:02 +01:00
#ifndef CSV_DOC_VIEWMANAGER_H
#define CSV_DOC_VIEWMANAGER_H
#include <vector>
#include <QObject>
2014-04-29 14:17:25 +02:00
#include "loader.hpp"
2012-11-22 13:30:02 +01:00
namespace CSMDoc
{
class Document;
2012-11-22 14:10:23 +01:00
class DocumentManager;
2012-11-22 13:30:02 +01:00
}
2013-02-10 17:21:25 +01:00
namespace CSVWorld
{
class CommandDelegateFactoryCollection;
}
namespace CSMWorld
{
class UniversalId;
}
2012-11-22 13:30:02 +01:00
namespace CSVDoc
{
class View;
class ViewManager : public QObject
2012-11-22 13:30:02 +01:00
{
Q_OBJECT
2012-11-22 14:10:23 +01:00
CSMDoc::DocumentManager& mDocumentManager;
2012-11-22 13:30:02 +01:00
std::vector<View *> mViews;
2013-02-10 17:21:25 +01:00
CSVWorld::CommandDelegateFactoryCollection *mDelegateFactories;
bool mExitOnSaveStateChange;
2013-03-06 06:41:33 -06:00
bool mUserWarned;
2014-04-29 14:17:25 +02:00
Loader mLoader;
2012-11-22 13:30:02 +01:00
// not implemented
ViewManager (const ViewManager&);
ViewManager& operator= (const ViewManager&);
2012-11-22 15:09:04 +01:00
void updateIndices();
bool notifySaveOnClose (View *view = 0);
bool showModifiedDocumentMessageBox (View *view);
bool showSaveInProgressMessageBox (View *view);
2014-09-10 14:40:41 +10:00
bool removeDocument(View *view);
2012-11-22 15:09:04 +01:00
2012-11-22 13:30:02 +01:00
public:
2012-11-22 14:10:23 +01:00
ViewManager (CSMDoc::DocumentManager& documentManager);
2012-11-22 13:30:02 +01:00
virtual ~ViewManager();
2012-11-22 13:30:02 +01:00
View *addView (CSMDoc::Document *document);
///< The ownership of the returned view is not transferred.
View *addView (CSMDoc::Document *document, const CSMWorld::UniversalId& id, const std::string& hint);
2012-11-22 14:10:23 +01:00
int countViews (const CSMDoc::Document *document) const;
///< Return number of views for \a document.
bool closeRequest (View *view);
2014-09-09 21:09:37 +10:00
void removeDocAndView (CSMDoc::Document *document);
2012-11-22 14:10:23 +01:00
2012-11-23 14:05:49 +01:00
signals:
void newGameRequest();
void newAddonRequest();
2012-11-23 14:05:49 +01:00
2013-02-02 16:14:58 +01:00
void loadDocumentRequest();
2013-03-06 06:41:33 -06:00
void closeMessageBox();
void editSettingsRequest();
void mergeDocument (CSMDoc::Document *document);
public slots:
void exitApplication (CSVDoc::View *view);
private slots:
2012-11-22 13:30:02 +01:00
void documentStateChanged (int state, CSMDoc::Document *document);
2012-11-23 10:25:34 +01:00
2012-11-23 12:20:35 +01:00
void progress (int current, int max, int type, int threads, CSMDoc::Document *document);
2013-03-06 06:41:33 -06:00
void onExitWarningHandler(int state, CSMDoc::Document* document);
2012-11-22 13:30:02 +01:00
};
}
2013-03-02 07:57:41 -06:00
#endif