void MainFrame::RestorePosition(const wxString &name) { bool maximized; int x, y, w, h; m_currentDir = wxT("./projects"); wxConfigBase *config = wxConfigBase::Get(); config->SetPath(name); if (config->Read(wxT("IsMaximized"), &maximized)) { Maximize(maximized); x = y = w = h = -1; config->Read(wxT("PosX"), &x); config->Read(wxT("PosY"), &y); config->Read(wxT("SizeW"), &w); config->Read(wxT("SizeH"), &h); SetSize(x, y, w, h); bool iconized = false; config->Read(wxT("IsIconized"), &iconized); if (iconized) Iconize(iconized); } config->Read(wxT("CurrentDirectory"), &m_currentDir); config->Read(wxT("RecentFile0"),&m_recentProjects[0]); config->Read(wxT("RecentFile1"),&m_recentProjects[1]); config->Read(wxT("RecentFile2"),&m_recentProjects[2]); config->Read(wxT("RecentFile3"),&m_recentProjects[3]); config->SetPath(wxT("..")); UpdateRecentProjects(); }
void MainWindow::ShowWelcome() { is_project_open_ = false; setWindowTitle("Multitrack"); welcome_widget_ = new WelcomeWidget(this); setCentralWidget(welcome_widget_); UpdateRecentProjects(); adjustSize(); resize(welcome_size_); connect(welcome_widget_, SIGNAL(New()), this, SLOT(NewProject())); connect(welcome_widget_, SIGNAL(Open()), this, SLOT(OpenProject())); connect(welcome_widget_, SIGNAL(RecentProjectChosen(int)), this, SLOT(OpenRecentProject(int))); ui->actionSave_project->setEnabled(false); ui->actionSave_project_as->setEnabled(false); ui->actionClose_project->setEnabled(false); }
void MainWindow::OpenProject(const QString &filename) { if (!is_project_open_ || project_widget_->Close()) { QFile file(filename); if (!file.open(QIODevice::ReadOnly)) { QMessageBox::critical(this, "Error", "Could not open file " + filename); } else { QDataStream ds(&file); ds >> *project_; file.close(); ViewProject(filename, true); // Update recent projects. RecentProject recent_project(project_->name(), filename); int ind = recent_projects_.indexOf(recent_project); if (ind != -1) recent_projects_.remove(ind); recent_projects_.insert(0, recent_project); UpdateRecentProjects(true); } }
void MainFrame::InsertRecentProject(const wxString &file) { bool found = false; int i; for (i = 0; i < 4 && !found; i++) found = (file == m_recentProjects[i]); if (found) // en i-1 está la posición encontrada (0 < i < 4) { // desplazamos desde 0 hasta i-1 una posición a la derecha for (i = i - 1; i > 0; i--) m_recentProjects[i] = m_recentProjects[i-1]; } else if (!found) { for (i = 3; i > 0; i--) m_recentProjects[i] = m_recentProjects[i-1]; } m_recentProjects[0] = file; UpdateRecentProjects(); }
void MainWindow::RemoveRecentProject(int pos) { recent_projects_.remove(pos); UpdateRecentProjects(true); }