Changed: #1206 Update sheet builder plugin. Now plugin is using ICore for reading and writing settings, and it adds action in menu Sheet.
This commit is contained in:
parent
4b7371ea62
commit
6297bfbad3
12 changed files with 561 additions and 573 deletions
|
@ -43,6 +43,8 @@ const char * const M_TOOLS = "ObjectViewerQt.Menu.Tools";
|
||||||
const char * const M_WINDOW = "ObjectViewerQt.Menu.Window";
|
const char * const M_WINDOW = "ObjectViewerQt.Menu.Window";
|
||||||
const char * const M_HELP = "ObjectViewerQt.Menu.Help";
|
const char * const M_HELP = "ObjectViewerQt.Menu.Help";
|
||||||
|
|
||||||
|
const char * const M_SHEET = "ObjectViewerQt.Menu.Sheet";
|
||||||
|
|
||||||
//actions
|
//actions
|
||||||
const char * const NEW = "ObjectViewerQt.New";
|
const char * const NEW = "ObjectViewerQt.New";
|
||||||
const char * const OPEN = "ObjectViewerQt.Open";
|
const char * const OPEN = "ObjectViewerQt.Open";
|
||||||
|
|
|
@ -58,12 +58,11 @@ bool CorePlugin::initialize(ExtensionSystem::IPluginManager *pluginManager, QStr
|
||||||
_plugMan = pluginManager;
|
_plugMan = pluginManager;
|
||||||
|
|
||||||
_mainWindow = new MainWindow(pluginManager);
|
_mainWindow = new MainWindow(pluginManager);
|
||||||
/* if (QtWin::isCompositionEnabled())
|
/*if (QtWin::isCompositionEnabled())
|
||||||
{
|
{
|
||||||
QtWin::extendFrameIntoClientArea(_mainWindow);
|
QtWin::extendFrameIntoClientArea(_mainWindow);
|
||||||
_mainWindow->setContentsMargins(0, 0, 0, 0);
|
_mainWindow->setContentsMargins(0, 0, 0, 0);
|
||||||
}
|
}*/
|
||||||
*/
|
|
||||||
bool success = _mainWindow->initialize(errorString);
|
bool success = _mainWindow->initialize(errorString);
|
||||||
CSearchPathsSettingsPage *serchPathPage = new CSearchPathsSettingsPage(this);
|
CSearchPathsSettingsPage *serchPathPage = new CSearchPathsSettingsPage(this);
|
||||||
serchPathPage->applySearchPaths();
|
serchPathPage->applySearchPaths();
|
||||||
|
|
|
@ -231,8 +231,10 @@ void MainWindow::createMenus()
|
||||||
m_toolsMenu = menuBar()->addMenu(tr("&Tools"));
|
m_toolsMenu = menuBar()->addMenu(tr("&Tools"));
|
||||||
menuManager()->registerMenu(m_toolsMenu, Constants::M_TOOLS);
|
menuManager()->registerMenu(m_toolsMenu, Constants::M_TOOLS);
|
||||||
|
|
||||||
|
m_sheetMenu = m_toolsMenu->addMenu(tr("&Sheet"));
|
||||||
|
menuManager()->registerMenu(m_sheetMenu, Constants::M_SHEET);
|
||||||
|
|
||||||
m_toolsMenu->addSeparator();
|
// m_toolsMenu->addSeparator();
|
||||||
|
|
||||||
m_toolsMenu->addAction(m_settingsAction);
|
m_toolsMenu->addAction(m_settingsAction);
|
||||||
|
|
||||||
|
|
|
@ -97,6 +97,8 @@ private:
|
||||||
QMenu *m_toolsMenu;
|
QMenu *m_toolsMenu;
|
||||||
QMenu *m_helpMenu;
|
QMenu *m_helpMenu;
|
||||||
|
|
||||||
|
QMenu *m_sheetMenu;
|
||||||
|
|
||||||
QAction *m_openAction;
|
QAction *m_openAction;
|
||||||
QAction *m_exitAction;
|
QAction *m_exitAction;
|
||||||
QAction *m_settingsAction;
|
QAction *m_settingsAction;
|
||||||
|
|
|
@ -21,7 +21,7 @@ SOURCE_GROUP("OVQT Extension System" FILES ${OVQT_EXT_SYS_SRC})
|
||||||
|
|
||||||
ADD_LIBRARY(ovqt_plugin_sheet_builder MODULE ${SRC} ${OVQT_PLUG_SHEET_BUILDER_MOC_SRC} ${OVQT_EXT_SYS_SRC})
|
ADD_LIBRARY(ovqt_plugin_sheet_builder MODULE ${SRC} ${OVQT_PLUG_SHEET_BUILDER_MOC_SRC} ${OVQT_EXT_SYS_SRC})
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(ovqt_plugin_sheet_builder nelmisc ${QT_LIBRARIES})
|
TARGET_LINK_LIBRARIES(ovqt_plugin_sheet_builder ovqt_plugin_core nelmisc ${QT_LIBRARIES})
|
||||||
|
|
||||||
NL_DEFAULT_PROPS(ovqt_plugin_sheet_builder "NeL, Tools, 3D: Object Viewer Qt Plugin: Sheet builder")
|
NL_DEFAULT_PROPS(ovqt_plugin_sheet_builder "NeL, Tools, 3D: Object Viewer Qt Plugin: Sheet builder")
|
||||||
NL_ADD_RUNTIME_FLAGS(ovqt_plugin_sheet_builder)
|
NL_ADD_RUNTIME_FLAGS(ovqt_plugin_sheet_builder)
|
||||||
|
|
|
@ -14,8 +14,18 @@
|
||||||
// You should have received a copy of the GNU Affero General Public License
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
// Project includes
|
||||||
#include "ovqt_sheet_builder.h"
|
#include "ovqt_sheet_builder.h"
|
||||||
|
#include "sheetbuilderdialog.h"
|
||||||
|
#include "sheetbuilderconfgdialog.h"
|
||||||
|
#include "../core/icore.h"
|
||||||
|
#include "../core/imenu_manager.h"
|
||||||
|
#include "../core/core_constants.h"
|
||||||
|
|
||||||
|
// NeL includes
|
||||||
|
#include <nel/misc/debug.h>
|
||||||
|
|
||||||
|
// Qt includes
|
||||||
#include <QtCore/QObject>
|
#include <QtCore/QObject>
|
||||||
#include <QtGui/QMessageBox>
|
#include <QtGui/QMessageBox>
|
||||||
#include <QtGui/QMainWindow>
|
#include <QtGui/QMainWindow>
|
||||||
|
@ -23,47 +33,29 @@
|
||||||
#include <QtGui/QAction>
|
#include <QtGui/QAction>
|
||||||
#include <QtGui/QMenuBar>
|
#include <QtGui/QMenuBar>
|
||||||
|
|
||||||
#include "../../extension_system/iplugin_spec.h"
|
|
||||||
|
|
||||||
#include "nel/misc/debug.h"
|
|
||||||
#include "sheetbuilderdialog.h"
|
|
||||||
#include "sheetbuilderconfgdialog.h"
|
|
||||||
|
|
||||||
using namespace Plugin;
|
using namespace Plugin;
|
||||||
|
|
||||||
bool SheetBuilderPlugin::initialize(ExtensionSystem::IPluginManager *pluginManager, QString *errorString)
|
bool SheetBuilderPlugin::initialize(ExtensionSystem::IPluginManager *pluginManager, QString *errorString)
|
||||||
{
|
{
|
||||||
Q_UNUSED(errorString);
|
Q_UNUSED(errorString);
|
||||||
_plugMan = pluginManager;
|
_plugMan = pluginManager;
|
||||||
QMainWindow *wnd = qobject_cast<QMainWindow *>(objectByName("CMainWindow"));
|
|
||||||
if (!wnd)
|
|
||||||
{
|
|
||||||
*errorString = tr("Not found MainWindow Object Viewer Qt.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
QMenu *toolsMenu = qobject_cast<QMenu *>(objectByName("ovqt.Menu.Tools"));
|
|
||||||
if (!toolsMenu)
|
|
||||||
{
|
|
||||||
*errorString = tr("Not found QMenu Tools.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SheetBuilderPlugin::extensionsInitialized()
|
void SheetBuilderPlugin::extensionsInitialized()
|
||||||
{
|
{
|
||||||
QMenu *toolsMenu = qobject_cast<QMenu *>(objectByName("ovqt.Menu.Tools"));
|
Core::IMenuManager *menuManager = Core::ICore::instance()->menuManager();
|
||||||
nlassert(toolsMenu);
|
|
||||||
|
|
||||||
toolsMenu->addSeparator();
|
QMenu *sheetMenu = menuManager->menu(Core::Constants::M_SHEET);
|
||||||
|
QAction *sheetBuilderAction = sheetMenu->addAction(tr("Sheet builder"));
|
||||||
QAction *actBuilder = toolsMenu->addAction("Sheet builder");
|
menuManager->registerAction(sheetBuilderAction, "SheetBuilder");
|
||||||
connect(actBuilder, SIGNAL(triggered()), this, SLOT(execBuilderDialog()));
|
connect(sheetBuilderAction, SIGNAL(triggered()), this, SLOT(execBuilderDialog()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SheetBuilderPlugin::execBuilderDialog()
|
void SheetBuilderPlugin::execBuilderDialog()
|
||||||
{
|
{
|
||||||
QMainWindow *wnd = qobject_cast<QMainWindow *>(objectByName("CMainWindow"));
|
QMainWindow *wnd = Core::ICore::instance()->mainWindow();
|
||||||
nlassert(wnd);
|
nlassert(wnd);
|
||||||
|
|
||||||
SheetBuilderDialog dlg(wnd);
|
SheetBuilderDialog dlg(wnd);
|
||||||
|
@ -100,25 +92,11 @@ QString SheetBuilderPlugin::description() const
|
||||||
return "make_sheet_id equivalent";
|
return "make_sheet_id equivalent";
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<QString> SheetBuilderPlugin::dependencies() const
|
QStringList SheetBuilderPlugin::dependencies() const
|
||||||
{
|
{
|
||||||
return QList<QString>();
|
QStringList list;
|
||||||
}
|
list.append(Core::Constants::OVQT_CORE_PLUGIN);
|
||||||
|
return list;
|
||||||
QObject* SheetBuilderPlugin::objectByName(const QString &name) const
|
|
||||||
{
|
|
||||||
Q_FOREACH (QObject *qobj, _plugMan->allObjects())
|
|
||||||
if (qobj->objectName() == name)
|
|
||||||
return qobj;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
ExtensionSystem::IPluginSpec *SheetBuilderPlugin::pluginByName(const QString &name) const
|
|
||||||
{
|
|
||||||
Q_FOREACH (ExtensionSystem::IPluginSpec *spec, _plugMan->plugins())
|
|
||||||
if (spec->name() == name)
|
|
||||||
return spec;
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_EXPORT_PLUGIN(SheetBuilderPlugin)
|
Q_EXPORT_PLUGIN(SheetBuilderPlugin)
|
||||||
|
|
|
@ -25,22 +25,22 @@
|
||||||
|
|
||||||
namespace NLMISC
|
namespace NLMISC
|
||||||
{
|
{
|
||||||
class CLibraryContext;
|
class CLibraryContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace ExtensionSystem
|
namespace ExtensionSystem
|
||||||
{
|
{
|
||||||
class IPluginSpec;
|
class IPluginSpec;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace Plugin
|
namespace Plugin
|
||||||
{
|
{
|
||||||
|
|
||||||
class SheetBuilderPlugin : public QObject, public ExtensionSystem::IPlugin
|
class SheetBuilderPlugin : public QObject, public ExtensionSystem::IPlugin
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_INTERFACES(ExtensionSystem::IPlugin)
|
Q_INTERFACES(ExtensionSystem::IPlugin)
|
||||||
public:
|
public:
|
||||||
bool initialize(ExtensionSystem::IPluginManager *pluginManager, QString *errorString);
|
bool initialize(ExtensionSystem::IPluginManager *pluginManager, QString *errorString);
|
||||||
void extensionsInitialized();
|
void extensionsInitialized();
|
||||||
|
|
||||||
|
@ -50,23 +50,20 @@ namespace Plugin
|
||||||
QString version() const;
|
QString version() const;
|
||||||
QString vendor() const;
|
QString vendor() const;
|
||||||
QString description() const;
|
QString description() const;
|
||||||
QList<QString> dependencies() const;
|
QStringList dependencies() const;
|
||||||
|
|
||||||
QObject *objectByName(const QString &name) const;
|
|
||||||
ExtensionSystem::IPluginSpec *pluginByName(const QString &name) const;
|
|
||||||
|
|
||||||
void buildSheet(bool clean);
|
void buildSheet(bool clean);
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void execBuilderDialog();
|
void execBuilderDialog();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
NLMISC::CLibraryContext *_LibContext;
|
NLMISC::CLibraryContext *_LibContext;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ExtensionSystem::IPluginManager *_plugMan;
|
ExtensionSystem::IPluginManager *_plugMan;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Plugin
|
} // namespace Plugin
|
||||||
|
|
||||||
|
|
|
@ -26,10 +26,8 @@
|
||||||
// std
|
// std
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
|
||||||
using namespace NLMISC;
|
using namespace NLMISC;
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
@ -50,10 +48,16 @@ union TFormId
|
||||||
uint32 Id : 24;
|
uint32 Id : 24;
|
||||||
} FormIDInfos;
|
} FormIDInfos;
|
||||||
|
|
||||||
void serial(NLMISC::IStream &f) { f.serial(Id); }
|
void serial(NLMISC::IStream &f)
|
||||||
|
{
|
||||||
|
f.serial(Id);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
bool operator<(const TFormId& fid1, const TFormId& fid2) { return fid1.Id<fid2.Id; }
|
bool operator<(const TFormId& fid1, const TFormId& fid2)
|
||||||
|
{
|
||||||
|
return fid1.Id<fid2.Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
map<string,TFormId> FormToId;
|
map<string,TFormId> FormToId;
|
||||||
|
@ -185,8 +189,6 @@ void readFormId( string& outputFileName )
|
||||||
} // readFormId //
|
} // readFormId //
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------
|
//-----------------------------------------------
|
||||||
// makeId
|
// makeId
|
||||||
//
|
//
|
||||||
|
@ -210,8 +212,6 @@ void makeId( list<string>& dirs )
|
||||||
} // makeId //
|
} // makeId //
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------
|
//-----------------------------------------------
|
||||||
// addId
|
// addId
|
||||||
//
|
//
|
||||||
|
@ -311,7 +311,6 @@ void addId( string fileName )
|
||||||
} // addId //
|
} // addId //
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------
|
//-----------------------------------------------
|
||||||
// getFileType
|
// getFileType
|
||||||
//
|
//
|
||||||
|
@ -324,7 +323,6 @@ bool getFileType( string& fileName, string& fileType )
|
||||||
} // getFileType //
|
} // getFileType //
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------
|
//-----------------------------------------------
|
||||||
// display
|
// display
|
||||||
//
|
//
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#include "sheetbuilderconfgdialog.h"
|
#include "sheetbuilderconfgdialog.h"
|
||||||
|
#include "../core/icore.h"
|
||||||
|
|
||||||
#include <QListWidget>
|
#include <QListWidget>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
|
@ -25,8 +26,8 @@
|
||||||
#include <QCloseEvent>
|
#include <QCloseEvent>
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
|
|
||||||
SheetBuilderConfigDialog::SheetBuilderConfigDialog(QWidget *parent) :
|
SheetBuilderConfigDialog::SheetBuilderConfigDialog(QWidget *parent)
|
||||||
QDialog(parent)
|
: QDialog(parent)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Paths
|
* Paths
|
||||||
|
@ -117,8 +118,9 @@ SheetBuilderConfigDialog::SheetBuilderConfigDialog(QWidget *parent) :
|
||||||
void SheetBuilderConfigDialog::addPath()
|
void SheetBuilderConfigDialog::addPath()
|
||||||
{
|
{
|
||||||
QString path =
|
QString path =
|
||||||
QFileDialog::getExistingDirectory(this, "Choose path");
|
QFileDialog::getExistingDirectory(this, tr("Choose path"));
|
||||||
if (!path.isEmpty()) {
|
if (!path.isEmpty())
|
||||||
|
{
|
||||||
QListWidgetItem *newItem = new QListWidgetItem;
|
QListWidgetItem *newItem = new QListWidgetItem;
|
||||||
newItem->setText(path);
|
newItem->setText(path);
|
||||||
newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
|
newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
|
||||||
|
@ -153,7 +155,7 @@ void SheetBuilderConfigDialog::deleteExtension()
|
||||||
void SheetBuilderConfigDialog::browseOutput()
|
void SheetBuilderConfigDialog::browseOutput()
|
||||||
{
|
{
|
||||||
QString fileName =
|
QString fileName =
|
||||||
QFileDialog::getSaveFileName(this,tr("Choose output file"), "");
|
QFileDialog::getSaveFileName(this, tr("Choose output file"), "");
|
||||||
if (!fileName.isEmpty())
|
if (!fileName.isEmpty())
|
||||||
txtOutputFile->setText(fileName);
|
txtOutputFile->setText(fileName);
|
||||||
}
|
}
|
||||||
|
@ -164,18 +166,20 @@ void SheetBuilderConfigDialog::readSettings()
|
||||||
QString outputFile;
|
QString outputFile;
|
||||||
QStringList extensions;
|
QStringList extensions;
|
||||||
|
|
||||||
QSettings settings("ovqt_sheet_builder.ini", QSettings::IniFormat);
|
QSettings *settings = Core::ICore::instance()->settings();
|
||||||
|
settings->beginGroup("SheetBuilder");
|
||||||
paths = settings.value("SheetPaths").toStringList();
|
paths = settings->value("SheetPaths").toStringList();
|
||||||
outputFile = settings.value("SheetOutputFile").toString();
|
outputFile = settings->value("SheetOutputFile").toString();
|
||||||
extensions = settings.value("ExtensionsAllowed").toStringList();
|
extensions = settings->value("ExtensionsAllowed").toStringList();
|
||||||
|
settings->endGroup();
|
||||||
|
|
||||||
lstPaths->clear();
|
lstPaths->clear();
|
||||||
lstExtensionsAllowed->clear();
|
lstExtensionsAllowed->clear();
|
||||||
|
|
||||||
QListWidgetItem *newItem;
|
QListWidgetItem *newItem;
|
||||||
|
|
||||||
Q_FOREACH (QString path, paths) {
|
Q_FOREACH (QString path, paths)
|
||||||
|
{
|
||||||
newItem = new QListWidgetItem;
|
newItem = new QListWidgetItem;
|
||||||
newItem->setText(path);
|
newItem->setText(path);
|
||||||
newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
|
newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
|
||||||
|
@ -184,7 +188,8 @@ void SheetBuilderConfigDialog::readSettings()
|
||||||
|
|
||||||
txtOutputFile->setText(outputFile);
|
txtOutputFile->setText(outputFile);
|
||||||
|
|
||||||
Q_FOREACH (QString extension, extensions) {
|
Q_FOREACH (QString extension, extensions)
|
||||||
|
{
|
||||||
newItem = new QListWidgetItem;
|
newItem = new QListWidgetItem;
|
||||||
newItem->setText(extension);
|
newItem->setText(extension);
|
||||||
newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
|
newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
|
||||||
|
@ -204,8 +209,13 @@ void SheetBuilderConfigDialog::writeSettings()
|
||||||
for (int i = 0; i < lstExtensionsAllowed->count(); i++)
|
for (int i = 0; i < lstExtensionsAllowed->count(); i++)
|
||||||
extensions.push_back(lstExtensionsAllowed->item(i)->text());
|
extensions.push_back(lstExtensionsAllowed->item(i)->text());
|
||||||
|
|
||||||
QSettings settings("./ovqt_sheet_builder.ini", QSettings::IniFormat);
|
QSettings *settings = Core::ICore::instance()->settings();
|
||||||
settings.setValue("SheetPaths", paths);
|
settings->beginGroup("SheetBuilder");
|
||||||
settings.setValue("SheetOutputFile", outputFile);
|
settings->setValue("SheetPaths", paths);
|
||||||
settings.setValue("ExtensionsAllowed", extensions);
|
settings->setValue("SheetOutputFile", outputFile);
|
||||||
|
settings->setValue("ExtensionsAllowed", extensions);
|
||||||
|
settings->endGroup();
|
||||||
|
|
||||||
|
// Forced save settings
|
||||||
|
settings->sync();
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,11 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#include "sheetbuilderdialog.h"
|
#include "sheetbuilderdialog.h"
|
||||||
|
#include "sheetbuilder.h"
|
||||||
|
#include "sheetbuilderconfgdialog.h"
|
||||||
|
#include "../core/icore.h"
|
||||||
|
#include "../core/core_constants.h"
|
||||||
|
|
||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QLayout>
|
#include <QLayout>
|
||||||
|
@ -23,13 +28,9 @@
|
||||||
#include <QTreeWidget>
|
#include <QTreeWidget>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
#include "sheetbuilder.h"
|
SheetBuilderDialog::SheetBuilderDialog(QWidget *parent)
|
||||||
#include "sheetbuilderconfgdialog.h"
|
: QDialog(parent)
|
||||||
|
|
||||||
SheetBuilderDialog::SheetBuilderDialog(QWidget *parent) :
|
|
||||||
QDialog(parent)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
QPushButton *btnOk = new QPushButton(tr("Make sheet"));
|
QPushButton *btnOk = new QPushButton(tr("Make sheet"));
|
||||||
connect(btnOk, SIGNAL(clicked()), SLOT(buildSheet()));
|
connect(btnOk, SIGNAL(clicked()), SLOT(buildSheet()));
|
||||||
|
|
||||||
|
@ -81,7 +82,8 @@ void SheetBuilderDialog::showConfig()
|
||||||
|
|
||||||
void SheetBuilderDialog::detailsShowHide()
|
void SheetBuilderDialog::detailsShowHide()
|
||||||
{
|
{
|
||||||
if (!detailsVisible) {
|
if (!detailsVisible)
|
||||||
|
{
|
||||||
defHeight = height();
|
defHeight = height();
|
||||||
defWidth = width();
|
defWidth = width();
|
||||||
}
|
}
|
||||||
|
@ -89,7 +91,8 @@ void SheetBuilderDialog::detailsShowHide()
|
||||||
detailsVisible = !detailsVisible;
|
detailsVisible = !detailsVisible;
|
||||||
txtOutput->setVisible(detailsVisible);
|
txtOutput->setVisible(detailsVisible);
|
||||||
|
|
||||||
if (!detailsVisible) {
|
if (!detailsVisible)
|
||||||
|
{
|
||||||
adjustSize();
|
adjustSize();
|
||||||
resize(defWidth, defHeight);
|
resize(defWidth, defHeight);
|
||||||
}
|
}
|
||||||
|
@ -106,16 +109,20 @@ void SheetBuilderDialog::buildSheet()
|
||||||
QString outputFile;
|
QString outputFile;
|
||||||
QStringList extensions;
|
QStringList extensions;
|
||||||
|
|
||||||
QSettings settings("ovqt_sheet_builder.ini", QSettings::IniFormat);
|
// read settings
|
||||||
paths = settings.value("SheetPaths").toStringList();
|
QSettings *settings = Core::ICore::instance()->settings();
|
||||||
outputFile = settings.value("SheetOutputFile").toString();
|
settings->beginGroup("SheetBuilder");
|
||||||
extensions = settings.value("ExtensionsAllowed").toStringList();
|
paths = settings->value("SheetPaths").toStringList();
|
||||||
|
outputFile = settings->value("SheetOutputFile").toString();
|
||||||
|
extensions = settings->value("ExtensionsAllowed").toStringList();
|
||||||
|
settings->endGroup();
|
||||||
|
|
||||||
bool clean = chckClean->isChecked();
|
bool clean = chckClean->isChecked();
|
||||||
string configFileName("ovqt_sheet_builder.ini");
|
|
||||||
string outputFileName(outputFile.toStdString());
|
string outputFileName(outputFile.toStdString());
|
||||||
|
|
||||||
if (outputFileName.empty()) {
|
if (outputFileName.empty())
|
||||||
|
{
|
||||||
displayInfo("Error: Output file is not specified");
|
displayInfo("Error: Output file is not specified");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -124,18 +131,10 @@ void SheetBuilderDialog::buildSheet()
|
||||||
Q_FOREACH (QString str, paths)
|
Q_FOREACH (QString str, paths)
|
||||||
inputDirs.push_back(str.toStdString());
|
inputDirs.push_back(str.toStdString());
|
||||||
|
|
||||||
// load the config files
|
Q_FOREACH (QString str, extensions)
|
||||||
CConfigFile configFile;
|
|
||||||
if(!CFile::fileExists(configFileName))
|
|
||||||
{
|
{
|
||||||
displayInfo(QString("Config file '%1' not found, working whithout filter").arg(configFileName.c_str()) );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Q_FOREACH (QString str, extensions) {
|
|
||||||
ExtensionsAllowed.insert(str.toStdString());
|
ExtensionsAllowed.insert(str.toStdString());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// get the current associations (read the sheet_id and fill the working structures)
|
// get the current associations (read the sheet_id and fill the working structures)
|
||||||
readFormId( outputFileName );
|
readFormId( outputFileName );
|
||||||
|
@ -152,7 +151,7 @@ void SheetBuilderDialog::buildSheet()
|
||||||
if( clean )
|
if( clean )
|
||||||
{
|
{
|
||||||
if( ExtensionsAllowed.empty() )
|
if( ExtensionsAllowed.empty() )
|
||||||
displayInfo("None extension list provided, the input will not be cleaned");
|
displayInfo(tr("None extension list provided, the input will not be cleaned"));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
map<TFormId,string>::iterator itSheets;
|
map<TFormId,string>::iterator itSheets;
|
||||||
|
@ -176,9 +175,10 @@ void SheetBuilderDialog::buildSheet()
|
||||||
displayInfo("The file has been cleaned");
|
displayInfo("The file has been cleaned");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
setCursor(Qt::WaitCursor);
|
||||||
// make the ids
|
// make the ids
|
||||||
makeId( inputDirs );
|
makeId( inputDirs );
|
||||||
|
setCursor(Qt::ArrowCursor);
|
||||||
|
|
||||||
// save the new map
|
// save the new map
|
||||||
COFile f( outputFileName );
|
COFile f( outputFileName );
|
||||||
|
@ -188,7 +188,7 @@ void SheetBuilderDialog::buildSheet()
|
||||||
COFile output;
|
COFile output;
|
||||||
if( !output.open(sheetListFileName,false,true) )
|
if( !output.open(sheetListFileName,false,true) )
|
||||||
{
|
{
|
||||||
displayInfo(QString("Can't open output file %1").arg(sheetListFileName.c_str()));
|
displayInfo(tr("Can't open output file %1").arg(sheetListFileName.c_str()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
map<TFormId,string>::iterator it1;
|
map<TFormId,string>::iterator it1;
|
||||||
|
@ -198,13 +198,13 @@ void SheetBuilderDialog::buildSheet()
|
||||||
output.serialBuffer((uint8*)(const_cast<char*>(outputLine.data())),(uint)outputLine.size());
|
output.serialBuffer((uint8*)(const_cast<char*>(outputLine.data())),(uint)outputLine.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
displayInfo ("------------- results ----------------");
|
displayInfo (tr("------------- results ----------------"));
|
||||||
displayInfo (QString("%1 files added in '%2'").arg(NbFilesAdded).arg(outputFileName.c_str()));
|
displayInfo (tr("%1 files added in '%2'").arg(NbFilesAdded).arg(outputFileName.c_str()));
|
||||||
displayInfo (QString("%1 files discarded because they are empty, begin with .# _ and so on").arg(NbFilesDiscarded));
|
displayInfo (tr("%1 files discarded because they are empty, begin with .# _ and so on").arg(NbFilesDiscarded));
|
||||||
displayInfo (QString("%1 files skipped because don't have extension").arg(NbFilesUnknownType));
|
displayInfo (tr("%1 files skipped because don't have extension").arg(NbFilesUnknownType));
|
||||||
displayInfo (QString("%1 types added in '%1'").arg(NbTypesAdded).arg(outputFileName.c_str()));
|
displayInfo (tr("%1 types added in '%1'").arg(NbTypesAdded).arg(outputFileName.c_str()));
|
||||||
|
|
||||||
displayInfo (QString("%1 supported file types :").arg(FileTypeToId.size()));
|
displayInfo (tr("%1 supported file types :").arg(FileTypeToId.size()));
|
||||||
for ( map<string,uint8>::iterator it = FileTypeToId.begin(); it != FileTypeToId.end(); ++it )
|
for ( map<string,uint8>::iterator it = FileTypeToId.begin(); it != FileTypeToId.end(); ++it )
|
||||||
{
|
{
|
||||||
displayInfo(QString("%1").arg((*it).first.c_str()));
|
displayInfo(QString("%1").arg((*it).first.c_str()));
|
||||||
|
|
Loading…
Reference in a new issue