diff --git a/uppsrc/CtrlLib/PopupTable.cpp b/uppsrc/CtrlLib/PopupTable.cpp index 56090ae18..33cef0373 100644 --- a/uppsrc/CtrlLib/PopupTable.cpp +++ b/uppsrc/CtrlLib/PopupTable.cpp @@ -103,8 +103,9 @@ void PopUpTable::PopUp(Ctrl *owner, int x, int top, int bottom, int width) { void PopUpTable::PopUp(Ctrl *owner, int width) { Rect r = owner->GetScreenRect(); - r.right = r.left + width; - PopUp(owner, r.left, r.top, r.bottom, width ? width : r.Width()); + if(width) + r.right = r.left + width; + PopUp(owner, r.left, r.top, r.bottom, r.Width()); } void PopUpTable::PopUp(Ctrl *owner) diff --git a/uppsrc/ide/Browser/File.cpp b/uppsrc/ide/Browser/File.cpp index 385189cd0..3e3f23375 100644 --- a/uppsrc/ide/Browser/File.cpp +++ b/uppsrc/ide/Browser/File.cpp @@ -150,17 +150,20 @@ void SaveGroupInc(const String& grouppath) void SetTopicGroupIncludeable(const char *path, bool set) { - FindFile ff(AppendFileName(path, "*.tpp")); + FindFile ff(AppendFileName(path, "*.*")); while(ff) { - if(GetFileExt(ff.GetName()) == ".tpp") { - String s = AppendFileName(path, ff.GetName()); - String t = AppendFileName(path, ForceExt(ff.GetName(), ".tppi")); - if(set) { - Topic p = ReadTopic(LoadFile(s)); - SaveFile(t, WriteTopicI(p.title, ParseQTF(p.text))); + if(ff.IsFile()) { + String fn = ff.GetName(); + String t = AppendFileName(path, ForceExt(fn, ".tppi")); + if(GetFileExt(fn) == ".tpp") { + String s = AppendFileName(path, fn); + if(set) { + Topic p = ReadTopic(LoadFile(s)); + SaveFile(t, WriteTopicI(p.title, ParseQTF(p.text))); + } } - else - FileDelete(t); + if(GetFileExt(fn) == ".tppi" && !set) + DeleteFile(t); } ff.Next(); } diff --git a/uppsrc/ide/Browser/Move.cpp b/uppsrc/ide/Browser/Move.cpp index a234c3a23..b97f1f470 100644 --- a/uppsrc/ide/Browser/Move.cpp +++ b/uppsrc/ide/Browser/Move.cpp @@ -72,13 +72,18 @@ void TopicEditor::MoveTopic() } Flush(); RealizeDirectory(GetFileFolder(np)); + String pi = ForceExt(p, ".tppi"); if(!SaveFile(np, LoadFile(p))) { Exclamation("Operation failed!"); + TopicCursor(); return; } + SaveFile(ForceExt(np, ".tppi"), LoadFile(pi)); serial++; FileDelete(p); + FileDelete(pi); InvalidateTopicInfoPath(p); InvalidateTopicInfoPath(np); + TheIde()->IdeFlushFile(); TheIde()->IdeOpenTopicFile(np); } diff --git a/uppsrc/ide/Browser/Topic.cpp b/uppsrc/ide/Browser/Topic.cpp index ebf11d210..1e2e36383 100644 --- a/uppsrc/ide/Browser/Topic.cpp +++ b/uppsrc/ide/Browser/Topic.cpp @@ -21,7 +21,6 @@ void LoadTopics(FileList& topic, const String& grouppath) while(ff) { if(ff.IsFile() && GetFileExt(ff.GetName()) == ".tpp") topic.Add(GetFileTitle(ff.GetName()), TopicImg::Topic()); - ff.Next(); } topic.Sort(ListOrder()); topic.Enable(); diff --git a/uppsrc/ide/Common/Common.h b/uppsrc/ide/Common/Common.h index ec941c30f..32e9a4068 100644 --- a/uppsrc/ide/Common/Common.h +++ b/uppsrc/ide/Common/Common.h @@ -67,6 +67,7 @@ public: virtual void IdeSetBar() = 0; virtual void IdeGotoCodeRef(String link) = 0; virtual void IdeOpenTopicFile(const String& file) = 0; + virtual void IdeFlushFile() = 0; virtual ~IdeContext() {} }; diff --git a/uppsrc/ide/ide.h b/uppsrc/ide/ide.h index 0db4451ba..dc269c7ba 100644 --- a/uppsrc/ide/ide.h +++ b/uppsrc/ide/ide.h @@ -531,6 +531,7 @@ public: virtual void IdeSetBar(); virtual void IdeGotoCodeRef(String coderef); virtual void IdeOpenTopicFile(const String& file); + virtual void IdeFlushFile(); enum { EDITING, BUILDING, RUNNING, DEBUGGING, diff --git a/uppsrc/ide/idetool.cpp b/uppsrc/ide/idetool.cpp index 5801f2b07..aea18b2ee 100644 --- a/uppsrc/ide/idetool.cpp +++ b/uppsrc/ide/idetool.cpp @@ -102,13 +102,18 @@ void Ide::OpenATopic() OpenTopic(t); } +void Ide::IdeFlushFile() +{ + FlushFile(); +} + void Ide::IdeOpenTopicFile(const String& file) { EditFile(GetFileFolder(file)); if(designer) { TopicEditor *te = dynamic_cast(&designer->DesignerCtrl()); if(te) - te->GoTo(GetFileName(file), "", ""); + te->GoTo(GetFileTitle(file), "", ""); } } diff --git a/uppsrc/ide/version.h b/uppsrc/ide/version.h index 1d11e507f..d23516750 100644 --- a/uppsrc/ide/version.h +++ b/uppsrc/ide/version.h @@ -1 +1 @@ -#define IDE_VERSION "810.r167" +#define IDE_VERSION "811.r168"