void MainWindow::loadLanguage(const QString& rLanguage) { if(m_currLang != rLanguage) { m_currLang = rLanguage; QLocale locale = QLocale(m_currLang); GlobalSettings::locale = m_currLang; QLocale::setDefault(locale); QString languageName = QLocale::languageToString(locale.language()); bool ok = switchTranslator(m_translatorQt, m_langPath + QString("/qt_%1.qm").arg(m_currLang)); ok = switchTranslator(m_translator, m_langPath + QString("/editor_%1.qm").arg(m_currLang)); WriteToLog(QtDebugMsg, QString("Translation-> try to retranslate")); if(ok) { ui->retranslateUi(this); WriteToLog(QtDebugMsg, QString("Translation-> done")); } else WriteToLog(QtDebugMsg, QString("Translation-> not changed (not okay)")); //Sync dynamic menus SyncRecentFiles(); updateWindowMenu(); langListSync(); clearFilter(); ui->statusBar->showMessage(tr("Current Language changed to %1").arg(languageName), 2000); } }
void MainWindow::OpenFile(QString FilePath, bool addToRecentList) { if(m_isFileReloading) return; m_isFileReloading = true; BoolReseter rst(&m_isFileReloading); Q_UNUSED(rst); if(!m_isAppInited) return; qApp->setActiveWindow(this); //Check if data configs are valid if( configs.check() ) { LogCritical(QString("Error! *.INI configs not loaded")); QMessageBox::warning(this, tr("Configuration is loaded with errors"), tr("Cannot open file:\n" "Configuration package loaded with errors.") .arg(ConfStatus::configPath)); //Show configuration status window on_actionCurConfig_triggered(); return; } QMdiSubWindow *newSubWin = NULL; QMdiSubWindow *existing = findOpenedFileWin(FilePath); if (existing) { ui->centralWidget->setActiveSubWindow(existing); return; } QFile file(FilePath); if (!file.open(QIODevice::ReadOnly)) { QMessageBox::critical(this, tr("File open error"), tr("Can't open the file: %1").arg(file.errorString()), QMessageBox::Ok); return; } QFileInfo in_1(FilePath); GlobalSettings::openPath = in_1.absoluteDir().absolutePath(); if((in_1.suffix().toLower() == "lvl")||(in_1.suffix().toLower() == "lvlx")) { LevelData FileData; LogDebug("> parsing level file format"); if( !FileFormats::OpenLevelFile(FilePath, FileData) ) { formatErrorMsgBox(FilePath, FileData.meta.ERROR_info, FileData.meta.ERROR_linenum, FileData.meta.ERROR_linedata); return; } LogDebug("File was read!"); FileData.meta.filename = util::getBaseFilename(in_1.fileName()); FileData.meta.path = in_1.absoluteDir().absolutePath(); FileData.playmusic = GlobalSettings::autoPlayMusic; file.close(); LogDebug("Creating of sub-window"); LevelEdit *child = createLvlChild(&newSubWin); if ( child->loadFile(FilePath, FileData, configs, GlobalSettings::LvlOpts) ) { child->show(); updateMenus(newSubWin, true); child->updateGeometry(); child->ResetPosition(); dock_LvlItemBox->setLvlItemBoxes(false, false); statusBar()->showMessage(tr("Level file loaded"), 2000); SetCurrentLevelSection(0); dock_LvlWarpProps->init(); dock_LvlLayers->setLayersBox(); if(GlobalSettings::autoPlayMusic) ui->actionPlayMusic->setChecked(true); on_actionPlayMusic_triggered(ui->actionPlayMusic->isChecked()); } else { LogDebug(">>File loading aborted"); //child->show(); child->LvlData.meta.modified = false; newSubWin->close(); LogDebug(">>Windows closed"); } } else if((in_1.suffix().toLower() == "wld")||(in_1.suffix().toLower() == "wldx")) { WorldData FileData; if( !FileFormats::OpenWorldFile( FilePath, FileData ) ) { formatErrorMsgBox(FilePath, FileData.meta.ERROR_info, FileData.meta.ERROR_linenum, FileData.meta.ERROR_linedata); return; } file.close(); WorldEdit *child = createWldChild(&newSubWin); if ( child->loadFile(FilePath, FileData, configs, GlobalSettings::LvlOpts) ) { child->show(); updateMenus(newSubWin, true); child->updateGeometry(); child->ResetPosition(); dock_WldItemBox->setWldItemBoxes(false, false); dock_WldSettingsBox->setCurrentWorldSettings(); if(FileData.HubStyledWorld) { dock_WldSettingsBox->setVisible(true); dock_WldSettingsBox->raise(); } statusBar()->showMessage(tr("World map file loaded"), 2000); } else { LogDebug(">>File loading aborted"); child->close(); newSubWin->close(); LogDebug(">>Windows closed"); } } else if(in_1.suffix().toLower() == "txt") { NPCConfigFile FileData; if( !FileFormats::ReadNpcTXTFileF(FilePath, FileData) ) { QMessageBox::critical(this, QObject::tr("File open error"), tr("Can't read the file"), QMessageBox::Ok); return; } if( !FileData.unknownLines.isEmpty() ) { QMessageBox::warning(this, QObject::tr("Unknown values are presented"), QObject::tr("Your file have an unknown values which will be removed\n" " when you will save file") + QString("\n====================================\n" "%1").arg(FileData.unknownLines), QMessageBox::Ok); } NpcEdit *child = createNPCChild(&newSubWin); if (child->loadFile(FilePath, FileData)) { statusBar()->showMessage(tr("NPC Config loaded"), 2000); child->show(); updateMenus(newSubWin, true); } else { child->close(); newSubWin->close(); } } else if(in_1.suffix().toLower() == "sav") { GamesaveData FileData; QString statistics; if(!FileFormats::ReadSMBX64SavFileF( FilePath, FileData)) { formatErrorMsgBox( FilePath, FileData.meta.ERROR_info, FileData.meta.ERROR_linenum, FileData.meta.ERROR_linedata ); return; } statistics+= QString("SMBX Game Save file version %1\n\n").arg(FileData.meta.RecentFormatVersion); if(FileData.gameCompleted) statistics+= " ====This game was completed====\n\n"; statistics+= QString("Lives: %1, Coins:%2, ").arg(FileData.lives).arg(FileData.coins); statistics+= QString("Total stars: %1, Gotten stars: %2\n") .arg(FileData.totalStars) .arg(FileData.gottenStars.size()); statistics+= QString("Position X=%1, Y=%2\n") .arg(FileData.worldPosX) .arg(FileData.worldPosY); if(FileData.musicID>0) { long item=configs.getMusWldI(FileData.musicID); if(item>=0) { statistics+= QString("Current music: %1\n\n").arg(configs.main_music_wld[item].name); } } statistics += "\n===========Players:============\n"; for(int i=0; i<FileData.characterStates.size();i++) { if(i<configs.main_characters.size()) statistics += QString("%1:\n").arg(configs.main_characters[i].name); else statistics += QString("<unknown character>:\n"); statistics += QString("Health: %1, ").arg(FileData.characterStates[i].health); statistics += QString("Power-UP: %1, ").arg(FileData.characterStates[i].state); switch(FileData.characterStates[i].mountType) { case 0: break; case 1: statistics += QString("Mounted vehicle: Shoe - "); switch(FileData.characterStates[i].mountID) { case 1: statistics += QString("Kuribo's (green)");break; case 2: statistics += QString("Podoboo's (red)");break; case 3: statistics += QString("Lakitu's (blue)");break; default: statistics += QString("of God Power :D");break; } break; case 3: statistics += QString("Mounted vehicle: Yoshi");break; default: statistics += QString("Mounted vehicle: <unknown>");break; } if( (FileData.characterStates[i].itemID>0) && configs.main_npc.contains(FileData.characterStates[i].itemID) ) { statistics += QString("%2Has item: %1") .arg(configs.main_npc[FileData.characterStates[i].itemID].setup.name) .arg(FileData.characterStates[i].mountType > 0 ? ", ":""); } if(i<FileData.characterStates.size()-1) statistics += "\n----------------------------\n"; } statistics += "\n=========================\n"; if( !FileData.meta.ReadFileValid ) return; QMessageBox::information(this, tr("Game save statistics"), statistics, QMessageBox::Ok); } else { QMessageBox::warning(this, tr("Bad file"), tr("This file have unknown extension"), QMessageBox::Ok); return; } // Add to recent fileList if(addToRecentList){ AddToRecentFiles(FilePath); SyncRecentFiles(); } }
void MainWindow::OpenFile(QString FilePath, bool addToRecentList) { if(_is_reloading) return; _is_reloading=true; BoolReseter rst(&_is_reloading); Q_UNUSED(rst); if(!continueLoad) return; qApp->setActiveWindow(this); //Check if data configs are valid if( configs.check() ) { WriteToLog(QtCriticalMsg, QString("Error! *.INI configs not loaded")); QMessageBox::warning(this, tr("Configuration is loaded with errors"), tr("Cannot open file:\nConfiguration package loaded with errors.").arg(ConfStatus::configPath)); //Show configuration status window on_actionCurConfig_triggered(); return; } QMdiSubWindow *existing = findOpenedFileWin(FilePath); if (existing) { ui->centralWidget->setActiveSubWindow(existing); return; } QFile file(FilePath); if (!file.open(QIODevice::ReadOnly)) { QMessageBox::critical(this, tr("File open error"), tr("Can't open the file."), QMessageBox::Ok); return; } QFileInfo in_1(FilePath); GlobalSettings::openPath = in_1.absoluteDir().absolutePath(); if((in_1.suffix().toLower() == "lvl")||(in_1.suffix().toLower() == "lvlx")) { LevelData FileData; WriteToLog(QtDebugMsg, "> parsing level file format"); FileData = FileFormats::OpenLevelFile(FilePath); if( !FileData.ReadFileValid ) return; WriteToLog(QtDebugMsg, "File was read!"); FileData.filename = in_1.baseName(); FileData.path = in_1.absoluteDir().absolutePath(); FileData.playmusic = GlobalSettings::autoPlayMusic; file.close(); WriteToLog(QtDebugMsg, "> Opem meta-file"); file.setFileName(FilePath+".meta"); if(QFileInfo(FilePath+".meta").exists()) { WriteToLog(QtDebugMsg, "> meta-file found, open them!"); if (file.open(QIODevice::ReadOnly)) { QString metaRaw; QTextStream meta(&file); meta.setCodec("UTF-8"); metaRaw = meta.readAll(); if(FileData.metaData.script != NULL) { delete FileData.metaData.script; FileData.metaData.script = NULL; } FileData.metaData = FileFormats::ReadNonSMBX64MetaData(metaRaw, FilePath+".meta"); WriteToLog(QtDebugMsg, "Meta-File was read!"); } else { QMessageBox::critical(this, tr("File open error"), tr("Can't open the file."), QMessageBox::Ok); } } WriteToLog(QtDebugMsg, "Creating of sub-window"); LevelEdit *child = createLvlChild(); if ( (bool)(child->loadFile(FilePath, FileData, configs, GlobalSettings::LvlOpts)) ) { child->show(); child->updateGeometry(); child->ResetPosition(); statusBar()->showMessage(tr("Level file loaded"), 2000); updateMenus(true); SetCurrentLevelSection(0); dock_LvlWarpProps->init(); dock_LvlLayers->setLayersBox(); if(GlobalSettings::autoPlayMusic) ui->actionPlayMusic->setChecked(true); on_actionPlayMusic_triggered(ui->actionPlayMusic->isChecked()); } else { WriteToLog(QtDebugMsg, ">>File loading aborted"); child->show(); if(activeChildWindow()==1) activeLvlEditWin()->LvlData.modified = false; ui->centralWidget->activeSubWindow()->close(); WriteToLog(QtDebugMsg, ">>Windows closed"); } } else if((in_1.suffix().toLower() == "wld")||(in_1.suffix().toLower() == "wldx")) { WorldData FileData; FileData= FileFormats::OpenWorldFile(FilePath); if( !FileData.ReadFileValid ) return; file.close(); file.setFileName(FilePath+".meta"); if(QFileInfo(FilePath+".meta").exists()) { if (file.open(QIODevice::ReadOnly)) { QString metaRaw; QTextStream meta(&file); meta.setCodec("UTF-8"); metaRaw = meta.readAll(); FileData.metaData = FileFormats::ReadNonSMBX64MetaData(metaRaw, FilePath+".meta"); } else { QMessageBox::critical(this, tr("File open error"), tr("Can't open the file."), QMessageBox::Ok); } } WorldEdit *child = createWldChild(); if ( (bool)(child->loadFile(FilePath, FileData, configs, GlobalSettings::LvlOpts)) ) { child->show(); child->updateGeometry(); child->ResetPosition(); updateMenus(true); dock_WldSettingsBox->setCurrentWorldSettings(); if(FileData.HubStyledWorld) { dock_WldSettingsBox->setVisible(true); dock_WldSettingsBox->raise(); } statusBar()->showMessage(tr("World map file loaded"), 2000); } else { child->close(); } //QMessageBox::information(this, tr("Dummy"), //tr("Sorry, the World Maps support is not inplemented in this version."), //QMessageBox::Ok); } else if(in_1.suffix().toLower() == "txt") { NPCConfigFile FileData = FileFormats::ReadNpcTXTFile(file); if( !FileData.ReadFileValid ) return; NpcEdit *child = createNPCChild(); if (child->loadFile(FilePath, FileData)) { statusBar()->showMessage(tr("NPC Config loaded"), 2000); child->show(); updateMenus(true); } else { child->close(); } } else if(in_1.suffix().toLower() == "sav") { GamesaveData FileData; QTextStream in(&file); //Read File in.setAutoDetectUnicode(true); in.setLocale(QLocale::system()); in.setCodec(QTextCodec::codecForLocale()); QString statistics; FileData = FileFormats::ReadSMBX64SavFile( in.readAll(), file.fileName() ); statistics+= QString("SMBX Game Save file version %1\n\n").arg(FileData.version); if(FileData.gameCompleted) statistics+= " ====This game was completed====\n\n"; statistics+= QString("Lives: %1, Coins:%2, ").arg(FileData.lives).arg(FileData.coins); statistics+= QString("Total stars: %1, Gotten stars: %2\n") .arg(FileData.totalStars) .arg(FileData.gottenStars.size()); statistics+= QString("Position X=%1, Y=%2\n") .arg(FileData.worldPosX) .arg(FileData.worldPosY); if(FileData.musicID>0) { long item=configs.getMusWldI(FileData.musicID); if(item>=0) { statistics+= QString("Current music: %1\n\n").arg(configs.main_music_wld[item].name); } } statistics += "\n===========Players:============\n"; for(int i=0; i<FileData.characterStates.size();i++) { if(i<configs.characters.size()) statistics += QString("%1:\n").arg(configs.characters[i].name); else statistics += QString("<unknown character>:\n"); statistics += QString("Health: %1, ").arg(FileData.characterStates[i].health); statistics += QString("Power-UP: %1, ").arg(FileData.characterStates[i].state); switch(FileData.characterStates[i].mountType) { case 0: break; case 1: statistics += QString("Mounted transport: Shoe - "); switch(FileData.characterStates[i].mountID) { case 1: statistics += QString("Kuribo's (green)");break; case 2: statistics += QString("Podoboo's (red)");break; case 3: statistics += QString("Lakitu's (blue)");break; default: statistics += QString("of God Power :D");break; } break; case 3: statistics += QString("Mounted transport: Yoshi");break; default: statistics += QString("Mounted transport: <unknown>");break; } if(FileData.characterStates[i].itemID>0) { int item= configs.getNpcI(FileData.characterStates[i].itemID); if(item>=0) { statistics += QString("%2Has item: %1").arg(configs.main_npc[item].name) .arg(FileData.characterStates[i].mountType>0?", ":""); } } if(i<FileData.characterStates.size()-1) statistics += "\n----------------------------\n"; } statistics += "\n=========================\n"; if( !FileData.ReadFileValid ) return; QMessageBox::information(this, tr("Game save statistics"), statistics, QMessageBox::Ok); } else { QMessageBox::warning(this, tr("Bad file"), tr("This file have unknown extension"), QMessageBox::Ok); return; } // Add to recent fileList if(addToRecentList){ AddToRecentFiles(FilePath); SyncRecentFiles(); } }
//////////Load settings from INI file/////////////// void MainWindow::loadSettings() { QString inifile = ApplicationPath + "/" + "pge_editor.ini"; QSettings settings(inifile, QSettings::IniFormat); settings.beginGroup("Main"); //GlobalSettings::LastOpenDir = settings.value("lastpath", ".").toString(); GlobalSettings::openPath = settings.value("lastpath", ".").toString(); GlobalSettings::savePath = settings.value("lastsavepath", ".").toString(); GlobalSettings::savePath_npctxt = settings.value("lastsavepath-npctxt", ".").toString(); GlobalSettings::LevelToolBoxVis = settings.value("level-tb-visible", "true").toBool(); GlobalSettings::SectionToolBoxVis = settings.value("section-tb-visible", "false").toBool(); GlobalSettings::LevelDoorsBoxVis = settings.value("level-doors-vis", "false").toBool(); GlobalSettings::LevelLayersBoxVis = settings.value("level-layers-vis", "false").toBool(); GlobalSettings::LevelEventsBoxVis = settings.value("level-events-vis", "false").toBool(); GlobalSettings::LevelSearchBoxVis = settings.value("level-search-vis", "false").toBool(); GlobalSettings::WorldToolBoxVis = settings.value("world-tb-visible", "true").toBool(); GlobalSettings::WorldSettingsToolboxVis = settings.value("world-props-visible", "false").toBool(); GlobalSettings::WorldSearchBoxVis = settings.value("world-search-visible", "false").toBool(); GlobalSettings::TilesetBoxVis = settings.value("tileset-box-visible", "false").toBool(); GlobalSettings::DebuggerBoxVis = settings.value("debugger-box-visible", "false").toBool(); GlobalSettings::BookmarksBoxVis = settings.value("bookmarks-box-visible", "false").toBool(); GlobalSettings::LvlOpts.animationEnabled = settings.value("animation", "true").toBool(); GlobalSettings::LvlOpts.collisionsEnabled = settings.value("collisions", "true").toBool(); restoreGeometry(settings.value("geometry", saveGeometry() ).toByteArray()); restoreState(settings.value("windowState", saveState() ).toByteArray()); GlobalSettings::autoPlayMusic = settings.value("autoPlayMusic", false).toBool(); GlobalSettings::musicVolume = settings.value("music-volume",100).toInt(); GlobalSettings::MidMouse_allowDuplicate = settings.value("editor-midmouse-allowdupe", false).toBool(); GlobalSettings::MidMouse_allowSwitchToPlace = settings.value("editor-midmouse-allowplace", false).toBool(); GlobalSettings::MidMouse_allowSwitchToDrag = settings.value("editor-midmouse-allowdrag", false).toBool(); GlobalSettings::Placing_dontShowPropertiesBox = settings.value("editor-placing-no-propsbox", false).toBool(); GlobalSettings::MainWindowView = (settings.value("tab-view", true).toBool()) ? QMdiArea::TabbedView : QMdiArea::SubWindowView; GlobalSettings::LVLToolboxPos = static_cast<QTabWidget::TabPosition>(settings.value("level-toolbox-pos", static_cast<int>(QTabWidget::North)).toInt()); GlobalSettings::WLDToolboxPos = static_cast<QTabWidget::TabPosition>(settings.value("world-toolbox-pos", static_cast<int>(QTabWidget::West)).toInt()); GlobalSettings::TSTToolboxPos = static_cast<QTabWidget::TabPosition>(settings.value("tileset-toolbox-pos", static_cast<int>(QTabWidget::North)).toInt()); GlobalSettings::currentTheme = settings.value("current-theme", "").toString(); PGE_MusPlayer::setSampleRate(settings.value("sdl-sample-rate", PGE_MusPlayer::sampleRate()).toInt()); ui->DoorsToolbox->setFloating(settings.value("doors-tool-box-float", true).toBool()); ui->LevelSectionSettings->setFloating(settings.value("level-section-set-float", true).toBool()); ui->LevelLayers->setFloating(settings.value("level-layers-float", true).toBool()); ui->LevelEventsToolBox->setFloating(settings.value("level-events-float", true).toBool()); ui->ItemProperties->setFloating(settings.value("item-props-box-float", true).toBool()); ui->FindDock->setFloating(settings.value("level-search-float", true).toBool()); //ui->WorldToolBox->setFloating(settings.value("world-item-box-float", false).toBool()); ui->WorldSettings->setFloating(settings.value("world-settings-box-float", true).toBool()); ui->WLD_ItemProps->setFloating(settings.value("world-itemprops-box-float", true).toBool()); ui->WorldFindDock->setFloating(settings.value("world-search-float", true).toBool()); ui->Tileset_Item_Box->setFloating(settings.value("tileset-box-float", true).toBool()); ui->debuggerBox->setFloating(settings.value("debugger-box-float", true).toBool()); ui->bookmarkBox->setFloating(settings.value("bookmarks-box-float", true).toBool()); ui->DoorsToolbox->restoreGeometry(settings.value("doors-tool-box-geometry", ui->DoorsToolbox->saveGeometry()).toByteArray()); ui->LevelSectionSettings->restoreGeometry(settings.value("level-section-set-geometry", ui->LevelSectionSettings->saveGeometry()).toByteArray()); ui->LevelLayers->restoreGeometry(settings.value("level-layers-geometry", ui->LevelLayers->saveGeometry()).toByteArray()); ui->LevelEventsToolBox->restoreGeometry(settings.value("level-events-geometry", ui->LevelLayers->saveGeometry()).toByteArray()); ui->ItemProperties->restoreGeometry(settings.value("item-props-box-geometry", ui->ItemProperties->saveGeometry()).toByteArray()); ui->FindDock->restoreGeometry(settings.value("level-search-geometry", ui->FindDock->saveGeometry()).toByteArray()); ui->WorldToolBox->restoreGeometry(settings.value("world-item-box-geometry", ui->WorldToolBox->saveGeometry()).toByteArray()); ui->WorldSettings->restoreGeometry(settings.value("world-settings-box-geometry", ui->WorldSettings->saveGeometry()).toByteArray()); ui->WLD_ItemProps->restoreGeometry(settings.value("world-itemprops-box-geometry", ui->WLD_ItemProps->saveGeometry()).toByteArray()); ui->WorldFindDock->restoreGeometry(settings.value("world-search-geometry", ui->WorldFindDock->saveGeometry()).toByteArray()); ui->Tileset_Item_Box->restoreGeometry(settings.value("tileset-itembox-geometry", ui->Tileset_Item_Box->saveGeometry()).toByteArray()); ui->debuggerBox->restoreGeometry(settings.value("debugger-box-geometry", ui->debuggerBox->saveGeometry()).toByteArray()); ui->bookmarkBox->restoreGeometry(settings.value("bookmarks-box-geometry", ui->bookmarkBox->saveGeometry()).toByteArray()); GlobalSettings::animatorItemsLimit = settings.value("animation-item-limit", "25000").toInt(); settings.endGroup(); settings.beginGroup("Recent"); for(int i = 1; i<=10;i++){ recentOpen.push_back(settings.value("recent"+QString::number(i),"<empty>").toString()); } SyncRecentFiles(); settings.endGroup(); }
//////////Load settings from INI file/////////////// void MainWindow::loadSettings() { QString inifile = AppPathManager::settingsFile(); QSettings settings(inifile, QSettings::IniFormat); #ifdef Q_OS_WIN #define FloatDocks true #define FloatDocks_inv false #else #define FloatDocks false #define FloatDocks_inv true #endif settings.beginGroup("Main"); { //GlobalSettings::LastOpenDir = settings.value("lastpath", ".").toString(); GlobalSettings::LvlOpts.animationEnabled = settings.value("animation", true).toBool(); GlobalSettings::LvlOpts.collisionsEnabled = settings.value("collisions", true).toBool(); GlobalSettings::LvlOpts.grid_show = settings.value("grid-show", false).toBool(); GlobalSettings::LvlItemDefaults.npc_direction=settings.value("defaults-npc-directuin", -1).toInt(); GlobalSettings::LvlItemDefaults.npc_generator_type=settings.value("defaults-npc-gen-type", 1).toInt(); GlobalSettings::LvlItemDefaults.npc_generator_delay=settings.value("defaults-npc-gen-delay", 20).toInt(); LvlPlacingItems::npcSet.direct=GlobalSettings::LvlItemDefaults.npc_direction; LvlPlacingItems::npcSet.generator_type=GlobalSettings::LvlItemDefaults.npc_generator_type; LvlPlacingItems::npcSet.generator_period=GlobalSettings::LvlItemDefaults.npc_generator_delay; GlobalSettings::LvlItemDefaults.warp_type=settings.value("defaults-warp-type", 2).toInt(); GlobalSettings::LvlItemDefaults.classicevents_tabs_layviz = settings.value("defaults-classicevents-tabs-layerviz", 0).toBool(); GlobalSettings::LvlItemDefaults.classicevents_tabs_laymov = settings.value("defaults-classicevents-tabs-layermov", 0).toBool(); GlobalSettings::LvlItemDefaults.classicevents_tabs_autoscroll = settings.value("defaults-classicevents-tabs-autoscroll", 0).toBool(); GlobalSettings::LvlItemDefaults.classicevents_tabs_secset = settings.value("defaults-classicevents-tabs-secset", 0).toBool(); GlobalSettings::LvlItemDefaults.classicevents_tabs_common = settings.value("defaults-classicevents-tabs-common", 0).toBool(); GlobalSettings::LvlItemDefaults.classicevents_tabs_buttons = settings.value("defaults-classicevents-tabs-buttons", 0).toBool(); GlobalSettings::LvlItemDefaults.classicevents_tabs_trigger = settings.value("defaults-classicevents-tabs-trigger", 0).toBool(); restoreGeometry(settings.value("geometry", saveGeometry() ).toByteArray()); restoreState(settings.value("windowState", saveState() ).toByteArray()); GlobalSettings::autoPlayMusic = settings.value("autoPlayMusic", false).toBool(); GlobalSettings::musicVolume = settings.value("music-volume",128).toInt(); GlobalSettings::MidMouse_allowDuplicate = settings.value("editor-midmouse-allowdupe", true).toBool(); GlobalSettings::MidMouse_allowSwitchToPlace = settings.value("editor-midmouse-allowplace", true).toBool(); GlobalSettings::MidMouse_allowSwitchToDrag = settings.value("editor-midmouse-allowdrag", true).toBool(); GlobalSettings::Placing_dontShowPropertiesBox = settings.value("editor-placing-no-propsbox", false).toBool(); GlobalSettings::historyLimit = settings.value("history-limit", 300).toInt(); GlobalSettings::MainWindowView = (settings.value("tab-view", true).toBool()) ? QMdiArea::TabbedView : QMdiArea::SubWindowView; GlobalSettings::LVLToolboxPos = static_cast<QTabWidget::TabPosition>(settings.value("level-toolbox-pos", static_cast<int>(QTabWidget::North)).toInt()); GlobalSettings::WLDToolboxPos = static_cast<QTabWidget::TabPosition>(settings.value("world-toolbox-pos", static_cast<int>(QTabWidget::West)).toInt()); GlobalSettings::TSTToolboxPos = static_cast<QTabWidget::TabPosition>(settings.value("tileset-toolbox-pos", static_cast<int>(QTabWidget::North)).toInt()); GlobalSettings::currentTheme = settings.value("current-theme", "").toString(); GlobalSettings::ShowTipOfDay = settings.value("show-tip-of-a-day", true).toBool(); PGE_MusPlayer::setSampleRate(settings.value("sdl-sample-rate", PGE_MusPlayer::sampleRate()).toInt()); GlobalSettings::openPath = settings.value("lastpath", AppPathManager::userAppDir()).toString(); GlobalSettings::savePath = settings.value("lastsavepath", AppPathManager::userAppDir()).toString(); GlobalSettings::savePath_npctxt = settings.value("lastsavepath-npctxt", AppPathManager::userAppDir()).toString(); GlobalSettings::animatorItemsLimit = settings.value("animation-item-limit", "30000").toInt(); // toolbox parameter prefix pointer to toolbox saved visibility state flag defaults: vis. flaoting loadToolboxProps(settings, QStringLiteral("level-item-box"), dock_LvlItemBox, true, false); loadToolboxProps(settings, QStringLiteral("level-itemprops-box"),dock_LvlItemProps, false, true); loadToolboxProps(settings, QStringLiteral("level-section-set"), dock_LvlSectionProps, true, true); loadToolboxProps(settings, QStringLiteral("level-warps-box"), dock_LvlWarpProps, false, true); loadToolboxProps(settings, QStringLiteral("level-layers"), dock_LvlLayers, true, true); loadToolboxProps(settings, QStringLiteral("level-events"), dock_LvlEvents, true, true); loadToolboxProps(settings, QStringLiteral("level-search"), dock_LvlSearchBox, false, true); loadToolboxProps(settings, QStringLiteral("world-item-box"), dock_WldItemBox, true, false); loadToolboxProps(settings, QStringLiteral("world-settings-box"),dock_WldSettingsBox, false, true); loadToolboxProps(settings, QStringLiteral("world-itemprops-box"),dock_WldItemProps, false, false); loadToolboxProps(settings, QStringLiteral("world-search"), dock_WldSearchBox, false, true); loadToolboxProps(settings, QStringLiteral("tileset-box"), dock_TilesetBox, false, true); loadToolboxProps(settings, QStringLiteral("debugger-box"), dock_DebuggerBox, false, true); loadToolboxProps(settings, QStringLiteral("bookmarks-box"), dock_BookmarksBox, false, true); loadToolboxProps(settings, QStringLiteral("variables-box"), dock_VariablesBox, false, true); ui->centralWidget->setViewMode(GlobalSettings::MainWindowView); dock_LvlItemBox->tabWidget()->setTabPosition(GlobalSettings::LVLToolboxPos); dock_WldItemBox->tabWidget()->setTabPosition(GlobalSettings::WLDToolboxPos); dock_TilesetBox->setTabPosition(GlobalSettings::TSTToolboxPos); if(!m_isAppInited) { //Hide all unitialized dock widgets QList<QDockWidget *> dockWidgets = findChildren<QDockWidget *>(); foreach(QDockWidget* dw, dockWidgets) dw->hide(); //Refresh state of menubars updateWindowMenu(); updateMenus(NULL, true); } } settings.endGroup(); settings.beginGroup("ext-tools"); { GlobalSettings::tools_sox_bin_path = settings.value("sox-bin-path", GlobalSettings::tools_sox_bin_path).toString(); } settings.endGroup(); settings.beginGroup("testing"); { GlobalSettings::testing.xtra_god = settings.value("ex-god", false).toBool(); GlobalSettings::testing.xtra_flyup = settings.value("ex-flyup", false).toBool(); GlobalSettings::testing.xtra_chuck = settings.value("ex-chuck", false).toBool(); GlobalSettings::testing.xtra_worldfreedom = settings.value("ex-wfree", false).toBool(); GlobalSettings::testing.xtra_debug = settings.value("ex-debug", false).toBool(); GlobalSettings::testing.xtra_showFPS = settings.value("ex-show-fps", false).toBool(); GlobalSettings::testing.xtra_physdebug = settings.value("ex-physdebug", false).toBool(); GlobalSettings::testing.numOfPlayers = settings.value("num-players", 1).toInt(); GlobalSettings::testing.p1_char= settings.value("p1-char", 1).toInt(); GlobalSettings::testing.p1_state= settings.value("p1-state", 1).toInt(); GlobalSettings::testing.p1_vehicleID = settings.value("p1-vehicle-id", 0).toInt(); GlobalSettings::testing.p1_vehicleType = settings.value("p1-vehicle-type", 0).toInt(); GlobalSettings::testing.p2_char= settings.value("p2-char", 1).toInt(); GlobalSettings::testing.p2_state= settings.value("p2-state", 1).toInt(); GlobalSettings::testing.p2_vehicleID = settings.value("p2-vehicle-id", 0).toInt(); GlobalSettings::testing.p2_vehicleType = settings.value("p2-vehicle-type", 0).toInt(); } settings.endGroup(); settings.beginGroup("screen-grab"); { GlobalSettings::screenGrab.sizeType = settings.value("grab-size", 0).toInt(); GlobalSettings::screenGrab.width = settings.value("grab-w", 800).toInt(); GlobalSettings::screenGrab.height = settings.value("grab-h", 600).toInt(); } settings.endGroup(); settings.beginGroup("Recent"); { for(int i = 1; i<=10; i++) { recentOpen.push_back(settings.value("recent"+QString::number(i),"<empty>").toString()); } SyncRecentFiles(); } settings.endGroup(); #ifdef _WIN32 settings.beginGroup("LunaTester"); { m_luna->m_noGL = settings.value("nogl", false).toBool(); } settings.endGroup(); #endif }