mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-31 21:45:33 +00:00
Merge branch 'startup'
This commit is contained in:
commit
2d9e9fe3e1
9 changed files with 155 additions and 27 deletions
|
@ -14,9 +14,12 @@ CS::Editor::Editor() : mViewManager (mDocumentManager)
|
|||
|
||||
connect (&mViewManager, SIGNAL (newDocumentRequest ()), this, SLOT (createDocument ()));
|
||||
connect (&mViewManager, SIGNAL (loadDocumentRequest ()), this, SLOT (loadDocument ()));
|
||||
connect (&mViewManager, SIGNAL (editSettingsRequest()), this, SLOT (showSettings ()));
|
||||
|
||||
connect (&mStartup, SIGNAL (createDocument()), this, SLOT (createDocument ()));
|
||||
connect (&mStartup, SIGNAL (createGame()), this, SLOT (createDocument ())); /// \todo split
|
||||
connect (&mStartup, SIGNAL (createAddon()), this, SLOT (createDocument ()));
|
||||
connect (&mStartup, SIGNAL (loadDocument()), this, SLOT (loadDocument ()));
|
||||
connect (&mStartup, SIGNAL (editConfig()), this, SLOT (showSettings ()));
|
||||
|
||||
connect (&mFileDialog, SIGNAL(openFiles()), this, SLOT(openFiles()));
|
||||
connect (&mFileDialog, SIGNAL(createNewFile()), this, SLOT(createNewFile()));
|
||||
|
@ -69,7 +72,7 @@ void CS::Editor::setupDataFiles()
|
|||
//load the settings into the userSettings instance.
|
||||
const QString settingFileName = "opencs.cfg";
|
||||
CSMSettings::UserSettings::instance().loadSettings(settingFileName);
|
||||
|
||||
|
||||
}
|
||||
|
||||
void CS::Editor::createDocument()
|
||||
|
@ -126,6 +129,15 @@ void CS::Editor::showStartup()
|
|||
mStartup.activateWindow();
|
||||
}
|
||||
|
||||
void CS::Editor::showSettings()
|
||||
{
|
||||
if (mSettings.isHidden())
|
||||
mSettings.show();
|
||||
|
||||
mSettings.raise();
|
||||
mSettings.activateWindow();
|
||||
}
|
||||
|
||||
bool CS::Editor::makeIPCServer()
|
||||
{
|
||||
mServer = new QLocalServer(this);
|
||||
|
|
|
@ -9,12 +9,15 @@
|
|||
#ifndef Q_MOC_RUN
|
||||
#include <components/files/configurationmanager.hpp>
|
||||
#endif
|
||||
|
||||
#include "model/settings/usersettings.hpp"
|
||||
#include "model/doc/documentmanager.hpp"
|
||||
|
||||
#include "view/doc/viewmanager.hpp"
|
||||
#include "view/doc/startup.hpp"
|
||||
#include "view/doc/filedialog.hpp"
|
||||
#include "model/settings/usersettings.hpp"
|
||||
|
||||
#include "view/settings/usersettingsdialog.hpp"
|
||||
|
||||
namespace CS
|
||||
{
|
||||
|
@ -26,6 +29,7 @@ namespace CS
|
|||
CSMDoc::DocumentManager mDocumentManager;
|
||||
CSVDoc::ViewManager mViewManager;
|
||||
CSVDoc::StartupDialogue mStartup;
|
||||
CSVSettings::UserSettingsDialog mSettings;
|
||||
FileDialog mFileDialog;
|
||||
|
||||
Files::ConfigurationManager mCfgMgr;
|
||||
|
@ -55,6 +59,8 @@ namespace CS
|
|||
|
||||
void showStartup();
|
||||
|
||||
void showSettings();
|
||||
|
||||
private:
|
||||
|
||||
QString mIpcServerName;
|
||||
|
|
|
@ -3,21 +3,107 @@
|
|||
|
||||
#include <QApplication>
|
||||
#include <QDesktopWidget>
|
||||
#include <QPushButton>
|
||||
#include <QVBoxLayout>
|
||||
#include <QHBoxLayout>
|
||||
#include <QRect>
|
||||
#include <QGridLayout>
|
||||
#include <QLabel>
|
||||
#include <QIcon>
|
||||
#include <QPushButton>
|
||||
|
||||
CSVDoc::StartupDialogue::StartupDialogue()
|
||||
QPushButton *CSVDoc::StartupDialogue::addButton (const QString& label, const QIcon& icon)
|
||||
{
|
||||
QHBoxLayout *layout = new QHBoxLayout (this);
|
||||
int column = mColumn++;
|
||||
|
||||
QPushButton *createDocument = new QPushButton ("new", this);
|
||||
connect (createDocument, SIGNAL (clicked()), this, SIGNAL (createDocument()));
|
||||
layout->addWidget (createDocument);
|
||||
QPushButton *button = new QPushButton (this);
|
||||
|
||||
QPushButton *loadDocument = new QPushButton ("load", this);
|
||||
button->setIcon (QIcon (icon));
|
||||
|
||||
button->setSizePolicy (QSizePolicy (QSizePolicy::Preferred, QSizePolicy::Preferred));
|
||||
|
||||
mLayout->addWidget (button, 0, column);
|
||||
|
||||
mLayout->addWidget (new QLabel (label, this), 1, column, Qt::AlignCenter);
|
||||
|
||||
int width = mLayout->itemAtPosition (1, column)->widget()->sizeHint().width();
|
||||
|
||||
if (width>mWidth)
|
||||
mWidth = width;
|
||||
|
||||
return button;
|
||||
}
|
||||
|
||||
|
||||
QWidget *CSVDoc::StartupDialogue::createButtons()
|
||||
{
|
||||
QWidget *widget = new QWidget (this);
|
||||
|
||||
mLayout = new QGridLayout (widget);
|
||||
|
||||
/// \todo add icons
|
||||
QPushButton *createGame = addButton ("Create A New Game", QIcon (""));
|
||||
connect (createGame, SIGNAL (clicked()), this, SIGNAL (createGame()));
|
||||
|
||||
QPushButton *createAddon = addButton ("Create A New Addon", QIcon (""));
|
||||
connect (createAddon, SIGNAL (clicked()), this, SIGNAL (createAddon()));
|
||||
|
||||
QPushButton *loadDocument = addButton ("Edit A Content File", QIcon (""));
|
||||
connect (loadDocument, SIGNAL (clicked()), this, SIGNAL (loadDocument()));
|
||||
layout->addWidget (loadDocument);
|
||||
|
||||
for (int i=0; i<3; ++i)
|
||||
mLayout->setColumnMinimumWidth (i, mWidth);
|
||||
|
||||
mLayout->setRowMinimumHeight (0, mWidth);
|
||||
|
||||
mLayout->setSizeConstraint (QLayout::SetMinimumSize);
|
||||
mLayout->setHorizontalSpacing (32);
|
||||
|
||||
mLayout->setContentsMargins (16, 16, 16, 8);
|
||||
|
||||
loadDocument->setIconSize (QSize (mWidth, mWidth));
|
||||
createGame->setIconSize (QSize (mWidth, mWidth));
|
||||
createAddon->setIconSize (QSize (mWidth, mWidth));
|
||||
|
||||
widget->setLayout (mLayout);
|
||||
|
||||
return widget;
|
||||
}
|
||||
|
||||
#include <QStyle>
|
||||
QWidget *CSVDoc::StartupDialogue::createTools()
|
||||
{
|
||||
QWidget *widget = new QWidget (this);
|
||||
|
||||
QHBoxLayout *layout = new QHBoxLayout (widget);
|
||||
layout->setDirection (QBoxLayout::RightToLeft);
|
||||
layout->setContentsMargins (4, 4, 4, 4);
|
||||
|
||||
QPushButton *config = new QPushButton (widget);
|
||||
|
||||
config->setSizePolicy (QSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed));
|
||||
config->setIcon (style()->standardIcon (QStyle::SP_FileDialogStart)); /// \todo replace icon
|
||||
|
||||
layout->addWidget (config);
|
||||
|
||||
layout->addWidget (new QWidget, 1); // dummy icon; stops buttons from taking all the space
|
||||
|
||||
widget->setLayout (layout);
|
||||
|
||||
connect (config, SIGNAL (clicked()), this, SIGNAL (editConfig()));
|
||||
|
||||
return widget;
|
||||
}
|
||||
|
||||
CSVDoc::StartupDialogue::StartupDialogue() : mWidth (0), mColumn (0)
|
||||
{
|
||||
setWindowTitle ("Open CS");
|
||||
|
||||
QVBoxLayout *layout = new QVBoxLayout (this);
|
||||
|
||||
layout->setContentsMargins (0, 0, 0, 0);
|
||||
|
||||
layout->addWidget (createButtons());
|
||||
layout->addWidget (createTools());
|
||||
|
||||
setLayout (layout);
|
||||
|
||||
|
|
|
@ -3,21 +3,43 @@
|
|||
|
||||
#include <QWidget>
|
||||
|
||||
class QGridLayout;
|
||||
class QString;
|
||||
class QPushButton;
|
||||
class QWidget;
|
||||
class QIcon;
|
||||
|
||||
namespace CSVDoc
|
||||
{
|
||||
class StartupDialogue : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
|
||||
int mWidth;
|
||||
int mColumn;
|
||||
QGridLayout *mLayout;
|
||||
|
||||
QPushButton *addButton (const QString& label, const QIcon& icon);
|
||||
|
||||
QWidget *createButtons();
|
||||
|
||||
QWidget *createTools();
|
||||
|
||||
public:
|
||||
|
||||
StartupDialogue();
|
||||
|
||||
signals:
|
||||
|
||||
void createDocument();
|
||||
void createGame();
|
||||
|
||||
void createAddon();
|
||||
|
||||
void loadDocument();
|
||||
|
||||
void editConfig();
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -67,7 +67,7 @@ void CSVDoc::View::setupEditMenu()
|
|||
edit->addAction (mRedo);
|
||||
|
||||
QAction *userSettings = new QAction (tr ("&Preferences"), this);
|
||||
connect (userSettings, SIGNAL (triggered()), this, SLOT (showUserSettings()));
|
||||
connect (userSettings, SIGNAL (triggered()), this, SIGNAL (editSettingsRequest()));
|
||||
edit->addAction (userSettings);
|
||||
}
|
||||
|
||||
|
@ -415,13 +415,6 @@ void CSVDoc::View::exit()
|
|||
emit exitApplicationRequest (this);
|
||||
}
|
||||
|
||||
void CSVDoc::View::showUserSettings()
|
||||
{
|
||||
CSVSettings::UserSettingsDialog *settingsDialog = new CSVSettings::UserSettingsDialog(this);
|
||||
|
||||
settingsDialog->show();
|
||||
}
|
||||
|
||||
void CSVDoc::View::resizeViewWidth (int width)
|
||||
{
|
||||
if (width >= 0)
|
||||
|
|
|
@ -112,6 +112,8 @@ namespace CSVDoc
|
|||
|
||||
void exitApplicationRequest (CSVDoc::View *view);
|
||||
|
||||
void editSettingsRequest();
|
||||
|
||||
public slots:
|
||||
|
||||
void addSubView (const CSMWorld::UniversalId& id);
|
||||
|
@ -160,8 +162,6 @@ namespace CSVDoc
|
|||
|
||||
void addFiltersSubView();
|
||||
|
||||
void showUserSettings();
|
||||
|
||||
void toggleShowStatusBar (bool show);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -114,6 +114,7 @@ CSVDoc::View *CSVDoc::ViewManager::addView (CSMDoc::Document *document)
|
|||
|
||||
connect (view, SIGNAL (newDocumentRequest ()), this, SIGNAL (newDocumentRequest()));
|
||||
connect (view, SIGNAL (loadDocumentRequest ()), this, SIGNAL (loadDocumentRequest()));
|
||||
connect (view, SIGNAL (editSettingsRequest()), this, SIGNAL (editSettingsRequest()));
|
||||
|
||||
updateIndices();
|
||||
|
||||
|
|
|
@ -61,6 +61,8 @@ namespace CSVDoc
|
|||
|
||||
void closeMessageBox();
|
||||
|
||||
void editSettingsRequest();
|
||||
|
||||
public slots:
|
||||
|
||||
void exitApplication (CSVDoc::View *view);
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#include "usersettingsdialog.hpp"
|
||||
|
||||
#include <boost/filesystem/path.hpp>
|
||||
|
||||
#include <QApplication>
|
||||
#include <QDesktopWidget>
|
||||
#include <QWidget>
|
||||
|
@ -9,14 +11,14 @@
|
|||
#include <QFile>
|
||||
#include <QPushButton>
|
||||
#include <QDockWidget>
|
||||
|
||||
#include <QGridLayout>
|
||||
#include <QApplication>
|
||||
#include <QDesktopWidget>
|
||||
|
||||
#include "../../model/settings/support.hpp"
|
||||
|
||||
#include "datadisplayformatpage.hpp"
|
||||
#include "windowpage.hpp"
|
||||
|
||||
#include "../../model/settings/support.hpp"
|
||||
#include <boost/filesystem/path.hpp>
|
||||
#include "settingwidget.hpp"
|
||||
|
||||
CSVSettings::UserSettingsDialog::UserSettingsDialog(QMainWindow *parent) :
|
||||
|
@ -29,7 +31,11 @@ CSVSettings::UserSettingsDialog::UserSettingsDialog(QMainWindow *parent) :
|
|||
connect (mListWidget,
|
||||
SIGNAL (currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
|
||||
this,
|
||||
SLOT (slotChangePage (QListWidgetItem*, QListWidgetItem*)));
|
||||
SLOT (slotChangePage (QListWidgetItem*, QListWidgetItem*)));
|
||||
|
||||
QRect scr = QApplication::desktop()->screenGeometry();
|
||||
QRect rect = geometry();
|
||||
move (scr.center().x() - rect.center().x(), scr.center().y() - rect.center().y());
|
||||
}
|
||||
|
||||
CSVSettings::UserSettingsDialog::~UserSettingsDialog()
|
||||
|
|
Loading…
Reference in a new issue