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;
}
Exemple #5
0
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;
}
Exemple #8
0
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();
}
Exemple #10
0
Pipeline::~Pipeline()
{
	CloseProject();
}