bool cbEditorPanel::SaveAs() { wxFileName fname; fname.Assign(GetFilename()); ConfigManager* mgr = Manager::Get()->GetConfigManager(_T("app")); wxString Path = fname.GetPath(); wxString Extension = _T("nsd"); if(mgr && Path.IsEmpty()) Path = mgr->Read(_T("/file_dialogs/save_file_as/directory"), Path); wxFileDialog dlg(Manager::Get()->GetAppWindow(), _("Save file"), Path, fname.GetFullName(), m_filecontent->GetWildcard(), wxFD_SAVE | wxFD_OVERWRITE_PROMPT); if (dlg.ShowModal() != wxID_OK) // cancelled out { UpdateModified(); return false; } SetFilename(dlg.GetPath()); SetModified(true); m_IsOK = true; bool ret = m_filecontent->Save(GetFilename()); UpdateModified(); return ret; }
/** Set the modification flag * \return no return value */ void XPMEditorBase::SetModified(bool bModified) { //set modification flag m_bModified = bModified; if (m_pProjectFile) { if (m_bReadOnly) { m_pProjectFile->SetFileState(fvsReadOnly); } else if (m_bModified) { m_pProjectFile->SetFileState(fvsModified); UpdateModified(); } else { m_pProjectFile->SetFileState(fvsNormal); UpdateModified(); } } else { UpdateModified(); } }
bool wxsItemEditor::Save() { if ( !m_Data->Save() ) { // TODO: Some message here please } UpdateModified(); return true; }
bool cbEditorPanel::Save() { if ( !m_filecontent ) return false; if (!m_IsOK) return SaveAs(); bool ret = m_filecontent->Save(GetFilename()); m_IsOK = ret; UpdateModified(); return ret; }
/** Save the image under a new name * Set the modification flag * \return true on success, false on failure */ bool XPMEditorBase::SaveAs(void) { wxFileName fname; fname.Assign(m_Filename); ConfigManager* mgr = Manager::Get()->GetConfigManager(_T("app")); int StoredIndex = 0; wxString Filters = FileFilters::GetFilterString(); wxString Path = fname.GetPath(); wxString Extension = fname.GetExt(); wxString Filter; if (!Extension.IsEmpty()) { // use the current extension as the filter // Select filter belonging to this file type: Extension.Prepend(_T(".")); Filter = FileFilters::GetFilterString(Extension); } else if(mgr) { // File type is unknown. Select the last used filter: Filter = mgr->Read(_T("/file_dialogs/save_file_as/filter"), _T("bitmap files")); } if(!Filter.IsEmpty()) { // We found a filter, look up its index: int sep = Filter.find(_T("|")); if (sep != wxNOT_FOUND) { Filter.Truncate(sep); } if (!Filter.IsEmpty()) { FileFilters::GetFilterIndexFromName(Filters, Filter, StoredIndex); } } if(mgr && Path.IsEmpty()) { Path = mgr->Read(_T("/file_dialogs/save_file_as/directory"), Path); } wxFileDialog dlg(Manager::Get()->GetAppWindow(), _("Save file"), Path, fname.GetFullName(), Filters, wxFD_SAVE | wxFD_OVERWRITE_PROMPT); dlg.SetFilterIndex(StoredIndex); PlaceWindow(&dlg); if (dlg.ShowModal() != wxID_OK) { // cancelled out return(false); } m_Filename = dlg.GetPath(); Manager::Get()->GetLogManager()->Log(m_Filename); fname.Assign(m_Filename); m_Shortname = fname.GetFullName(); SetTitle(m_Shortname); // invalidate m_pProjectFile, because if kept, it would point to the ProjectFile with old name and // cause ProjectManager::RemoveFileFromProject called via context menu to crash if (m_pProjectFile) m_pProjectFile->SetFileState(fvsNormal); //so the original project file will be shown as unmodified. UpdateModified(); SetProjectFile(0); //Manager::Get()->GetLogManager()->Log(mltDevDebug, "Filename=%s\nShort=%s", m_Filename.c_str(), m_Shortname.c_str()); m_bIsFileNameOK = true; SetModified(true); // store the last used filter and directory if(mgr) { int Index = dlg.GetFilterIndex(); wxString Filter; if(FileFilters::GetFilterNameFromIndex(Filters, Index, Filter)) { mgr->Write(_T("/file_dialogs/save_file_as/filter"), Filter); } wxString Test = dlg.GetDirectory(); mgr->Write(_T("/file_dialogs/save_file_as/directory"), dlg.GetDirectory()); } return(Save()); }