From 97765fa9a24ddfd8b00efe6a0d6324abec22edbd Mon Sep 17 00:00:00 2001 From: cxl Date: Fri, 3 Feb 2012 12:32:07 +0000 Subject: [PATCH] *ide: fixed more config issues git-svn-id: svn://ultimatepp.org/upp/trunk@4524 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/ide/Config.cpp | 31 +++++++++++++++++++++++-------- uppsrc/ide/UppDlg.h | 2 +- uppsrc/ide/ide.cpp | 3 +-- uppsrc/ide/ide.h | 4 ++++ uppsrc/ide/idewin.cpp | 4 +++- 5 files changed, 32 insertions(+), 12 deletions(-) diff --git a/uppsrc/ide/Config.cpp b/uppsrc/ide/Config.cpp index 7b6b0d4d8..d8f38d0f3 100644 --- a/uppsrc/ide/Config.cpp +++ b/uppsrc/ide/Config.cpp @@ -92,11 +92,31 @@ void Ide::SerializeWorkspace(Stream& s) { } -void Ide::Serialize(Stream& s) { +void Ide::SerializeLastMain(Stream& s) +{ + s % main; + String varsname = GetVarsName(); + s % varsname; + s % pocfg; + if(s.IsLoading()) + LoadVars(varsname); +} + +void Ide::SaveLastMain() +{ + StoreToFile(THISBACK(SerializeLastMain), ConfigFile("lastmain.cfg")); +} + +void Ide::LoadLastMain() +{ + LoadFromFile(THISBACK(SerializeLastMain), ConfigFile("lastmain.cfg")); +} + +void Ide::Serialize(Stream& s) +{ int version = 0; - s.Magic(0x2345432); + s.Magic(0x12341234); s / version; - s % last_main; s % AnySourceFs(); s % BasedSourceFs(); s % AnyPackageFs(); @@ -136,11 +156,6 @@ void Ide::Serialize(Stream& s) { s % default_charset; s % header_guards; s % insert_include; - String varsname = GetVarsName(); - s % varsname; // What is the point of this?! - s % pocfg; -// if(s.IsLoading()) -// LoadVars(varsname); SerializeGlobalConfigs(s); doc.Serialize(s); s % right_split; diff --git a/uppsrc/ide/UppDlg.h b/uppsrc/ide/UppDlg.h index f66eb9fd2..2a6d763e0 100644 --- a/uppsrc/ide/UppDlg.h +++ b/uppsrc/ide/UppDlg.h @@ -132,7 +132,7 @@ struct WorkspaceWork { UppList filelist; Vector fileindex; - String main, last_main; + String main; String actualpackage; int actualfileindex; Package actual; diff --git a/uppsrc/ide/ide.cpp b/uppsrc/ide/ide.cpp index fa3c21b13..d703e7fa1 100644 --- a/uppsrc/ide/ide.cpp +++ b/uppsrc/ide/ide.cpp @@ -165,13 +165,12 @@ bool Ide::OpenMainPackage() #else tt << " (TheIDE " << IDE_VERSION << ')'; #endif - String p = SelectPackage(tt, last_main, true, true); + String p = SelectPackage(tt, main, true, true); if(p.IsEmpty()) return false; main.Clear(); if(!IsOpen()) Open(); SetMain(p); - last_main = main; return true; } diff --git a/uppsrc/ide/ide.h b/uppsrc/ide/ide.h index 355a65ea3..e40929a05 100644 --- a/uppsrc/ide/ide.h +++ b/uppsrc/ide/ide.h @@ -961,6 +961,10 @@ public: String WorkspaceFile(); void SerializeWorkspace(Stream& s); + void SerializeLastMain(Stream& s); + void SaveLastMain(); + void LoadLastMain(); + // void PrintTime(dword time); void SetIdeState(int newstate); diff --git a/uppsrc/ide/idewin.cpp b/uppsrc/ide/idewin.cpp index a3876c862..5a6e2ab76 100644 --- a/uppsrc/ide/idewin.cpp +++ b/uppsrc/ide/idewin.cpp @@ -893,13 +893,15 @@ void AppMain___() #endif ActivateUsrLog(); } + ide.LoadLastMain(); if(clset || ide.OpenMainPackage()) { - ide.SaveConfig(); + ide.SaveLastMain(); SyncRefs(); ide.FileSelected(); ide.Run(); } ide.SaveConfig(); + ide.SaveLastMain(); #ifdef PLATFORM_POSIX StoreAsXMLFile(UpdaterCfg(),"SourceUpdater",ConfigFile("updates.xml")); #endif