void Workspace::AddDocument(string projectName, QString& imageFullPath, ProcessingOptions& options) { QFileInfo imageFileInfo(imageFullPath); // Get project. Project* project = m_Projects[projectName].get(); m_ProjectsPersistentState[projectName] = false; QString projectDirPath = QString(project->GetDocumentsPath().c_str()); QDir projectDir(projectDirPath); // Copy image to project dir. QString dstImageFullPath = projectDir.absoluteFilePath(imageFileInfo.fileName()); QFile::copy(imageFullPath, dstImageFullPath); // Get image name. QString docNameQ = imageFileInfo.baseName(); std::string docName = Utils::StringQ2W(docNameQ); // Add image to project. Document* document = project->AddDocument( docName, Utils::StringQ2W(dstImageFullPath), options); // Add image to view model. auto projRowItem = m_ProjectsModel.findItems(Utils::StringW2Q(projectName)); ProjectItem* projectItem = (ProjectItem*) projRowItem.first(); ProjectItem* docItem = new ProjectItem(docName, true); QList<QStandardItem*> docRowItem; docRowItem << docItem; projectItem->appendRow(docItem); SetCurrent(project, projectItem, document, docItem); }