From 5d0be05baf1c2e363c463ed0b0d1276a619ad4b4 Mon Sep 17 00:00:00 2001 From: dnk-88 Date: Wed, 2 Mar 2011 23:57:57 +0200 Subject: [PATCH] Changed: #1206 Update sheet builder plugin. Now plugin is using ICore for reading and writing settings, and it adds action in menu Sheet. --- .../src/plugins/core/core_constants.h | 2 + .../src/plugins/core/core_plugin.cpp | 11 +- .../src/plugins/core/main_window.cpp | 4 +- .../src/plugins/core/main_window.h | 2 + .../plugins/ovqt_sheet_builder/CMakeLists.txt | 2 +- .../ovqt_sheet_builder/ovqt_sheet_builder.cpp | 64 +-- .../ovqt_sheet_builder/ovqt_sheet_builder.h | 49 ++- .../plugins/ovqt_sheet_builder/sheetbuilder.h | 390 +++++++++--------- .../sheetbuilderconfgdialog.cpp | 272 ++++++------ .../sheetbuilderconfgdialog.h | 24 +- .../ovqt_sheet_builder/sheetbuilderdialog.cpp | 290 ++++++------- .../ovqt_sheet_builder/sheetbuilderdialog.h | 24 +- 12 files changed, 561 insertions(+), 573 deletions(-) diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/core_constants.h b/code/nel/tools/3d/object_viewer_qt/src/plugins/core/core_constants.h index af0e2aa5b..07567246f 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/core_constants.h +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/core/core_constants.h @@ -43,6 +43,8 @@ const char * const M_TOOLS = "ObjectViewerQt.Menu.Tools"; const char * const M_WINDOW = "ObjectViewerQt.Menu.Window"; const char * const M_HELP = "ObjectViewerQt.Menu.Help"; +const char * const M_SHEET = "ObjectViewerQt.Menu.Sheet"; + //actions const char * const NEW = "ObjectViewerQt.New"; const char * const OPEN = "ObjectViewerQt.Open"; diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/core_plugin.cpp b/code/nel/tools/3d/object_viewer_qt/src/plugins/core/core_plugin.cpp index ccc30614a..6d051d64d 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/core_plugin.cpp +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/core/core_plugin.cpp @@ -58,12 +58,11 @@ bool CorePlugin::initialize(ExtensionSystem::IPluginManager *pluginManager, QStr _plugMan = pluginManager; _mainWindow = new MainWindow(pluginManager); - /* if (QtWin::isCompositionEnabled()) - { - QtWin::extendFrameIntoClientArea(_mainWindow); - _mainWindow->setContentsMargins(0, 0, 0, 0); - } - */ + /*if (QtWin::isCompositionEnabled()) + { + QtWin::extendFrameIntoClientArea(_mainWindow); + _mainWindow->setContentsMargins(0, 0, 0, 0); + }*/ bool success = _mainWindow->initialize(errorString); CSearchPathsSettingsPage *serchPathPage = new CSearchPathsSettingsPage(this); serchPathPage->applySearchPaths(); diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/main_window.cpp b/code/nel/tools/3d/object_viewer_qt/src/plugins/core/main_window.cpp index 694c2c30f..90b5ad745 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/main_window.cpp +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/core/main_window.cpp @@ -231,8 +231,10 @@ void MainWindow::createMenus() m_toolsMenu = menuBar()->addMenu(tr("&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); diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/main_window.h b/code/nel/tools/3d/object_viewer_qt/src/plugins/core/main_window.h index 76eca3a42..21d091ef3 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/main_window.h +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/core/main_window.h @@ -97,6 +97,8 @@ private: QMenu *m_toolsMenu; QMenu *m_helpMenu; + QMenu *m_sheetMenu; + QAction *m_openAction; QAction *m_exitAction; QAction *m_settingsAction; diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/CMakeLists.txt b/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/CMakeLists.txt index aa16f4303..37f95fba9 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/CMakeLists.txt +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/CMakeLists.txt @@ -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}) -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_ADD_RUNTIME_FLAGS(ovqt_plugin_sheet_builder) diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.cpp b/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.cpp index f9c660d94..18e77fbcc 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.cpp +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.cpp @@ -14,8 +14,18 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . +// Project includes #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 + +// Qt includes #include #include #include @@ -23,47 +33,29 @@ #include #include -#include "../../extension_system/iplugin_spec.h" - -#include "nel/misc/debug.h" -#include "sheetbuilderdialog.h" -#include "sheetbuilderconfgdialog.h" - using namespace Plugin; bool SheetBuilderPlugin::initialize(ExtensionSystem::IPluginManager *pluginManager, QString *errorString) { Q_UNUSED(errorString); _plugMan = pluginManager; - QMainWindow *wnd = qobject_cast(objectByName("CMainWindow")); - if (!wnd) - { - *errorString = tr("Not found MainWindow Object Viewer Qt."); - return false; - } - QMenu *toolsMenu = qobject_cast(objectByName("ovqt.Menu.Tools")); - if (!toolsMenu) - { - *errorString = tr("Not found QMenu Tools."); - return false; - } + return true; } void SheetBuilderPlugin::extensionsInitialized() { - QMenu *toolsMenu = qobject_cast(objectByName("ovqt.Menu.Tools")); - nlassert(toolsMenu); + Core::IMenuManager *menuManager = Core::ICore::instance()->menuManager(); - toolsMenu->addSeparator(); - - QAction *actBuilder = toolsMenu->addAction("Sheet builder"); - connect(actBuilder, SIGNAL(triggered()), this, SLOT(execBuilderDialog())); + QMenu *sheetMenu = menuManager->menu(Core::Constants::M_SHEET); + QAction *sheetBuilderAction = sheetMenu->addAction(tr("Sheet builder")); + menuManager->registerAction(sheetBuilderAction, "SheetBuilder"); + connect(sheetBuilderAction, SIGNAL(triggered()), this, SLOT(execBuilderDialog())); } void SheetBuilderPlugin::execBuilderDialog() { - QMainWindow *wnd = qobject_cast(objectByName("CMainWindow")); + QMainWindow *wnd = Core::ICore::instance()->mainWindow(); nlassert(wnd); SheetBuilderDialog dlg(wnd); @@ -100,25 +92,11 @@ QString SheetBuilderPlugin::description() const return "make_sheet_id equivalent"; } -QList SheetBuilderPlugin::dependencies() const +QStringList SheetBuilderPlugin::dependencies() const { - return QList(); -} - -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; + QStringList list; + list.append(Core::Constants::OVQT_CORE_PLUGIN); + return list; } Q_EXPORT_PLUGIN(SheetBuilderPlugin) diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.h b/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.h index e444afd45..f1299dfba 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.h +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.h @@ -25,48 +25,45 @@ namespace NLMISC { - class CLibraryContext; +class CLibraryContext; } namespace ExtensionSystem { - class IPluginSpec; +class IPluginSpec; } namespace Plugin { - class SheetBuilderPlugin : public QObject, public ExtensionSystem::IPlugin - { - Q_OBJECT - Q_INTERFACES(ExtensionSystem::IPlugin) - public: - bool initialize(ExtensionSystem::IPluginManager *pluginManager, QString *errorString); - void extensionsInitialized(); +class SheetBuilderPlugin : public QObject, public ExtensionSystem::IPlugin +{ + Q_OBJECT + Q_INTERFACES(ExtensionSystem::IPlugin) +public: + bool initialize(ExtensionSystem::IPluginManager *pluginManager, QString *errorString); + void extensionsInitialized(); - void setNelContext(NLMISC::INelContext *nelContext); + void setNelContext(NLMISC::INelContext *nelContext); - QString name() const; - QString version() const; - QString vendor() const; - QString description() const; - QList dependencies() const; + QString name() const; + QString version() const; + QString vendor() const; + QString description() 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: + void execBuilderDialog(); - private Q_SLOTS: - void execBuilderDialog(); +protected: + NLMISC::CLibraryContext *_LibContext; - protected: - NLMISC::CLibraryContext *_LibContext; +private: + ExtensionSystem::IPluginManager *_plugMan; - private: - ExtensionSystem::IPluginManager *_plugMan; - - }; +}; } // namespace Plugin diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilder.h b/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilder.h index 4d23007fe..aac097c9b 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilder.h +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilder.h @@ -26,10 +26,8 @@ // std #include #include - #include - using namespace NLMISC; using namespace std; @@ -42,18 +40,24 @@ using namespace std; */ union TFormId { - uint32 Id; + uint32 Id; - struct - { - uint32 Type : 8; - uint32 Id : 24; - } FormIDInfos; + struct + { + uint32 Type : 8; + uint32 Id : 24; + } 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 FormToId; @@ -86,15 +90,15 @@ bool getFileType( string& fileName, string& fileType ); //----------------------------------------------- sint16 getFirstFreeFileTypeId() { - for( sint16 id=0; id<256; ++id ) - { - if( IdToFileType.find((uint8)id) == IdToFileType.end() ) - { - return id; - } - } + for( sint16 id=0; id<256; ++id ) + { + if( IdToFileType.find((uint8)id) == IdToFileType.end() ) + { + return id; + } + } - return -1; + return -1; } // getFirstFreeFileTypeId // @@ -105,238 +109,232 @@ sint16 getFirstFreeFileTypeId() //----------------------------------------------- void readFormId( string& outputFileName ) { - CIFile f; - if( f.open( outputFileName ) ) - { - f.serialCont( IdToForm ); - } + CIFile f; + if( f.open( outputFileName ) ) + { + f.serialCont( IdToForm ); + } - // insert an unknown entry - TFormId formId; - formId.Id = 0; - IdToForm.insert( make_pair( formId, string("unknown.unknown") ) ); + // insert an unknown entry + TFormId formId; + formId.Id = 0; + IdToForm.insert( make_pair( formId, string("unknown.unknown") ) ); - // remove integer file extensions (created by CVS) and init FileTypeToId (associates the form type to the form type id) - map::iterator itIF; - for( itIF = IdToForm.begin(); itIF != IdToForm.end(); ) - { - // get the file type from form name - TFormId fid = (*itIF).first; - string fileType; + // remove integer file extensions (created by CVS) and init FileTypeToId (associates the form type to the form type id) + map::iterator itIF; + for( itIF = IdToForm.begin(); itIF != IdToForm.end(); ) + { + // get the file type from form name + TFormId fid = (*itIF).first; + string fileType; - if((*itIF).second.empty() || (*itIF).second=="." || (*itIF).second==".." || (*itIF).second[0]=='_' || (*itIF).second.find(".#")==0) - { - map::iterator itErase = itIF; - ++itIF; - IdToForm.erase(itErase); - } - else - { - if( getFileType( (*itIF).second, fileType ) ) - { - // insert the association (file type/file type id) - map::iterator itFT = FileTypeToId.find(fileType); - if( itFT == FileTypeToId.end() ) - { - FileTypeToId.insert( make_pair(fileType,fid.FormIDInfos.Type) ); - } - } - else - { - nlwarning("Unknown file type for the file : %s",(*itIF).second.c_str()); - } - ++itIF; - } - } + if((*itIF).second.empty() || (*itIF).second=="." || (*itIF).second==".." || (*itIF).second[0]=='_' || (*itIF).second.find(".#")==0) + { + map::iterator itErase = itIF; + ++itIF; + IdToForm.erase(itErase); + } + else + { + if( getFileType( (*itIF).second, fileType ) ) + { + // insert the association (file type/file type id) + map::iterator itFT = FileTypeToId.find(fileType); + if( itFT == FileTypeToId.end() ) + { + FileTypeToId.insert( make_pair(fileType,fid.FormIDInfos.Type) ); + } + } + else + { + nlwarning("Unknown file type for the file : %s",(*itIF).second.c_str()); + } + ++itIF; + } + } - // init FormToId (associates the form name to its id ) - for( itIF = IdToForm.begin(); itIF != IdToForm.end(); ++itIF ) - { - FormToId.insert( make_pair((*itIF).second,(*itIF).first) ); - } + // init FormToId (associates the form name to its id ) + for( itIF = IdToForm.begin(); itIF != IdToForm.end(); ++itIF ) + { + FormToId.insert( make_pair((*itIF).second,(*itIF).first) ); + } - // init IdToFileType (associates the form type id to the form type name) - map::iterator itIFT; - for( itIFT = FileTypeToId.begin(); itIFT != FileTypeToId.end(); ++itIFT ) - { - IdToFileType.insert( make_pair((*itIFT).second,(*itIFT).first) ); - } + // init IdToFileType (associates the form type id to the form type name) + map::iterator itIFT; + for( itIFT = FileTypeToId.begin(); itIFT != FileTypeToId.end(); ++itIFT ) + { + IdToFileType.insert( make_pair((*itIFT).second,(*itIFT).first) ); + } - // init TypeToLastId (associates the type id to the last index used for this type) - for( itIF = IdToForm.begin(); itIF != IdToForm.end(); ++itIF ) - { - uint8 type = (*itIF).first.FormIDInfos.Type; - uint32 id = (*itIF).first.FormIDInfos.Id; - map::iterator itTLI = TypeToLastId.find( type ); - if( itTLI != TypeToLastId.end() ) - { - if( (*itTLI).second < id ) - { - (*itTLI).second = id; - } - } - else - { - TypeToLastId.insert( make_pair(type,id) ); - } - } + // init TypeToLastId (associates the type id to the last index used for this type) + for( itIF = IdToForm.begin(); itIF != IdToForm.end(); ++itIF ) + { + uint8 type = (*itIF).first.FormIDInfos.Type; + uint32 id = (*itIF).first.FormIDInfos.Id; + map::iterator itTLI = TypeToLastId.find( type ); + if( itTLI != TypeToLastId.end() ) + { + if( (*itTLI).second < id ) + { + (*itTLI).second = id; + } + } + else + { + TypeToLastId.insert( make_pair(type,id) ); + } + } } // readFormId // - - //----------------------------------------------- // makeId // //----------------------------------------------- void makeId( list& dirs ) { - list::const_iterator itDir; - for( itDir = dirs.begin(); itDir != dirs.end(); ++itDir ) - { - nlinfo ("Searching files in directory '%s'...", (*itDir).c_str()); - vector files; - CPath::getPathContent(*itDir,true,false,true,files); + list::const_iterator itDir; + for( itDir = dirs.begin(); itDir != dirs.end(); ++itDir ) + { + nlinfo ("Searching files in directory '%s'...", (*itDir).c_str()); + vector files; + CPath::getPathContent(*itDir,true,false,true,files); - nlinfo ("Found %d files in directory '%s'", files.size(), (*itDir).c_str()); - for(uint i = 0; i < files.size(); i++) - { - addId(CFile::getFilename(files[i])); - } - } + nlinfo ("Found %d files in directory '%s'", files.size(), (*itDir).c_str()); + for(uint i = 0; i < files.size(); i++) + { + addId(CFile::getFilename(files[i])); + } + } } // makeId // - - //----------------------------------------------- // addId // //----------------------------------------------- void addId( string fileName ) { - if(fileName.empty() || fileName=="." || fileName==".." || fileName[0]=='_' || fileName.find(".#")==0) - { - //nlinfo("Discarding file '%s'", fileName.c_str()); - NbFilesDiscarded++; - return; - } - else - { - if( !ExtensionsAllowed.empty() ) - { - string extStr = CFile::getExtension( fileName ); - if( ExtensionsAllowed.find(extStr) == ExtensionsAllowed.end() ) - { - NbFilesDiscarded++; - return; - } - } - } + if(fileName.empty() || fileName=="." || fileName==".." || fileName[0]=='_' || fileName.find(".#")==0) + { + //nlinfo("Discarding file '%s'", fileName.c_str()); + NbFilesDiscarded++; + return; + } + else + { + if( !ExtensionsAllowed.empty() ) + { + string extStr = CFile::getExtension( fileName ); + if( ExtensionsAllowed.find(extStr) == ExtensionsAllowed.end() ) + { + NbFilesDiscarded++; + return; + } + } + } - // if the file is new - map::iterator itFI = FormToId.find( fileName ); - if( itFI == FormToId.end() ) - { - // double check : if file not found we check with lower case version of filename - map::iterator itFILwr = FormToId.find( toLower(fileName) ); - if( itFILwr != FormToId.end() ) - { - nlwarning("Trying to add %s but the file %s is already known ! becareful with lower case and upper case.", fileName.c_str(), toLower(fileName).c_str()); - NbFilesDiscarded++; - return; - } + // if the file is new + map::iterator itFI = FormToId.find( fileName ); + if( itFI == FormToId.end() ) + { + // double check : if file not found we check with lower case version of filename + map::iterator itFILwr = FormToId.find( toLower(fileName) ); + if( itFILwr != FormToId.end() ) + { + nlwarning("Trying to add %s but the file %s is already known ! becareful with lower case and upper case.", fileName.c_str(), toLower(fileName).c_str()); + NbFilesDiscarded++; + return; + } - string fileType; - if( getFileType( fileName, fileType ) ) - { - map::iterator itFTI = FileTypeToId.find( fileType ); - TFormId fid; + string fileType; + if( getFileType( fileName, fileType ) ) + { + map::iterator itFTI = FileTypeToId.find( fileType ); + TFormId fid; - // if the type of this file is a new type - if( itFTI == FileTypeToId.end() ) - { - sint16 firstFreeFileTypeId = getFirstFreeFileTypeId(); - if( firstFreeFileTypeId == -1 ) - { - nlwarning("MORE THAN 256 FILE TYPES!!!!"); - } - else - { - FileTypeToId.insert( make_pair(fileType,(uint8)firstFreeFileTypeId) ); - IdToFileType.insert( make_pair((uint8)firstFreeFileTypeId,fileType) ); - TypeToLastId.insert( make_pair((uint8)firstFreeFileTypeId,0) ); + // if the type of this file is a new type + if( itFTI == FileTypeToId.end() ) + { + sint16 firstFreeFileTypeId = getFirstFreeFileTypeId(); + if( firstFreeFileTypeId == -1 ) + { + nlwarning("MORE THAN 256 FILE TYPES!!!!"); + } + else + { + FileTypeToId.insert( make_pair(fileType,(uint8)firstFreeFileTypeId) ); + IdToFileType.insert( make_pair((uint8)firstFreeFileTypeId,fileType) ); + TypeToLastId.insert( make_pair((uint8)firstFreeFileTypeId,0) ); - fid.FormIDInfos.Type = (uint8)firstFreeFileTypeId; - fid.FormIDInfos.Id = 0; + fid.FormIDInfos.Type = (uint8)firstFreeFileTypeId; + fid.FormIDInfos.Id = 0; - nlinfo("Adding file type '%s' with id %d", fileType.c_str(), firstFreeFileTypeId); - NbTypesAdded++; - } - } - // else the file type already exist - else - { - // id of the file type - uint8 fileTypeId = (*itFTI).second; + nlinfo("Adding file type '%s' with id %d", fileType.c_str(), firstFreeFileTypeId); + NbTypesAdded++; + } + } + // else the file type already exist + else + { + // id of the file type + uint8 fileTypeId = (*itFTI).second; - // last id used for this file type - map::iterator itTLI = TypeToLastId.find(fileTypeId); - nlassert(itTLI != TypeToLastId.end()); - (*itTLI).second++; + // last id used for this file type + map::iterator itTLI = TypeToLastId.find(fileTypeId); + nlassert(itTLI != TypeToLastId.end()); + (*itTLI).second++; - // add the new association - fid.FormIDInfos.Type = fileTypeId; - fid.FormIDInfos.Id = (*itTLI).second; - } - FormToId.insert( make_pair(fileName,fid) ); - IdToForm.insert( make_pair(fid,fileName) ); - nlinfo("Adding file '%s' id %d with type '%s' id %d", fileName.c_str(), fid.FormIDInfos.Id, fileType.c_str(), fid.FormIDInfos.Type); - NbFilesAdded++; - } - else - { - //nlinfo("Unknown file type for the file : '%s' --> not added",fileName.c_str()); - NbFilesUnknownType++; - } - } - else - { - //nlinfo("Skipping file '%s', already in the file", fileName.c_str()); - NbFilesAlreadyAdded++; - } + // add the new association + fid.FormIDInfos.Type = fileTypeId; + fid.FormIDInfos.Id = (*itTLI).second; + } + FormToId.insert( make_pair(fileName,fid) ); + IdToForm.insert( make_pair(fid,fileName) ); + nlinfo("Adding file '%s' id %d with type '%s' id %d", fileName.c_str(), fid.FormIDInfos.Id, fileType.c_str(), fid.FormIDInfos.Type); + NbFilesAdded++; + } + else + { + //nlinfo("Unknown file type for the file : '%s' --> not added",fileName.c_str()); + NbFilesUnknownType++; + } + } + else + { + //nlinfo("Skipping file '%s', already in the file", fileName.c_str()); + NbFilesAlreadyAdded++; + } } // addId // - //----------------------------------------------- // getFileType // //----------------------------------------------- bool getFileType( string& fileName, string& fileType ) { - fileType = CFile::getExtension(CFile::getFilename(fileName)); - return !fileType.empty(); + fileType = CFile::getExtension(CFile::getFilename(fileName)); + return !fileType.empty(); } // getFileType // - //----------------------------------------------- // display // //----------------------------------------------- void display() { - nldebug ("Output :"); - map::iterator it1; - for( it1 = IdToForm.begin(); it1 != IdToForm.end(); ++it1 ) - { - nldebug("type: %d id: %d file: %s", (*it1).first.FormIDInfos.Type, (*it1).first.FormIDInfos.Id, (*it1).second.c_str()); - } + nldebug ("Output :"); + map::iterator it1; + for( it1 = IdToForm.begin(); it1 != IdToForm.end(); ++it1 ) + { + nldebug("type: %d id: %d file: %s", (*it1).first.FormIDInfos.Type, (*it1).first.FormIDInfos.Id, (*it1).second.c_str()); + } } // display // diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderconfgdialog.cpp b/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderconfgdialog.cpp index 314efe2be..aeb632fba 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderconfgdialog.cpp +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderconfgdialog.cpp @@ -15,6 +15,7 @@ // along with this program. If not, see . #include "sheetbuilderconfgdialog.h" +#include "../core/icore.h" #include #include @@ -25,187 +26,196 @@ #include #include -SheetBuilderConfigDialog::SheetBuilderConfigDialog(QWidget *parent) : - QDialog(parent) +SheetBuilderConfigDialog::SheetBuilderConfigDialog(QWidget *parent) + : QDialog(parent) { - /* - * Paths - */ - QLabel *lblPaths = new QLabel(tr("Paths:")); - lstPaths = new QListWidget; - lstPaths->addItem(""); + /* + * Paths + */ + QLabel *lblPaths = new QLabel(tr("Paths:")); + lstPaths = new QListWidget; + lstPaths->addItem(""); - QPushButton *btnAddPath = new QPushButton(tr("Add")); - connect(btnAddPath, SIGNAL(clicked()), SLOT(addPath())); - QPushButton *btnDeletePath = new QPushButton(tr("Delete")); - connect(btnDeletePath, SIGNAL(clicked()), SLOT(deletePath())); + QPushButton *btnAddPath = new QPushButton(tr("Add")); + connect(btnAddPath, SIGNAL(clicked()), SLOT(addPath())); + QPushButton *btnDeletePath = new QPushButton(tr("Delete")); + connect(btnDeletePath, SIGNAL(clicked()), SLOT(deletePath())); - QVBoxLayout *ltButtonsPaths = new QVBoxLayout(); - ltButtonsPaths->addWidget(btnAddPath); - ltButtonsPaths->addWidget(btnDeletePath); - ltButtonsPaths->addStretch(1); + QVBoxLayout *ltButtonsPaths = new QVBoxLayout(); + ltButtonsPaths->addWidget(btnAddPath); + ltButtonsPaths->addWidget(btnDeletePath); + ltButtonsPaths->addStretch(1); - QHBoxLayout *ltPaths = new QHBoxLayout; - ltPaths->addWidget(lstPaths); - ltPaths->addLayout(ltButtonsPaths); + QHBoxLayout *ltPaths = new QHBoxLayout; + ltPaths->addWidget(lstPaths); + ltPaths->addLayout(ltButtonsPaths); - /* - * Output file - */ - QLabel *lblOutputFile = new QLabel(tr("Output file:")); - txtOutputFile = new QLineEdit(); - QPushButton *btnBrowse = new QPushButton(tr("Browse...")); - connect(btnBrowse, SIGNAL(clicked()), SLOT(browseOutput())); + /* + * Output file + */ + QLabel *lblOutputFile = new QLabel(tr("Output file:")); + txtOutputFile = new QLineEdit(); + QPushButton *btnBrowse = new QPushButton(tr("Browse...")); + connect(btnBrowse, SIGNAL(clicked()), SLOT(browseOutput())); - QHBoxLayout *ltOutput = new QHBoxLayout(); - ltOutput->addWidget(txtOutputFile); - ltOutput->addWidget(btnBrowse); + QHBoxLayout *ltOutput = new QHBoxLayout(); + ltOutput->addWidget(txtOutputFile); + ltOutput->addWidget(btnBrowse); - /* - * Extensions - */ - QLabel *lblExtensions = new QLabel(tr("Allowed extensions:")); - lstExtensionsAllowed = new QListWidget(); + /* + * Extensions + */ + QLabel *lblExtensions = new QLabel(tr("Allowed extensions:")); + lstExtensionsAllowed = new QListWidget(); - QPushButton *btnAddExtension = new QPushButton(tr("Add")); - connect(btnAddExtension, SIGNAL(clicked()), SLOT(addExtension())); - QPushButton *btnDeleteExtension = new QPushButton(tr("Delete")); - connect(btnDeleteExtension, SIGNAL(clicked()), SLOT(deleteExtension())); + QPushButton *btnAddExtension = new QPushButton(tr("Add")); + connect(btnAddExtension, SIGNAL(clicked()), SLOT(addExtension())); + QPushButton *btnDeleteExtension = new QPushButton(tr("Delete")); + connect(btnDeleteExtension, SIGNAL(clicked()), SLOT(deleteExtension())); - QVBoxLayout *ltButtonsExtensions = new QVBoxLayout(); - ltButtonsExtensions->addWidget(btnAddExtension); - ltButtonsExtensions->addWidget(btnDeleteExtension); - ltButtonsExtensions->addStretch(1); + QVBoxLayout *ltButtonsExtensions = new QVBoxLayout(); + ltButtonsExtensions->addWidget(btnAddExtension); + ltButtonsExtensions->addWidget(btnDeleteExtension); + ltButtonsExtensions->addStretch(1); - QHBoxLayout *ltExtensions = new QHBoxLayout(); - ltExtensions->addWidget(lstExtensionsAllowed); - ltExtensions->addLayout(ltButtonsExtensions); + QHBoxLayout *ltExtensions = new QHBoxLayout(); + ltExtensions->addWidget(lstExtensionsAllowed); + ltExtensions->addLayout(ltButtonsExtensions); - /* - * Buttons - */ - QPushButton *btnOk = new QPushButton(tr("OK")); - connect(btnOk, SIGNAL(clicked()), SLOT(accept())); - connect(btnOk, SIGNAL(clicked()), SLOT(writeSettings())); + /* + * Buttons + */ + QPushButton *btnOk = new QPushButton(tr("OK")); + connect(btnOk, SIGNAL(clicked()), SLOT(accept())); + connect(btnOk, SIGNAL(clicked()), SLOT(writeSettings())); - QPushButton *btnCancel = new QPushButton(tr("Cancel")); - connect(btnCancel, SIGNAL(clicked()), SLOT(reject())); + QPushButton *btnCancel = new QPushButton(tr("Cancel")); + connect(btnCancel, SIGNAL(clicked()), SLOT(reject())); - QHBoxLayout *ltButtons = new QHBoxLayout; - ltButtons->addStretch(1); - ltButtons->addWidget(btnOk); - ltButtons->addWidget(btnCancel); + QHBoxLayout *ltButtons = new QHBoxLayout; + ltButtons->addStretch(1); + ltButtons->addWidget(btnOk); + ltButtons->addWidget(btnCancel); - /* - * Main layout - */ - QVBoxLayout *ltMain = new QVBoxLayout; - ltMain->addWidget(lblPaths); - ltMain->addLayout(ltPaths); - ltMain->addWidget(lblOutputFile); - ltMain->addLayout(ltOutput); - ltMain->addWidget(lblExtensions); - ltMain->addLayout(ltExtensions); - ltMain->addLayout(ltButtons); + /* + * Main layout + */ + QVBoxLayout *ltMain = new QVBoxLayout; + ltMain->addWidget(lblPaths); + ltMain->addLayout(ltPaths); + ltMain->addWidget(lblOutputFile); + ltMain->addLayout(ltOutput); + ltMain->addWidget(lblExtensions); + ltMain->addLayout(ltExtensions); + ltMain->addLayout(ltButtons); - setLayout(ltMain); - setWindowTitle(tr("Sheet builder configuration")); - resize(500, 450); - readSettings(); + setLayout(ltMain); + setWindowTitle(tr("Sheet builder configuration")); + resize(500, 450); + readSettings(); } void SheetBuilderConfigDialog::addPath() { - QString path = - QFileDialog::getExistingDirectory(this, "Choose path"); - if (!path.isEmpty()) { - QListWidgetItem *newItem = new QListWidgetItem; - newItem->setText(path); - newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable); - lstPaths->addItem(newItem); - lstPaths->setCurrentItem(newItem); - } + QString path = + QFileDialog::getExistingDirectory(this, tr("Choose path")); + if (!path.isEmpty()) + { + QListWidgetItem *newItem = new QListWidgetItem; + newItem->setText(path); + newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable); + lstPaths->addItem(newItem); + lstPaths->setCurrentItem(newItem); + } } void SheetBuilderConfigDialog::addExtension() { - QListWidgetItem *newItem = new QListWidgetItem; - newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable); - lstExtensionsAllowed->addItem(newItem); - lstExtensionsAllowed->setCurrentItem(newItem); + QListWidgetItem *newItem = new QListWidgetItem; + newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable); + lstExtensionsAllowed->addItem(newItem); + lstExtensionsAllowed->setCurrentItem(newItem); } void SheetBuilderConfigDialog::deletePath() { - QListWidgetItem *removeItem = lstPaths->takeItem(lstPaths->currentRow()); - if (!removeItem) - delete removeItem; + QListWidgetItem *removeItem = lstPaths->takeItem(lstPaths->currentRow()); + if (!removeItem) + delete removeItem; } void SheetBuilderConfigDialog::deleteExtension() { - QListWidgetItem *removeItem - = lstExtensionsAllowed->takeItem(lstExtensionsAllowed->currentRow()); - if (!removeItem) - delete removeItem; + QListWidgetItem *removeItem + = lstExtensionsAllowed->takeItem(lstExtensionsAllowed->currentRow()); + if (!removeItem) + delete removeItem; } void SheetBuilderConfigDialog::browseOutput() { - QString fileName = - QFileDialog::getSaveFileName(this,tr("Choose output file"), ""); - if (!fileName.isEmpty()) - txtOutputFile->setText(fileName); + QString fileName = + QFileDialog::getSaveFileName(this, tr("Choose output file"), ""); + if (!fileName.isEmpty()) + txtOutputFile->setText(fileName); } void SheetBuilderConfigDialog::readSettings() { - QStringList paths; - QString outputFile; - QStringList extensions; + QStringList paths; + QString outputFile; + QStringList extensions; - QSettings settings("ovqt_sheet_builder.ini", QSettings::IniFormat); + QSettings *settings = Core::ICore::instance()->settings(); + settings->beginGroup("SheetBuilder"); + paths = settings->value("SheetPaths").toStringList(); + outputFile = settings->value("SheetOutputFile").toString(); + extensions = settings->value("ExtensionsAllowed").toStringList(); + settings->endGroup(); - paths = settings.value("SheetPaths").toStringList(); - outputFile = settings.value("SheetOutputFile").toString(); - extensions = settings.value("ExtensionsAllowed").toStringList(); + lstPaths->clear(); + lstExtensionsAllowed->clear(); - lstPaths->clear(); - lstExtensionsAllowed->clear(); + QListWidgetItem *newItem; - QListWidgetItem *newItem; + Q_FOREACH (QString path, paths) + { + newItem = new QListWidgetItem; + newItem->setText(path); + newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable); + lstPaths->addItem(newItem); + } - Q_FOREACH (QString path, paths) { - newItem = new QListWidgetItem; - newItem->setText(path); - newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable); - lstPaths->addItem(newItem); - } + txtOutputFile->setText(outputFile); - txtOutputFile->setText(outputFile); - - Q_FOREACH (QString extension, extensions) { - newItem = new QListWidgetItem; - newItem->setText(extension); - newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable); - lstExtensionsAllowed->addItem(newItem); - } + Q_FOREACH (QString extension, extensions) + { + newItem = new QListWidgetItem; + newItem->setText(extension); + newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable); + lstExtensionsAllowed->addItem(newItem); + } } void SheetBuilderConfigDialog::writeSettings() { - QStringList paths; - for (int i = 0; i < lstPaths->count(); i++) - paths.push_back(lstPaths->item(i)->text()); + QStringList paths; + for (int i = 0; i < lstPaths->count(); i++) + paths.push_back(lstPaths->item(i)->text()); - QString outputFile = txtOutputFile->text(); + QString outputFile = txtOutputFile->text(); - QStringList extensions; - for (int i = 0; i < lstExtensionsAllowed->count(); i++) - extensions.push_back(lstExtensionsAllowed->item(i)->text()); + QStringList extensions; + for (int i = 0; i < lstExtensionsAllowed->count(); i++) + extensions.push_back(lstExtensionsAllowed->item(i)->text()); - QSettings settings("./ovqt_sheet_builder.ini", QSettings::IniFormat); - settings.setValue("SheetPaths", paths); - settings.setValue("SheetOutputFile", outputFile); - settings.setValue("ExtensionsAllowed", extensions); + QSettings *settings = Core::ICore::instance()->settings(); + settings->beginGroup("SheetBuilder"); + settings->setValue("SheetPaths", paths); + settings->setValue("SheetOutputFile", outputFile); + settings->setValue("ExtensionsAllowed", extensions); + settings->endGroup(); + + // Forced save settings + settings->sync(); } diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderconfgdialog.h b/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderconfgdialog.h index 1d1f225f9..77455c92d 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderconfgdialog.h +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderconfgdialog.h @@ -24,23 +24,23 @@ class QLineEdit; class SheetBuilderConfigDialog : public QDialog { - Q_OBJECT + Q_OBJECT public: - explicit SheetBuilderConfigDialog(QWidget *parent = 0); + explicit SheetBuilderConfigDialog(QWidget *parent = 0); private Q_SLOTS: - void addPath(); - void addExtension(); - void deletePath(); - void deleteExtension(); - void browseOutput(); - void readSettings(); - void writeSettings(); + void addPath(); + void addExtension(); + void deletePath(); + void deleteExtension(); + void browseOutput(); + void readSettings(); + void writeSettings(); private: - QListWidget *lstPaths; - QListWidget *lstExtensionsAllowed; - QLineEdit *txtOutputFile; + QListWidget *lstPaths; + QListWidget *lstExtensionsAllowed; + QLineEdit *txtOutputFile; }; #endif // SHEETBUILDERCONFGDIALOG_H diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderdialog.cpp b/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderdialog.cpp index 1f49ef89c..bf6f4d7c5 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderdialog.cpp +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderdialog.cpp @@ -15,6 +15,11 @@ // along with this program. If not, see . #include "sheetbuilderdialog.h" +#include "sheetbuilder.h" +#include "sheetbuilderconfgdialog.h" +#include "../core/icore.h" +#include "../core/core_constants.h" + #include #include #include @@ -23,190 +28,185 @@ #include #include -#include "sheetbuilder.h" -#include "sheetbuilderconfgdialog.h" - -SheetBuilderDialog::SheetBuilderDialog(QWidget *parent) : - QDialog(parent) +SheetBuilderDialog::SheetBuilderDialog(QWidget *parent) + : QDialog(parent) { + QPushButton *btnOk = new QPushButton(tr("Make sheet")); + connect(btnOk, SIGNAL(clicked()), SLOT(buildSheet())); - QPushButton *btnOk = new QPushButton(tr("Make sheet")); - connect(btnOk, SIGNAL(clicked()), SLOT(buildSheet())); + QPushButton *btnCancel = new QPushButton(tr("Close")); + connect(btnCancel, SIGNAL(clicked()), SLOT(reject())); - QPushButton *btnCancel = new QPushButton(tr("Close")); - connect(btnCancel, SIGNAL(clicked()), SLOT(reject())); + chckClean = new QCheckBox(tr("Clean unwanted types from input")); - chckClean = new QCheckBox(tr("Clean unwanted types from input")); + txtOutput = new QTextEdit; + txtOutput->setMinimumHeight(300); + txtOutput->setMinimumWidth(500); + txtOutput->setReadOnly(true); + txtOutput->setFontFamily("Monospace, Courier New, monospace"); - txtOutput = new QTextEdit; - txtOutput->setMinimumHeight(300); - txtOutput->setMinimumWidth(500); - txtOutput->setReadOnly(true); - txtOutput->setFontFamily("Monospace, Courier New, monospace"); + QPushButton *btnDetails = new QPushButton(tr("Show/Hide details...")); + connect(btnDetails, SIGNAL(clicked()), SLOT(detailsShowHide())); - QPushButton *btnDetails = new QPushButton(tr("Show/Hide details...")); - connect(btnDetails, SIGNAL(clicked()), SLOT(detailsShowHide())); + QPushButton *btnConfig = new QPushButton(tr("Settings")); + connect(btnConfig, SIGNAL(clicked()), SLOT(showConfig())); - QPushButton *btnConfig = new QPushButton(tr("Settings")); - connect(btnConfig, SIGNAL(clicked()), SLOT(showConfig())); + QHBoxLayout *ltButtons = new QHBoxLayout; + ltButtons->addWidget(btnConfig); + ltButtons->addWidget(btnDetails); + ltButtons->addStretch(1); + ltButtons->addWidget(btnOk); + ltButtons->addWidget(btnCancel); - QHBoxLayout *ltButtons = new QHBoxLayout; - ltButtons->addWidget(btnConfig); - ltButtons->addWidget(btnDetails); - ltButtons->addStretch(1); - ltButtons->addWidget(btnOk); - ltButtons->addWidget(btnCancel); + QVBoxLayout *ltMain = new QVBoxLayout; + ltMain->addWidget(chckClean); + ltMain->addWidget(txtOutput, 1); + ltMain->addLayout(ltButtons); + ltMain->addStretch(); - QVBoxLayout *ltMain = new QVBoxLayout; - ltMain->addWidget(chckClean); - ltMain->addWidget(txtOutput, 1); - ltMain->addLayout(ltButtons); - ltMain->addStretch(); + txtOutput->hide(); + detailsVisible = false; - txtOutput->hide(); - detailsVisible = false; - - setLayout(ltMain); - defHeight = height(); - defWidth = 500; - resize(defWidth, defHeight); - setWindowTitle(tr("Sheet builder")); + setLayout(ltMain); + defHeight = height(); + defWidth = 500; + resize(defWidth, defHeight); + setWindowTitle(tr("Sheet builder")); } void SheetBuilderDialog::showConfig() { - SheetBuilderConfigDialog dlg(this); - dlg.exec(); + SheetBuilderConfigDialog dlg(this); + dlg.exec(); } void SheetBuilderDialog::detailsShowHide() { - if (!detailsVisible) { - defHeight = height(); - defWidth = width(); - } + if (!detailsVisible) + { + defHeight = height(); + defWidth = width(); + } - detailsVisible = !detailsVisible; - txtOutput->setVisible(detailsVisible); + detailsVisible = !detailsVisible; + txtOutput->setVisible(detailsVisible); - if (!detailsVisible) { - adjustSize(); - resize(defWidth, defHeight); - } + if (!detailsVisible) + { + adjustSize(); + resize(defWidth, defHeight); + } } void SheetBuilderDialog::displayInfo(QString str) { - txtOutput->append(str); + txtOutput->append(str); } void SheetBuilderDialog::buildSheet() { - QStringList paths; - QString outputFile; - QStringList extensions; + QStringList paths; + QString outputFile; + QStringList extensions; - QSettings settings("ovqt_sheet_builder.ini", QSettings::IniFormat); - paths = settings.value("SheetPaths").toStringList(); - outputFile = settings.value("SheetOutputFile").toString(); - extensions = settings.value("ExtensionsAllowed").toStringList(); + // read settings + QSettings *settings = Core::ICore::instance()->settings(); + settings->beginGroup("SheetBuilder"); + paths = settings->value("SheetPaths").toStringList(); + outputFile = settings->value("SheetOutputFile").toString(); + extensions = settings->value("ExtensionsAllowed").toStringList(); + settings->endGroup(); - bool clean = chckClean->isChecked(); - string configFileName("ovqt_sheet_builder.ini"); - string outputFileName(outputFile.toStdString()); + bool clean = chckClean->isChecked(); - if (outputFileName.empty()) { - displayInfo("Error: Output file is not specified"); - return; - } + string outputFileName(outputFile.toStdString()); - list inputDirs; - Q_FOREACH (QString str, paths) - inputDirs.push_back(str.toStdString()); + if (outputFileName.empty()) + { + displayInfo("Error: Output file is not specified"); + return; + } - // load the config files - 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()); - } - } + list inputDirs; + Q_FOREACH (QString str, paths) + inputDirs.push_back(str.toStdString()); - // get the current associations (read the sheet_id and fill the working structures) - readFormId( outputFileName ); + Q_FOREACH (QString str, extensions) + { + ExtensionsAllowed.insert(str.toStdString()); + } - // output path - sint lastSeparator = CFile::getLastSeparator(outputFileName); - string outputPath; - if( lastSeparator != -1 ) - { - outputPath = outputFileName.substr(0,lastSeparator+1); - } + // get the current associations (read the sheet_id and fill the working structures) + readFormId( outputFileName ); - // erase the unwanted extensions from map (modify the map, save it, and quit) - if( clean ) - { - if( ExtensionsAllowed.empty() ) - displayInfo("None extension list provided, the input will not be cleaned"); - else - { - map::iterator itSheets; - for( itSheets = IdToForm.begin(); itSheets != IdToForm.end(); ) - { - string extStr = CFile::getExtension( (*itSheets).second ); - if( !extStr.empty() ) - { - if( ExtensionsAllowed.find(extStr) == ExtensionsAllowed.end() ) - { - map::iterator itDel = itSheets++; - IdToForm.erase( itDel ); - } - else - ++itSheets; - } - } - COFile f( outputFileName ); - f.serialCont( IdToForm ); - } - displayInfo("The file has been cleaned"); - return; - } + // output path + sint lastSeparator = CFile::getLastSeparator(outputFileName); + string outputPath; + if( lastSeparator != -1 ) + { + outputPath = outputFileName.substr(0,lastSeparator+1); + } - // make the ids - makeId( inputDirs ); + // erase the unwanted extensions from map (modify the map, save it, and quit) + if( clean ) + { + if( ExtensionsAllowed.empty() ) + displayInfo(tr("None extension list provided, the input will not be cleaned")); + else + { + map::iterator itSheets; + for( itSheets = IdToForm.begin(); itSheets != IdToForm.end(); ) + { + string extStr = CFile::getExtension( (*itSheets).second ); + if( !extStr.empty() ) + { + if( ExtensionsAllowed.find(extStr) == ExtensionsAllowed.end() ) + { + map::iterator itDel = itSheets++; + IdToForm.erase( itDel ); + } + else + ++itSheets; + } + } + COFile f( outputFileName ); + f.serialCont( IdToForm ); + } + displayInfo("The file has been cleaned"); + return; + } + setCursor(Qt::WaitCursor); + // make the ids + makeId( inputDirs ); + setCursor(Qt::ArrowCursor); - // save the new map - COFile f( outputFileName ); - f.serialCont( IdToForm ); + // save the new map + COFile f( outputFileName ); + f.serialCont( IdToForm ); - string sheetListFileName = outputPath + "sheets.txt"; - COFile output; - if( !output.open(sheetListFileName,false,true) ) - { - displayInfo(QString("Can't open output file %1").arg(sheetListFileName.c_str())); - return; - } - map::iterator it1; - for( it1 = IdToForm.begin(); it1 != IdToForm.end(); ++it1 ) - { - string outputLine = " id: " + toString((*it1).first.Id) + " file: " + (*it1).second +"\n"; - output.serialBuffer((uint8*)(const_cast(outputLine.data())),(uint)outputLine.size()); - } + string sheetListFileName = outputPath + "sheets.txt"; + COFile output; + if( !output.open(sheetListFileName,false,true) ) + { + displayInfo(tr("Can't open output file %1").arg(sheetListFileName.c_str())); + return; + } + map::iterator it1; + for( it1 = IdToForm.begin(); it1 != IdToForm.end(); ++it1 ) + { + string outputLine = " id: " + toString((*it1).first.Id) + " file: " + (*it1).second +"\n"; + output.serialBuffer((uint8*)(const_cast(outputLine.data())),(uint)outputLine.size()); + } - displayInfo ("------------- results ----------------"); - displayInfo (QString("%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 (QString("%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("------------- results ----------------")); + displayInfo (tr("%1 files added in '%2'").arg(NbFilesAdded).arg(outputFileName.c_str())); + displayInfo (tr("%1 files discarded because they are empty, begin with .# _ and so on").arg(NbFilesDiscarded)); + displayInfo (tr("%1 files skipped because don't have extension").arg(NbFilesUnknownType)); + displayInfo (tr("%1 types added in '%1'").arg(NbTypesAdded).arg(outputFileName.c_str())); - displayInfo (QString("%1 supported file types :").arg(FileTypeToId.size())); - for ( map::iterator it = FileTypeToId.begin(); it != FileTypeToId.end(); ++it ) - { - displayInfo(QString("%1").arg((*it).first.c_str())); - } + displayInfo (tr("%1 supported file types :").arg(FileTypeToId.size())); + for ( map::iterator it = FileTypeToId.begin(); it != FileTypeToId.end(); ++it ) + { + displayInfo(QString("%1").arg((*it).first.c_str())); + } } diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderdialog.h b/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderdialog.h index 77cc1ac39..19dff2188 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderdialog.h +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderdialog.h @@ -24,24 +24,24 @@ class QTextEdit; class SheetBuilderDialog : public QDialog { - Q_OBJECT + Q_OBJECT public: - explicit SheetBuilderDialog(QWidget *parent = 0); - ~SheetBuilderDialog() {} + explicit SheetBuilderDialog(QWidget *parent = 0); + ~SheetBuilderDialog() {} private Q_SLOTS: - void buildSheet(); - void detailsShowHide(); - void showConfig(); + void buildSheet(); + void detailsShowHide(); + void showConfig(); private: - void displayInfo(QString str); + void displayInfo(QString str); - int defHeight; - int defWidth; - bool detailsVisible; - QCheckBox *chckClean; - QTextEdit *txtOutput; + int defHeight; + int defWidth; + bool detailsVisible; + QCheckBox *chckClean; + QTextEdit *txtOutput; }; #endif // SHEETBUILDERDIALOG_H