From 5855949de46bc068b2f2054240295e2ef2aee783 Mon Sep 17 00:00:00 2001 From: cxl Date: Thu, 14 May 2009 06:38:39 +0000 Subject: [PATCH] Syncing uppdev git-svn-id: svn://ultimatepp.org/upp/trunk@1174 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppdev/Any/Any.cpp | 2 + uppdev/CodeIndex/CodeIndex.upp | 9 ++ uppdev/CodeIndex/main.cpp | 145 +++++++++++++++++++++++++++++++++ uppdev/RSS/RSS.cpp | 28 +++++++ uppdev/RSS/RSS.upp | 10 +++ uppdev/RSS/init | 5 ++ uppdev/TestLag/TestLag.upp | 10 +++ uppdev/TestLag/init | 5 ++ uppdev/TestLag/main.cpp | 21 +++++ uppdev/aaa/a.h | 1 + uppdev/aaa/aaa.h | 44 +++++++++- 11 files changed, 279 insertions(+), 1 deletion(-) create mode 100644 uppdev/CodeIndex/CodeIndex.upp create mode 100644 uppdev/CodeIndex/main.cpp create mode 100644 uppdev/RSS/RSS.cpp create mode 100644 uppdev/RSS/RSS.upp create mode 100644 uppdev/RSS/init create mode 100644 uppdev/TestLag/TestLag.upp create mode 100644 uppdev/TestLag/init create mode 100644 uppdev/TestLag/main.cpp diff --git a/uppdev/Any/Any.cpp b/uppdev/Any/Any.cpp index 41d8586f3..674ecfbbb 100644 --- a/uppdev/Any/Any.cpp +++ b/uppdev/Any/Any.cpp @@ -2,6 +2,8 @@ using namespace Upp; +#define TEST + CONSOLE_APP_MAIN { Any alpha; diff --git a/uppdev/CodeIndex/CodeIndex.upp b/uppdev/CodeIndex/CodeIndex.upp new file mode 100644 index 000000000..ac5475e01 --- /dev/null +++ b/uppdev/CodeIndex/CodeIndex.upp @@ -0,0 +1,9 @@ +uses + CtrlLib, + CodeEditor; + +file + main.cpp; + +mainconfig + "" = "GUI"; diff --git a/uppdev/CodeIndex/main.cpp b/uppdev/CodeIndex/main.cpp new file mode 100644 index 000000000..3ff1ecb14 --- /dev/null +++ b/uppdev/CodeIndex/main.cpp @@ -0,0 +1,145 @@ +#include + +using namespace Upp; + +struct CodeIndex : public TopWindow { + virtual bool Key(dword key, int count); + + FileList files; + CodeEditor view; + ToolBar toolbar; + Splitter split; + EditString search; + + Index exts; + Index file; + VectorMap > index; + + void ScanFile(const String& f); + void Scan(const String& dir, Progress& pi, int64& amount); + void Scan(); + void Serialize(Stream& s); + void ToolBar(Bar& bar); + void File(); + +public: + typedef CodeIndex CLASSNAME; + + CodeIndex(); +}; + +void CodeIndex::ScanFile(const String& fn) { + DUMP(fn); + int fi = file.GetCount(); + file.Add(fn); + String f = LoadFile(fn); + const char *q = f; + for(;;) { + int c = *q; + if(IsAlpha(c) || c == '_') { + const char *b = q++; + while(IsAlNum(*q) || *q == '_') q++; + Vector& mf = index.GetAdd(String(b, q)); + if(mf.GetCount() == 0 || mf.Top() != fi) + mf.Add(fi); + } + else { + if(!c) break; + q++; + } + } +} + +int NoP(int c) +{ + return c == '%' ? 0 : c; +} + +void CodeIndex::Scan(const String& dir, Progress& pi, int64& amount) +{ + FindFile ff(AppendFileName(dir, "*.*")); + while(ff) { + String p = AppendFileName(dir, ff.GetName()); + if(ff.IsFile()) { + String ext = ToUpper(GetFileExt(ff.GetName())); + if(pi.StepCanceled()) + throw Exc(); + if(ext.GetCount() && exts.Find(ext.Mid(1)) >= 0) + ScanFile(p); + amount += ff.GetLength(); + } + if(ff.IsFolder()) { + pi.SetText(AsString(amount >> 20) + " MB: " + Filter(p, NoP)); + Scan(p, pi, amount); + } + ff.Next(); + } +} + +void CodeIndex::Scan() +{ + try { + Progress pi; + int64 amount = 0; + pi.AlignText(ALIGN_LEFT); + Scan("f:/exsrc", pi, amount); + } + catch(Exc) {} +} + +void CodeIndex::ToolBar(Bar& bar) +{ + bar.Add(search, INT_MAX); +} + +bool CodeIndex::Key(dword key, int count) +{ + if(key == K_ENTER) { + files.Clear(); + int q = index.Find(~search); + if(q >= 0) { + Vector& f = index[q]; + for(int i = 0; i < f.GetCount(); i++) + files.Add(file[f[i]]); + } + return true; + } + return false; +} + +void CodeIndex::File() +{ + view.Clear(); + if(files.IsCursor()) + view <<= LoadFile(files.GetCurrentName()); +} + +CodeIndex::CodeIndex() +{ + Add(split.Horz(files, view)); + split.SetPos(2000); + files.AddFrame(toolbar); + view.SetReadOnly(); + toolbar.Set(THISBACK(ToolBar)); + exts = Split("C;CPP;H;HPP", ';'); + files.WhenSel = THISBACK(File); +} + +void CodeIndex::Serialize(Stream& s) +{ + s.Magic(0x76129812); + s % file; + s % index; +} + +GUI_APP_MAIN +{ + CodeIndex app; + LoadFromFile(app); + if(app.index.GetCount() == 0) + app.Scan(); + app.Run(); + StoreToFile(app); +// Progress pi; +// b.Scan("f:/exsrc", &pi); +} diff --git a/uppdev/RSS/RSS.cpp b/uppdev/RSS/RSS.cpp new file mode 100644 index 000000000..8177ce993 --- /dev/null +++ b/uppdev/RSS/RSS.cpp @@ -0,0 +1,28 @@ +#include + +using namespace Upp; + +CONSOLE_APP_MAIN +{ + HttpClient client; + client.URL("http://losangeles.craigslist.org/search/jjj?query=php&format=rss"); + String out = client.ExecuteRedirect(); + XmlNode n = ParseXML(out, 0); + int q = n.FindTag("rdf:RDF"); + if(q >= 0) { + const XmlNode& channel = n[q]; + for(int i = channel.FindTag("item"); i= 0) { + const XmlNode& title = item[tag]; + for(int j = 0; j < title.GetCount(); j++) { + DUMP(title[j].GetType()); + DUMP(title[j].GetText()); + } + } + } + } + } +} diff --git a/uppdev/RSS/RSS.upp b/uppdev/RSS/RSS.upp new file mode 100644 index 000000000..3c24c31b9 --- /dev/null +++ b/uppdev/RSS/RSS.upp @@ -0,0 +1,10 @@ +uses + Core, + Web; + +file + RSS.cpp; + +mainconfig + "" = ""; + diff --git a/uppdev/RSS/init b/uppdev/RSS/init new file mode 100644 index 000000000..261649610 --- /dev/null +++ b/uppdev/RSS/init @@ -0,0 +1,5 @@ +#ifndef _RSS_icpp_init_stub +#define _RSS_icpp_init_stub +#include "Core/init" +#include "Web/init" +#endif diff --git a/uppdev/TestLag/TestLag.upp b/uppdev/TestLag/TestLag.upp new file mode 100644 index 000000000..0ffa9aa50 --- /dev/null +++ b/uppdev/TestLag/TestLag.upp @@ -0,0 +1,10 @@ +uses + CtrlLib, + CodeEditor; + +file + main.cpp; + +mainconfig + "" = "GUI"; + diff --git a/uppdev/TestLag/init b/uppdev/TestLag/init new file mode 100644 index 000000000..6c7edb565 --- /dev/null +++ b/uppdev/TestLag/init @@ -0,0 +1,5 @@ +#ifndef _TestLag_icpp_init_stub +#define _TestLag_icpp_init_stub +#include "CtrlLib/init" +#include "CodeEditor/init" +#endif diff --git a/uppdev/TestLag/main.cpp b/uppdev/TestLag/main.cpp new file mode 100644 index 000000000..ea3fbbe48 --- /dev/null +++ b/uppdev/TestLag/main.cpp @@ -0,0 +1,21 @@ +#include + +using namespace Upp; + +GUI_APP_MAIN { + for(int i = 0; i < 10000; i++) { + TIMING("Test"); + ::IsClipboardFormatAvailable(CF_TEXT); + } + TopWindow win; + CodeEditor cedit; //2nd test + { + LineEdit edit; + win.Add(edit.SizePos()); + win.Run(); + cedit <<= ~edit; + } + cedit.Highlight(CodeEditor::HIGHLIGHT_CPP); + win.Add(cedit.SizePos()); + win.Run(); +} diff --git a/uppdev/aaa/a.h b/uppdev/aaa/a.h index 5d9bcb28f..d014bbb01 100644 --- a/uppdev/aaa/a.h +++ b/uppdev/aaa/a.h @@ -1,2 +1,3 @@ #define LAYOUTFILE #include +kk \ No newline at end of file diff --git a/uppdev/aaa/aaa.h b/uppdev/aaa/aaa.h index b39bc34f7..565d72d48 100644 --- a/uppdev/aaa/aaa.h +++ b/uppdev/aaa/aaa.h @@ -39,6 +39,48 @@ public: String x, String x, String x, + String x, String x, + String x, + String x, + String x, + String x, String x, + String x, + String x, + String x,xxxxxxxx + String x, + String x, + String x, + String x, + String x, + String x, + String x, String x, + String x, + String x, + String x,helloksjdfalsfj haskldjhf alsflhjdas flk hdasfjkahdshasjfdkljhashdfhasdfklhahdfklhasdfklhasdfkljhasd + String x, + String x, + String x, + String x, + String x, + String x, + String x, + String x, + String x, + String x, + String x, + String x, + String x, + String x, + String x, + String x, + + String x, + String x, + String x,helloksjdfalsfj haskldjhf alsflhjdas flk hdasfjkahdshasjfdkljhashdfhasdfklhahdfklhasdfklhasdfkljhasd + String x, + String x, + String x, + String x, String x, String x, String x, @@ -75,7 +117,7 @@ public: #endif - +s počítač