void Application::OpenProject() { if(IsControllerOpen()) return; if(CloseProject()) { Draw(); main_frame->Refresh(); main_frame->Update(); bool result = project_controller ->OpenProject(main_frame, GetDefaultPath(), status_controller, layer_tree, graphic_factory); wms_request_manager->SetSRS(project_controller->GetSRS()); std::string title = project_controller->GetProjectFullName(); if (title!="") { main_frame->SetTitle (wxString((title + " - Rvzware").c_str(),wxConvUTF8)); } navigator_manager->SetAllNavigatorsToInitialPosition(); navigator_manager->GetFocusedOrFirstNavigator()->ShowHUD(result); main_frame->EnableGUI(result); TestDependencies("WmsLayer"); remote_controller->ConnectAllEntities(); } }
bool ProjectManager::CloseAllProjects(bool dontsave) { if (!dontsave) { if (!m_ui->QueryCloseAllProjects()) return false; } m_ui->FreezeTree(); m_IsClosingProject = true; while (m_pProjects->GetCount() != 0) { // Commented it by Heromyth // if (!CloseActiveProject(true)) if (!CloseProject(m_pProjects->Item(0), true, false)) { m_ui->UnfreezeTree(true); m_IsClosingProject = false; return false; } } if (!Manager::IsAppShuttingDown()) m_ui->RebuildTree(); m_ui->UnfreezeTree(true); if (!m_InitialDir.IsEmpty()) wxFileName::SetCwd(m_InitialDir); m_IsClosingProject = false; WorkspaceChanged(); return true; }
int ProjectFrame::OpenProject(const char *fname) { bsString file; if (fname == 0) { const char *spc = ProjectItem::GetFileSpec(PRJNODE_PROJECT); const char *ext = ProjectItem::GetFileExt(PRJNODE_PROJECT); if (!BrowseFile(1, file, spc, ext)) return 0; fname = file; } if (!CloseProject(1)) return 0; theProject = new SynthProject; if (!theProject) return 0; theProject->AddRef(); if (theProject->LoadProject(fname)) { bsString msg; msg = "Could not load project: "; msg += theProject->WhatHappened(); Alert(msg, "Ooops..."); prjTree->RemoveAll(); theProject->Release(); theProject = 0; return 0; } InitPlayer(); return 1; }
bool ProjectManager::CloseActiveProject(bool dontsave) { if (!CloseProject(m_pActiveProject, dontsave)) return false; if (m_pProjects->GetCount() > 0) SetProject(m_pProjects->Item(0)); return true; }
bool HierarchyTreeController::Load(const QString& projectPath) { CloseProject(); bool res = hierarchyTree.Load(projectPath); if (res) { emit HierarchyTreeUpdated(); emit ProjectLoaded(); } return res; }
bool ProjectManager::LoadProject(QDir projectPath, QString projectName, std::function<bool(int, int)> upgradeCallback) { CloseProject(); projectPath.cd(projectName); QString fullPath = projectPath.absoluteFilePath(projectName + ".dat"); char *charPath = charStringFromQString(fullPath); int ret = sqlite3_open(charPath, &db); free(charPath); if (ret == SQLITE_OK) { isOpen = true; const char versionSQL[] = "PRAGMA user_version;"; sqlite3_stmt *versionStatement; ret = sqlite3_prepare_v2(db, versionSQL, (int)strlen(versionSQL), &versionStatement, nullptr); int dbVersion = 0; if(ret == SQLITE_OK) { sqlite3_step(versionStatement); dbVersion = sqlite3_column_int(versionStatement, 0); sqlite3_finalize(versionStatement); } else { isOpen = false; return isOpen; } if (dbVersion < DATA_VERSION) { if(dbVersion != 0 && !upgradeCallback(dbVersion, DATA_VERSION)) { isOpen = false; return isOpen; } for (int ver = dbVersion + 1; ver <= DATA_VERSION; ++ver) { QStringList versionUpgradeSQL = UPGRADE_SQL[ver]; //TODO: upgrade for (QStringList::iterator i = versionUpgradeSQL.begin(); i != versionUpgradeSQL.end(); ++i) { QString sql = *i; sqlite3_stmt *stmt; char *charSQL = charStringFromQString(sql); ret = sqlite3_prepare_v2(db, charSQL, sql.length(), &stmt, nullptr); free(charSQL); if(ret == SQLITE_OK) { sqlite3_step(stmt); int x = sqlite3_column_int(stmt, 0); printf("response: %d", x); sqlite3_finalize(stmt); } } } } //TODO: load and populate item lists } return isOpen; }
int ProjectFrame::NewProject() { if (!CloseProject(1)) return 0; const char *spc = ProjectItem::GetFileSpec(PRJNODE_PROJECT); const char *ext = ProjectItem::GetFileExt(PRJNODE_PROJECT); bsString path; if (!BrowseFile(0, path, spc, ext)) return 0; theProject = new SynthProject; if (!theProject) return 0; theProject->AddRef(); int rv = theProject->NewProject(path); InitPlayer(); return rv; }
ezStatus ezToolsProject::CreateOrOpenProject(const char* szProjectPath, bool bCreate) { CloseProject(); new ezToolsProject(szProjectPath); ezStatus ret; if (bCreate) ret = GetSingleton()->Create(); else ret = GetSingleton()->Open(); if (ret.m_Result.Failed()) { delete GetSingleton(); return ret; } return ezStatus(EZ_SUCCESS); }
void ProjectManager::ReloadProject(cbProject *project) { m_ui->FreezeTree(); bool workspaceModified = m_pWorkspace ? m_pWorkspace->GetModified() : false; wxString name = project->GetFilename(); wxString activeProjectName = m_pActiveProject ? m_pActiveProject->GetFilename() : wxString(wxEmptyString); ProjectsArray projectDependencies; // all projects that the reloaded project depends on ProjectsArray projectsDependingOnReloaded; // all projects that depend on the reloaded project for (DepsMap::iterator it = m_ProjectDeps.begin(); it != m_ProjectDeps.end(); ++it) { if (!it->second) continue; if (it->first == project) projectDependencies = *(it->second); else { if (it->second->Index(project) != wxNOT_FOUND) projectsDependingOnReloaded.push_back(it->first); } } int originalPosition = m_pProjects->Index(project); CloseProject(project); cbProject *loadedProject = LoadProject(name); if (loadedProject) { if (!projectDependencies.empty()) { for (ProjectsArray::iterator it = projectDependencies.begin(); it != projectDependencies.end(); ++it) AddProjectDependency(loadedProject, *it); } if (!projectsDependingOnReloaded.empty()) { for (ProjectsArray::iterator it = projectsDependingOnReloaded.begin(); it != projectsDependingOnReloaded.end(); ++it) { AddProjectDependency(*it, loadedProject); } } int loadedPosition = -1; int index = 0; cbProject *projectToActivate = nullptr; for (ProjectsArray::iterator it = m_pProjects->begin(); it != m_pProjects->end(); ++it, ++index) { if (*it == loadedProject) loadedPosition = index; if ((*it)->GetFilename() == activeProjectName) projectToActivate = *it; } m_pProjects->RemoveAt(loadedPosition); m_pProjects->Insert(loadedProject, originalPosition); if (projectToActivate) m_pActiveProject = projectToActivate; m_ui->RebuildTree(); if (m_pWorkspace) m_pWorkspace->SetModified(workspaceModified); } m_ui->UnfreezeTree(); }
Pipeline::~Pipeline() { CloseProject(); }