|
From: Emilien K. <cur...@us...> - 2005-03-08 17:26:37
|
Update of /cvsroot/wxdevcenter/wxDevCenter/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32164/src Modified Files: Tag: manager-virtualization Application.cpp Project.cpp Added Files: Tag: manager-virtualization Manager.cpp Log Message: Adaptation du gestionnaire de projet à la nouvelle architecture des gestionnaires. Index: Project.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/Project.cpp,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -C2 -d -r1.3 -r1.3.2.1 *** Project.cpp 4 Mar 2005 16:09:46 -0000 1.3 --- Project.cpp 8 Mar 2005 17:26:28 -0000 1.3.2.1 *************** *** 36,40 **** */ Project::Project(): ! wxObject(), m_strName(""), m_strPath(""), --- 36,40 ---- */ Project::Project(): ! ManagedObject(), m_strName(""), m_strPath(""), *************** *** 86,94 **** */ ProjectTemplate::ProjectTemplate(wxClassInfo* pProjectClassInfo, wxString strName, wxString strDescript, wxString strIcon, wxString strExt): ! wxObject(), ! m_strName(strName), ! m_strDescript(strDescript), ! m_strIcon(strIcon), ! m_pProjectClassInfo(pProjectClassInfo) { if(!strExt.IsEmpty()) --- 86,91 ---- */ ProjectTemplate::ProjectTemplate(wxClassInfo* pProjectClassInfo, wxString strName, wxString strDescript, wxString strIcon, wxString strExt): ! ObjectTemplate<Project>(pProjectClassInfo, strName, strDescript), ! m_strIcon(strIcon) { if(!strExt.IsEmpty()) *************** *** 121,129 **** } ! // Crée un objet projet. ! Project* ProjectTemplate::CreateProject() ! { ! return (Project*)m_pProjectClassInfo->CreateObject(); ! } --- 118,126 ---- } ! //// Crée un objet projet. ! //Project* ProjectTemplate::CreateProject() ! //{ ! // return (Project*)m_pProjectClassInfo->CreateObject(); ! //} *************** *** 136,140 **** ProjectTemplate(pProjectClassInfo, strName, strDescript, strIcon, strExt) { ! wxGetApp().GetProjectManager().RegisterProjectType(this); } --- 133,137 ---- ProjectTemplate(pProjectClassInfo, strName, strDescript, strIcon, strExt) { ! wxGetApp().GetProjectManager().RegisterTemplate(this); } *************** *** 146,151 **** // Constructeur par défaut. ProjectManager::ProjectManager(): ! ProjectTemplateArray(), ! m_pCurrentProject(NULL) { } --- 143,147 ---- // Constructeur par défaut. ProjectManager::ProjectManager(): ! SingleObjectTemplateManager<Project, ProjectTemplate>() { } *************** *** 165,170 **** void ProjectManager::Finalize() { ! for(unsigned int n=0; n<GetProjectTemplateCount(); n++) ! GetProjectTemplate(n)->Finalize(); } --- 161,166 ---- void ProjectManager::Finalize() { ! for(unsigned int n=0; n<GetTemplateCount(); n++) ! GetTemplate(n).Finalize(); } *************** *** 176,187 **** { // Préfermeture. ! if(!m_pCurrentProject->CanCloseProject() && !bForce) return false; // Fermeture. ! if(!m_pCurrentProject->OnCloseProject() && !bForce) return false; // Destruction. ! delete m_pCurrentProject; ! m_pCurrentProject = NULL; } return true; --- 172,182 ---- { // Préfermeture. ! if(!GetProject().CanCloseProject() && !bForce) return false; // Fermeture. ! if(!GetProject().OnCloseProject() && !bForce) return false; // Destruction. ! DestroyCurrentObject(); } return true; *************** *** 201,207 **** return false; ! m_pCurrentProject = GetProjectTemplate(iTemplateIndex)->CreateProject(); ! if(m_pCurrentProject) { // Appelle de le chargement du projet. --- 196,202 ---- return false; ! CreateObject(iTemplateIndex); ! if(HasObject()) { // Appelle de le chargement du projet. *************** *** 209,213 **** if(pAr!=NULL) { ! if(m_pCurrentProject->OnOpenProject(*pAr)) { delete pAr; --- 204,208 ---- if(pAr!=NULL) { ! if(GetProject().OnOpenProject(*pAr)) { delete pAr; *************** *** 215,219 **** } } ! delete m_pCurrentProject; } return false; --- 210,214 ---- } } ! DestroyCurrentObject(); } return false; *************** *** 226,234 **** { // Appelle de le chargement du projet. ! FilePath path = m_pCurrentProject->GetPath(); Archive* pAr = wxGetApp().CreateDocumentArchive(path, Archive::write); if(pAr!=NULL) { ! if(m_pCurrentProject->OnSaveProject(*pAr)) { delete pAr; --- 221,229 ---- { // Appelle de le chargement du projet. ! FilePath path = GetProject().GetPath(); Archive* pAr = wxGetApp().CreateDocumentArchive(path, Archive::write); if(pAr!=NULL) { ! if(GetProject().OnSaveProject(*pAr)) { delete pAr; *************** *** 253,262 **** return false; ! m_pCurrentProject = GetProjectTemplate(iTemplateIndex)->CreateProject(); // Appelle de l'initialisation du projet. ! if(!m_pCurrentProject->OnCreateProject()) { ! delete m_pCurrentProject; return false; } --- 248,257 ---- return false; ! CreateObject(iTemplateIndex); // Appelle de l'initialisation du projet. ! if(!GetProject().OnCreateProject()) { ! DestroyCurrentObject(); return false; } *************** *** 265,291 **** } - // Accès à l'index d'un type de projet. - int ProjectManager::GetProjectTemplateIndex(const ProjectTemplate* pTemplate) - { - for(unsigned int n=0; n<GetCount(); n++) - if(Item(n)==pTemplate) - return n; - return -1; - } - - // Enregistre un type de projet. - bool ProjectManager::RegisterProjectType(ProjectTemplate* pTemplate) - { - if(GetProjectTemplateIndex(pTemplate)==-1) - { - if(pTemplate->Initialize()) - { - Add(pTemplate); - return true; - } - } - return false; - } - // Retourne le wildcard de tous les types de projets. wxString ProjectManager::GetAllWildcard(bool bShowStarDotStar, bool bShowAllRegisteredExt)const --- 260,263 ---- *************** *** 298,306 **** { strWild = wxString(WXDC_FILE_WILDCARD_ALLREGISTERED) + wxT("|"); ! for(m=0; m<GetCount(); m++) { ! for(n=0; n<GetProjectTemplate(m)->GetExtensionCount(); n++) { ! strWild << wxT("*.") << GetProjectTemplate(m)->GetExtension(n) << wxT(";"); } } --- 270,278 ---- { strWild = wxString(WXDC_FILE_WILDCARD_ALLREGISTERED) + wxT("|"); ! for(m=0; m<GetTemplateCount(); m++) { ! for(n=0; n<GetTemplate(m).GetExtensionCount(); n++) { ! strWild << wxT("*.") << GetTemplate(m).GetExtension(n) << wxT(";"); } } *************** *** 309,314 **** } ! for(n=0; n<GetCount(); n++) ! strWild << GetProjectTemplate(n)->GetDocWildcard(false); if(bShowStarDotStar) --- 281,286 ---- } ! for(n=0; n<GetTemplateCount(); n++) ! strWild << GetTemplate(n).GetDocWildcard(false); if(bShowStarDotStar) *************** *** 321,326 **** { wxArrayString ar; ! for(unsigned int n=0; n<GetProjectTemplateCount(); n++) ! ar.Add(GetProjectTemplate(n)->GetName() + wxT(" - ") + GetProjectTemplate(n)->GetDescript()); return wxGetSingleChoiceIndex(WXDC_PROJECT_QUERY_TYPE, WXDC_NAME, ar); } --- 293,298 ---- { wxArrayString ar; ! for(unsigned int n=0; n<GetTemplateCount(); n++) ! ar.Add(GetTemplate(n).GetName() + wxT(" - ") + GetTemplate(n).GetDescript()); return wxGetSingleChoiceIndex(WXDC_PROJECT_QUERY_TYPE, WXDC_NAME, ar); } *************** *** 330,336 **** { wxString strExt = strFile.GetFileExt(); ! for(unsigned int n=0; n<GetProjectTemplateCount(); n++) ! for(unsigned int m=0; m<GetProjectTemplate(n)->GetExtensionCount(); m++) ! if(strExt==GetProjectTemplate(n)->GetExtension(m)) return (int)n; return -1; --- 302,308 ---- { wxString strExt = strFile.GetFileExt(); ! for(unsigned int n=0; n<GetTemplateCount(); n++) ! for(unsigned int m=0; m<GetTemplate(n).GetExtensionCount(); m++) ! if(strExt==GetTemplate(n).GetExtension(m)) return (int)n; return -1; --- NEW FILE: Manager.cpp --- (This appears to be a binary file; contents omitted.) Index: Application.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/Application.cpp,v retrieving revision 1.15 retrieving revision 1.15.2.1 diff -C2 -d -r1.15 -r1.15.2.1 *** Application.cpp 7 Mar 2005 15:23:03 -0000 1.15 --- Application.cpp 8 Mar 2005 17:26:28 -0000 1.15.2.1 *************** *** 141,145 **** if(iProjectType==wxNOT_FOUND // Pas de sélection de type || iProjectType==0 // "Tous les types enregistrés" ! || iProjectType==(int)m_ProjectManager.GetProjectTemplateCount()) // "*.*" iProjectType = -1; --- 141,145 ---- if(iProjectType==wxNOT_FOUND // Pas de sélection de type || iProjectType==0 // "Tous les types enregistrés" ! || iProjectType==(int)m_ProjectManager.GetTemplateCount()) // "*.*" iProjectType = -1; |