mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-02-15 17:39:40 +00:00
closeAllWindows() to ensure ViewManager::closeRequest is called on the last open window. Exit will close all open windows but the last one in cases of active save operation or modified file.
64 lines
1.5 KiB
C++
64 lines
1.5 KiB
C++
|
|
#include "editor.hpp"
|
|
|
|
#include <sstream>
|
|
|
|
#include <QtGui/QApplication>
|
|
|
|
#include "model/doc/document.hpp"
|
|
#include "model/world/data.hpp"
|
|
|
|
CS::Editor::Editor() : mViewManager (mDocumentManager), mNewDocumentIndex (0)
|
|
{
|
|
connect (&mViewManager, SIGNAL (newDocumentRequest ()), this, SLOT (createDocument ()));
|
|
connect (&mViewManager, SIGNAL (loadDocumentRequest ()), this, SLOT (loadDocument ()));
|
|
|
|
connect (&mStartup, SIGNAL (createDocument()), this, SLOT (createDocument ()));
|
|
connect (&mStartup, SIGNAL (loadDocument()), this, SLOT (loadDocument ()));
|
|
|
|
connect (&mOpenDialog, SIGNAL(accepted()), this, SLOT(openFiles()));
|
|
}
|
|
|
|
void CS::Editor::createDocument()
|
|
{
|
|
mStartup.hide();
|
|
|
|
/// \todo open the ESX picker instead
|
|
|
|
std::ostringstream stream;
|
|
|
|
stream << "NewDocument" << (++mNewDocumentIndex);
|
|
|
|
std::vector<boost::filesystem::path> files;
|
|
files.push_back (stream.str());
|
|
|
|
CSMDoc::Document *document = mDocumentManager.addDocument (files, true);
|
|
|
|
mViewManager.addView (document);
|
|
}
|
|
|
|
void CS::Editor::loadDocument()
|
|
{
|
|
mStartup.hide();
|
|
mOpenDialog.show();
|
|
mOpenDialog.raise();
|
|
mOpenDialog.activateWindow();
|
|
}
|
|
|
|
void CS::Editor::openFiles()
|
|
{
|
|
std::vector<boost::filesystem::path> paths;
|
|
mOpenDialog.getFileList(paths);
|
|
CSMDoc::Document *document = mDocumentManager.addDocument(paths, false);
|
|
|
|
mViewManager.addView (document);
|
|
}
|
|
|
|
int CS::Editor::run()
|
|
{
|
|
mStartup.show();
|
|
|
|
QApplication::setQuitOnLastWindowClosed (true);
|
|
|
|
return QApplication::exec();
|
|
}
|