1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-21 07:09:42 +00:00

Add "open" option in opencs.

This commit is contained in:
Michal Sciubidlo 2013-02-01 00:42:03 +01:00
parent ac62dd050d
commit 492482de7f
7 changed files with 73 additions and 3 deletions

View file

@ -17,7 +17,7 @@ set (OPENCS_SRC
view/world/table.cpp view/world/tablesubview.cpp view/world/subviews.cpp view/world/util.cpp view/world/table.cpp view/world/tablesubview.cpp view/world/subviews.cpp view/world/util.cpp
view/world/dialoguesubview.cpp view/world/dialoguesubview.cpp
view/tools/reportsubview.cpp view/tools/subviews.cpp view/tools/reportsubview.cpp view/tools/subviews.cpp view/tools/opendialog.cpp
) )
set (OPENCS_HDR set (OPENCS_HDR
@ -38,7 +38,7 @@ set (OPENCS_HDR
view/world/table.hpp view/world/tablesubview.hpp view/world/subviews.hpp view/world/util.hpp view/world/table.hpp view/world/tablesubview.hpp view/world/subviews.hpp view/world/util.hpp
view/world/dialoguesubview.hpp view/world/dialoguesubview.hpp
view/tools/reportsubview.hpp view/tools/subviews.hpp view/tools/reportsubview.hpp view/tools/subviews.hpp view/tools/opendialog.hpp
) )
set (OPENCS_US set (OPENCS_US

View file

@ -14,6 +14,8 @@
#include "../tools/subviews.hpp" #include "../tools/subviews.hpp"
#include "../tools/opendialog.hpp"
#include "viewmanager.hpp" #include "viewmanager.hpp"
#include "operations.hpp" #include "operations.hpp"
#include "subview.hpp" #include "subview.hpp"
@ -31,6 +33,10 @@ void CSVDoc::View::setupFileMenu()
QAction *new_ = new QAction (tr ("New"), this); QAction *new_ = new QAction (tr ("New"), this);
connect (new_, SIGNAL (triggered()), this, SIGNAL (newDocumentRequest())); connect (new_, SIGNAL (triggered()), this, SIGNAL (newDocumentRequest()));
file->addAction (new_); file->addAction (new_);
mLoad = new QAction(tr ("&Load"), this);
connect (mLoad, SIGNAL (triggered()), this, SLOT (load()));
file->addAction (mLoad);
mSave = new QAction (tr ("&Save"), this); mSave = new QAction (tr ("&Save"), this);
connect (mSave, SIGNAL (triggered()), this, SLOT (save())); connect (mSave, SIGNAL (triggered()), this, SLOT (save()));
@ -110,7 +116,7 @@ void CSVDoc::View::updateActions()
} }
CSVDoc::View::View (ViewManager& viewManager, CSMDoc::Document *document, int totalViews) CSVDoc::View::View (ViewManager& viewManager, CSMDoc::Document *document, int totalViews)
: mViewManager (viewManager), mDocument (document), mViewIndex (totalViews-1), mViewTotal (totalViews) : mViewManager (viewManager), mDocument (document), mViewIndex (totalViews-1), mViewTotal (totalViews), mOpenDialog(0)
{ {
setDockOptions (QMainWindow::AllowNestedDocks); setDockOptions (QMainWindow::AllowNestedDocks);
@ -205,6 +211,27 @@ void CSVDoc::View::save()
mDocument->save(); mDocument->save();
} }
void CSVDoc::View::load()
{
if (!mOpenDialog) {
mOpenDialog = new OpenDialog(this);
connect(mOpenDialog, SIGNAL(accepted()), this, SLOT(loadNewFiles()));
}
mOpenDialog->show();
mOpenDialog->raise();
mOpenDialog->activateWindow();
}
void CSVDoc::View::loadNewFiles()
{
//FIXME close old files
std::vector<boost::filesystem::path> paths;
mOpenDialog->getFileList(paths);
//FIXME load new files
}
void CSVDoc::View::verify() void CSVDoc::View::verify()
{ {
addSubView (mDocument->verify()); addSubView (mDocument->verify());

View file

@ -9,6 +9,7 @@
#include "subviewfactory.hpp" #include "subviewfactory.hpp"
class QAction; class QAction;
class OpenDialog;
namespace CSMDoc namespace CSMDoc
{ {
@ -36,10 +37,12 @@ namespace CSVDoc
QAction *mUndo; QAction *mUndo;
QAction *mRedo; QAction *mRedo;
QAction *mSave; QAction *mSave;
QAction *mLoad;
QAction *mVerify; QAction *mVerify;
std::vector<QAction *> mEditingActions; std::vector<QAction *> mEditingActions;
Operations *mOperations; Operations *mOperations;
SubViewFactoryManager mSubViewFactory; SubViewFactoryManager mSubViewFactory;
OpenDialog * mOpenDialog;
// not implemented // not implemented
View (const View&); View (const View&);
@ -92,6 +95,8 @@ namespace CSVDoc
void newView(); void newView();
void load();
void loadNewFiles();
void save(); void save();
void verify(); void verify();

View file

@ -451,6 +451,22 @@ bool DataFilesList::setupDataFiles()
return true; return true;
} }
void DataFilesList::getSelectedFiles(std::vector<boost::filesystem::path>& paths)
{
QStringList masterPaths = mMastersModel->checkedItemsPaths();
foreach (const QString &path, masterPaths)
{
paths.push_back(path.toStdString());
cerr << path.toStdString() << endl;
}
QStringList pluginPaths = mPluginsModel->checkedItemsPaths();
foreach (const QString &path, pluginPaths)
{
paths.push_back(path.toStdString());
cerr << path.toStdString() << endl;
}
}
void DataFilesList::writeConfig(QString profile) void DataFilesList::writeConfig(QString profile)
{ {
// Don't overwrite the config if no masters are found // Don't overwrite the config if no masters are found

View file

@ -32,6 +32,7 @@ public:
void writeConfig(QString profile = QString()); void writeConfig(QString profile = QString());
bool showDataFilesWarning(); bool showDataFilesWarning();
bool setupDataFiles(); bool setupDataFiles();
void getSelectedFiles(std::vector<boost::filesystem::path>& paths);
public slots: public slots:
void setCheckState(QModelIndex index); void setCheckState(QModelIndex index);

View file

@ -292,6 +292,7 @@ void DataFilesModel::addMasters(const QString &path)
EsmFile *file = new EsmFile(master); EsmFile *file = new EsmFile(master);
file->setDates(info.lastModified(), info.lastRead()); file->setDates(info.lastModified(), info.lastRead());
file->setPath(info.absoluteFilePath());
// Add the master to the table // Add the master to the table
if (findItem(master) == 0) if (findItem(master) == 0)
@ -427,6 +428,25 @@ QStringList DataFilesModel::checkedItems()
return list; return list;
} }
QStringList DataFilesModel::checkedItemsPaths()
{
QStringList list;
QList<EsmFile *>::ConstIterator it;
QList<EsmFile *>::ConstIterator itEnd = mFiles.constEnd();
int i = 0;
for (it = mFiles.constBegin(); it != itEnd; ++it) {
EsmFile *file = item(i);
++i;
if (mCheckStates[file->fileName()] == Qt::Checked && mAvailableFiles.contains(file->fileName()))
list << file->path();
}
return list;
}
void DataFilesModel::uncheckAll() void DataFilesModel::uncheckAll()
{ {
emit layoutAboutToBeChanged(); emit layoutAboutToBeChanged();

View file

@ -43,6 +43,7 @@ public:
QStringList checkedItems(); QStringList checkedItems();
QStringList uncheckedItems(); QStringList uncheckedItems();
QStringList checkedItemsPaths();
Qt::CheckState checkState(const QModelIndex &index); Qt::CheckState checkState(const QModelIndex &index);
void setCheckState(const QModelIndex &index, Qt::CheckState state); void setCheckState(const QModelIndex &index, Qt::CheckState state);