Merge branch 'startup'

actorid
Marc Zinnschlag 11 years ago
commit 2d9e9fe3e1

@ -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>
QPushButton *CSVDoc::StartupDialogue::addButton (const QString& label, const QIcon& icon)
{
int column = mColumn++;
QPushButton *button = new QPushButton (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();
CSVDoc::StartupDialogue::StartupDialogue()
if (width>mWidth)
mWidth = width;
return button;
}
QWidget *CSVDoc::StartupDialogue::createButtons()
{
QHBoxLayout *layout = new QHBoxLayout (this);
QWidget *widget = new QWidget (this);
mLayout = new QGridLayout (widget);
QPushButton *createDocument = new QPushButton ("new", this);
connect (createDocument, SIGNAL (clicked()), this, SIGNAL (createDocument()));
layout->addWidget (createDocument);
/// \todo add icons
QPushButton *createGame = addButton ("Create A New Game", QIcon (""));
connect (createGame, SIGNAL (clicked()), this, SIGNAL (createGame()));
QPushButton *loadDocument = new QPushButton ("load", this);
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…
Cancel
Save