void MainWindow::on_treeView_clicked(const QModelIndex &index) { auto item = (ProjectItem*) Workspace::Instance.GetProjectsModel()->itemFromIndex(index); std::string name = item->GetName(); if (item->IsDocument()) { ProjectItem* parent = (ProjectItem*) item->parent(); if (Workspace::Instance.GetCurrentProject()->GetName() == parent->GetName() && Workspace::Instance.GetCurrentDocument()->GetName() == item->GetName()) return; Workspace::Instance.SetCurrent(parent->GetName(), item->GetName()); } else { if (Workspace::Instance.GetCurrentProject()->GetName() == name) return; Workspace::Instance.SetCurrent(item->GetName()); } RefreshImage(); on_actionFit_to_Window_triggered(); }
void MainWindow::on_actionClose_Project_triggered() { if (Workspace::Instance.GetCurrentProject() == nullptr) return; bool cancel = false; if (!Workspace::Instance.IsCurrentProjectPersistent()) { QMessageBox msgBox; msgBox.setWindowTitle(QString("Pitanje")); msgBox.setText(QString("Želite li da sačuvate promene?")); msgBox.setIcon(QMessageBox::Question); msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel); msgBox.setDefaultButton(QMessageBox::Yes); int ret = msgBox.exec(); if (ret == QMessageBox::Yes) { Workspace::Instance.SaveCurrentProject(); } else if (ret == QMessageBox::Cancel) { cancel = true; } } if (!cancel) { Workspace::Instance.CloseCurrentProject(); QModelIndex index = ui->treeView->currentIndex(); if (index.isValid()) { ProjectItem* item = (ProjectItem*) Workspace::Instance.GetProjectsModel()->itemFromIndex(index); if (item->IsDocument()) { ProjectItem* parent = (ProjectItem*) item->parent(); Workspace::Instance.SetCurrent(parent->GetName(), item->GetName()); } else { Workspace::Instance.SetCurrent(item->GetName()); } } RefreshImage(); } }
void FilelistOrder::OnFileMvdn(wxCommandEvent& evt) { int sel = fileList->GetSelection(); if (sel == wxNOT_FOUND) return; ProjectItem *p = (ProjectItem *)fileList->GetClientData(sel); fileList->Delete(sel); sel++; fileList->Insert(p->GetName(), (unsigned int)sel, reinterpret_cast<void*>(p)); fileList->SetSelection(sel); EnableUpDn(); }
void MainWindow::on_actionRemove_Image_triggered() { Workspace::Instance.RemoveCurrentDocument(); QModelIndex index = ui->treeView->currentIndex(); if (index.isValid()) { ProjectItem* item = (ProjectItem*) Workspace::Instance.GetProjectsModel()->itemFromIndex(index); if (item->IsDocument()) { ProjectItem* parent = (ProjectItem*) item->parent(); Workspace::Instance.SetCurrent(parent->GetName(), item->GetName()); } else { Workspace::Instance.SetCurrent(item->GetName()); } } RefreshImage(); }
void Workspace::SetCurrent(std::string projectName, std::string documentName) { Project* proj = nullptr; ProjectItem* projItem = nullptr; Document* doc = nullptr; ProjectItem* docItem = nullptr; // Get project; proj = m_Projects[projectName].get(); // Get project view item. auto projRowItem = m_ProjectsModel.findItems(Utils::StringW2Q(projectName)); projItem = (ProjectItem*) projRowItem.first(); // If document is not specified, use first doc. auto docs = proj->GetDocuments(); if (documentName.empty() && !docs.empty()) { documentName = docs.front()->GetName(); } // If there is document, get document and document view item. if (!documentName.empty()) { // Get document. for (auto d : docs) { if (d->GetName().compare(documentName) == 0) { doc = d; break; } } // Get document view item. for (int i = 0; i < (int) docs.size(); i++) { ProjectItem* di = (ProjectItem*) projItem->child(i); if(di->GetName().compare(documentName) == 0) { docItem = di; break; } } } SetCurrent(proj, projItem, doc, docItem); }
void ScoreErrorsDlg::Refresh() { itmSel.ResetContent(); ProjectItem *pi = prjTree->FirstChild(theProject->nlInfo); while (pi) { if (pi->GetType() == PRJNODE_NOTEFILE) { int ndx = itmSel.AddString(pi->GetName()); itmSel.SetItemDataPtr(ndx, (void*)pi); } pi = prjTree->NextSibling(pi); } itmSel.SetCurSel(0); ShowErrors(); }
void FilelistOrder::OnInitDialog(wxInitDialogEvent& evt) { CenterOnParent(); if (pi) { ProjectItem *ch = prjTree->FirstChild(pi); while (ch) { fileList->Append(ch->GetName(), reinterpret_cast<void*>(ch)); ch = prjTree->NextSibling(ch); } } if (fileList->GetCount() > 0) fileList->SetSelection(0); EnableUpDn(); }
void ProjectFrame::RemoveItem() { ProjectItem *itm = prjTree->GetSelectedNode(); if(itm) { bsString prompt; prompt = "Remove item '"; prompt += itm->GetName(); prompt += "'?"; if (prjFrame->Verify(prompt, "Verify...")) { if (itm->RemoveItem()) { CloseEditor(itm); prjTree->RemoveNode(itm); theProject->SetChange(1); } } } }