From dd2579e89263238aa52b72129aa8b4155262ddf0 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 7 Jul 2026 14:32:59 +0100 Subject: [PATCH] Changed folder structure Added README Added icon and wiki --- .gitignore | 12 +- BukkuBuddy.slnx | 3 + README.md | 40 ++++ build.bat | 19 +- favicon.ico => icon/favicon.ico | Bin icon/icon.svg | 195 ++++++++++++++++++ icon/icon_128.png | Bin 0 -> 2419 bytes icon/icon_16.png | Bin 0 -> 457 bytes icon/icon_24.png | Bin 0 -> 617 bytes icon/icon_32.png | Bin 0 -> 750 bytes icon/icon_48.png | Bin 0 -> 1033 bytes Resources/icon-64.png => icon/icon_64.png | Bin skye.sln | 25 --- BukkuBuddy.csproj => source/BukkuBuddy.csproj | 0 source/BukkuBuddy.csproj.user | 32 +++ {DTOs => source/DTOs}/BookmarkModel.cs | 0 {DTOs => source/DTOs}/SaveFile/App4Options.cs | 0 {DTOs => source/DTOs}/SaveFile/App6Options.cs | 0 .../DTOs}/SaveFile/AppOptionsBase.cs | 0 {Forms => source/Forms}/AddMultiPageForm.cs | 0 {Forms => source/Forms}/AddMultiPageForm.resx | 0 {Forms => source/Forms}/ClearIconsForm.cs | 0 {Forms => source/Forms}/ClearIconsForm.resx | 0 {Forms => source/Forms}/EditBookmarkForm.cs | 0 {Forms => source/Forms}/EditBookmarkForm.resx | 0 {Forms => source/Forms}/FindForm.cs | 0 {Forms => source/Forms}/FindForm.resx | 0 {Forms => source/Forms}/LoadingForm.cs | 0 {Forms => source/Forms}/LoadingForm.resx | 0 {Forms => source/Forms}/OptionsForm.cs | 0 {Forms => source/Forms}/OptionsForm.resx | 0 {Forms => source/Forms}/UpdateIconsForm.cs | 0 {Forms => source/Forms}/UpdateIconsForm.resx | 0 .../MainForm.Designer.cs | 0 MainForm.cs => source/MainForm.cs | 0 MainForm.resx => source/MainForm.resx | 0 Program.cs => source/Program.cs | 0 .../Resources}/MainMenu/folder-minus.png | Bin .../Resources}/MainMenu/help-circle.png | Bin .../Resources}/MainMenu/save.png | Bin .../Resources}/MainMenu/search.png | Bin .../Resources}/MainMenu/settings.png | Bin .../Resources}/MainMenuResource.Designer.cs | 0 .../Resources}/MainMenuResource.resx | 0 .../Resources}/TreeView/arrow-down.png | Bin .../Resources}/TreeView/arrow-up.png | Bin .../Resources}/TreeView/bookmark16_blue.png | Bin .../Resources}/TreeView/bookmark16_red.png | Bin .../Resources}/TreeView/bookmark16_white.png | Bin .../Resources}/TreeView/bookmark_root.png | Bin .../Resources}/TreeView/bookmark_root.svg | 0 .../TreeView/file-question-mark.png | Bin .../TreeView/file-question-mark16.svg | 0 .../Resources}/TreeView/folder-symlink.png | Bin .../Resources}/TreeView/folder-symlink16.svg | 0 .../Resources}/TreeView/folder.png | Bin .../Resources}/TreeView/folder16.svg | 0 .../Resources}/TreeView/plus-square.png | Bin .../Resources}/TreeView/plus.png | Bin .../Resources}/TreeView/trash-2.png | Bin .../Resources}/TreeViewResource.Designer.cs | 0 .../Resources}/TreeViewResource.resx | 0 source/Resources/icon-64.png | Bin 0 -> 1321 bytes .../Resources}/loading-block.gif | Bin .../Services}/WebPageService.cs | 0 .../Windows}/Forms/BookmarkTreeView.cs | 0 source/favicon.ico | Bin 0 -> 17542 bytes wiki/screenshot-1-h240.png | Bin 0 -> 7804 bytes wiki/screenshot-1.png | Bin 0 -> 11515 bytes 69 files changed, 284 insertions(+), 42 deletions(-) create mode 100644 BukkuBuddy.slnx create mode 100644 README.md rename favicon.ico => icon/favicon.ico (100%) create mode 100644 icon/icon.svg create mode 100644 icon/icon_128.png create mode 100644 icon/icon_16.png create mode 100644 icon/icon_24.png create mode 100644 icon/icon_32.png create mode 100644 icon/icon_48.png rename Resources/icon-64.png => icon/icon_64.png (100%) delete mode 100644 skye.sln rename BukkuBuddy.csproj => source/BukkuBuddy.csproj (100%) create mode 100644 source/BukkuBuddy.csproj.user rename {DTOs => source/DTOs}/BookmarkModel.cs (100%) rename {DTOs => source/DTOs}/SaveFile/App4Options.cs (100%) rename {DTOs => source/DTOs}/SaveFile/App6Options.cs (100%) rename {DTOs => source/DTOs}/SaveFile/AppOptionsBase.cs (100%) rename {Forms => source/Forms}/AddMultiPageForm.cs (100%) rename {Forms => source/Forms}/AddMultiPageForm.resx (100%) rename {Forms => source/Forms}/ClearIconsForm.cs (100%) rename {Forms => source/Forms}/ClearIconsForm.resx (100%) rename {Forms => source/Forms}/EditBookmarkForm.cs (100%) rename {Forms => source/Forms}/EditBookmarkForm.resx (100%) rename {Forms => source/Forms}/FindForm.cs (100%) rename {Forms => source/Forms}/FindForm.resx (100%) rename {Forms => source/Forms}/LoadingForm.cs (100%) rename {Forms => source/Forms}/LoadingForm.resx (100%) rename {Forms => source/Forms}/OptionsForm.cs (100%) rename {Forms => source/Forms}/OptionsForm.resx (100%) rename {Forms => source/Forms}/UpdateIconsForm.cs (100%) rename {Forms => source/Forms}/UpdateIconsForm.resx (100%) rename MainForm.Designer.cs => source/MainForm.Designer.cs (100%) rename MainForm.cs => source/MainForm.cs (100%) rename MainForm.resx => source/MainForm.resx (100%) rename Program.cs => source/Program.cs (100%) rename {Resources => source/Resources}/MainMenu/folder-minus.png (100%) rename {Resources => source/Resources}/MainMenu/help-circle.png (100%) rename {Resources => source/Resources}/MainMenu/save.png (100%) rename {Resources => source/Resources}/MainMenu/search.png (100%) rename {Resources => source/Resources}/MainMenu/settings.png (100%) rename {Resources => source/Resources}/MainMenuResource.Designer.cs (100%) rename {Resources => source/Resources}/MainMenuResource.resx (100%) rename {Resources => source/Resources}/TreeView/arrow-down.png (100%) rename {Resources => source/Resources}/TreeView/arrow-up.png (100%) rename {Resources => source/Resources}/TreeView/bookmark16_blue.png (100%) rename {Resources => source/Resources}/TreeView/bookmark16_red.png (100%) rename {Resources => source/Resources}/TreeView/bookmark16_white.png (100%) rename {Resources => source/Resources}/TreeView/bookmark_root.png (100%) rename {Resources => source/Resources}/TreeView/bookmark_root.svg (100%) rename {Resources => source/Resources}/TreeView/file-question-mark.png (100%) rename {Resources => source/Resources}/TreeView/file-question-mark16.svg (100%) rename {Resources => source/Resources}/TreeView/folder-symlink.png (100%) rename {Resources => source/Resources}/TreeView/folder-symlink16.svg (100%) rename {Resources => source/Resources}/TreeView/folder.png (100%) rename {Resources => source/Resources}/TreeView/folder16.svg (100%) rename {Resources => source/Resources}/TreeView/plus-square.png (100%) rename {Resources => source/Resources}/TreeView/plus.png (100%) rename {Resources => source/Resources}/TreeView/trash-2.png (100%) rename {Resources => source/Resources}/TreeViewResource.Designer.cs (100%) rename {Resources => source/Resources}/TreeViewResource.resx (100%) create mode 100644 source/Resources/icon-64.png rename {Resources => source/Resources}/loading-block.gif (100%) rename {Services => source/Services}/WebPageService.cs (100%) rename {Windows => source/Windows}/Forms/BookmarkTreeView.cs (100%) create mode 100644 source/favicon.ico create mode 100644 wiki/screenshot-1-h240.png create mode 100644 wiki/screenshot-1.png diff --git a/.gitignore b/.gitignore index 30a047b..939772d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ -/.vs -/bin -/obj -*.user -*.pubxml.user -*.csproj.user +bin +obj +packages +*~ +.github +.vs \ No newline at end of file diff --git a/BukkuBuddy.slnx b/BukkuBuddy.slnx new file mode 100644 index 0000000..eca8ec4 --- /dev/null +++ b/BukkuBuddy.slnx @@ -0,0 +1,3 @@ + + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..357f23e --- /dev/null +++ b/README.md @@ -0,0 +1,40 @@ +# BukkuBuddy Bookmark Manager + +> BukkuBuddy Bookmark Manager is a free utility for storing and organising your favourite Internet shortcuts. Your bookmarks are stored in a local save file to give you complete control. + +![Icon](icon/icon_64.png) + +--- + +## Features + +- Store and organise Internet bookmarks +- Locally cached favicons (supported formats only) +- No ads + +## Screenshots + +[![screenshot](wiki/screenshot-1-h240.png)](wiki/screenshot-1.png) + +--- + +## Releases & Builds + +See [Releases](/HiImRay_Public/bukkubuddy-bookmark-manager) + +## Acknowledgements + +This software uses a number of dependencies and assets from third-parties. +These developers and artists deserve due credit for their work and for their commitment to sharing their work freely. +Each product is released under their own particular license, for more information please visit their websites. + +- [Feather - Simply Beautiful Open Source Icons](https://feathericons.com/) +- [HtmlAgilityPack](https://htmlagilitypack.codeplex.com/) +- [Lucide](https://lucide.dev/icons/) + +## License + +This software is due to be released under the GPLv3 license. + +All software on this website is provided "as is" without warranty of any kind, either express or implied. +The use of this software, in particular, is done solely at your own risk; with agreement that the original author is not liable for any damage (subsequently incurred) of any kind. \ No newline at end of file diff --git a/build.bat b/build.bat index 11b442e..d254b3c 100644 --- a/build.bat +++ b/build.bat @@ -1,18 +1,15 @@ -RMDIR /s /q "bin\" -RMDIR /s /q "obj\" +rmdir /s /q "bin\" +rmdir /s /q "source\bin\" +rmdir /s /q "source\obj\" -MKDIR bin - -dotnet restore skye.sln -#dotnet build skye.sln -c Release -o ./bin/ -dotnet publish skye.sln -r win-x64 -c Release /p:PublishSingleFile=true /p:SelfContained=false /p:PublishReadyToRunfalse=true /p:PublishDir="bin\" +dotnet restore BukkuBuddy.slnx +dotnet publish BukkuBuddy.slnx -r win-x64 -c Release /p:PublishSingleFile=true /p:SelfContained=false /p:PublishReadyToRunfalse=true /p:PublishDir="..\bin\" "C:\B\Portable Files (dev)\Inno Setup\v6.0.4-2\app\ISCC.exe" "build-installer.iss" -"C:\B\Portable Files\7-Zip (Portable)\25.01\App\7-Zip64\7z.exe" a -t7z "bin\bukkubuddy.7z" ".\bin\bukkubuddy.exe" -mx9 +"C:\B\Portable Files\7-Zip (Portable)\26.02\App\7-Zip64\7z.exe" a -t7z "bin\bukkubuddy.7z" ".\bin\bukkubuddy.exe" -mx9 -RMDIR /s /q "bin\debug" -RMDIR /s /q "bin\release" -RMDIR /s /q "obj\" +rmdir /s /q "source\bin\" +rmdir /s /q "source\obj\" PAUSE \ No newline at end of file diff --git a/favicon.ico b/icon/favicon.ico similarity index 100% rename from favicon.ico rename to icon/favicon.ico diff --git a/icon/icon.svg b/icon/icon.svg new file mode 100644 index 0000000..d5f9454 --- /dev/null +++ b/icon/icon.svg @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/icon/icon_128.png b/icon/icon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..9378f90a1884daf65269ac85b36ed56187af169d GIT binary patch literal 2419 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 literal 0 HcmV?d00001 diff --git a/icon/icon_16.png b/icon/icon_16.png new file mode 100644 index 0000000000000000000000000000000000000000..2e5105039321b1cc9d829e1654f7dd115cc1f75c GIT binary patch literal 457 zcmV;)0XF`LP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10ai&w zK~y-6os&;1L{S)rpL6b+VGL6?BoiCTHxNxS$`;F6$b^+5cCwo+?f3>(8re}YY?K|! zP6;t+h8Pp(&%HDE9vgP!j_y-u^VaXF^Pb-U2rEMzN+B#j*E>>*Hz3FlLK)&P)a)Cc zpXyP5pTv!e%RD>#j{qG&7C_mKj!sT=87p&ru3>WxERA^A>kcMKYNT@p$|ul}ZgNfRTYVmZp3E zb%mMbGsa@G+^4f)U!dhk)lJpltF@nCIoP0!uT7o=k<=P?rKtC8n%&>+4;GvP&nlol z{GoME0u9{SwrLy2xF^AvhE-wux=Xn$PdkWJ*j7-oAm>T&;IPO~m8F!zDx2;FazjbM z@y6zL)N!pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10rp8m zK~zYIwU$3<6Hy$;Ki9ingO?b^D@71RvS}h+tf)|@EaH$Ui?|4agHzDz(7{2pajL=% z(xs3(`VZ70bP|c;qz;N8_^%QxwMl!i&Ar~;>rh*dk`{8geBrmeAACRW_r4F_gEggr z=RggRAxi+~X`wW*+<|ehN}J6!;5HB&JhY3kD;ajids}T{TUk?|x&P#Q%bo@d0~ALx z3=j3UZ4NMC#AIdzBob!;JkRS9Lj2iqy?*BdHwtMIAwUcE3IO?h zUN4nOIzTp?U8qzlx8Pqud;4P@hn&mhq?A%xmL*KnoQAa{0^sqzlNdWx7Hzlf3D!fl zZJTnrOrcPaj^j)K$2S0q0;&D+w$0&x$Zy_$$Bgcnv1`_^n`NULi+B5 zBnQtjaP*wwi-xM=Tb*B>fR=x}qxxtR$Nr7sIy9v$MmoVMx52~4SDqA@^l`wJ&}%a)1g9`NDInpXQKmDslk8U0te4&oMmF zycX##dhO#}6xaZ!LaZ)%5Gi0r@^Z#wEU@%9QUFi|rh^Mz$zU^}1~6Y2T>)soE8z4< z@jb<>M@WWvGH2(S+x8CwOLXbc4?>;-^BtJC{I;wDj0W|Oxo!c{00000NkvXXu0mjf DrM(m$ literal 0 HcmV?d00001 diff --git a/icon/icon_32.png b/icon/icon_32.png new file mode 100644 index 0000000000000000000000000000000000000000..2f76ad82c01b65d948ed1ebdac7f8d295653713c GIT binary patch literal 750 zcmVpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10((hB zK~z|U?UzqTR6!iaKkvQSU7zJ5ZV?6&6nLl(N_yy`5Cr`>7_1Z>>JSk@phX>m77C(M z*DldPJY)rV2`bFPg7lAswlD$@QikClP|4KYeecao2j6aDy6oZY^U@c7Ff$B%KR;%E z%>3Z5T7jp)IG_WL=YT~CT?X6=7_W|f>lq6_^Sk~SVHs@QB1*xQt)*p&>#4#tvJt@b zg89kg4cxocOie%l9T(p4>h*NVJtlAvRx%ILyj%&O9>BImrOi{o?3%UdqGK*6ky2w> zMn&9{$z(E-NEGLNeSKOf^`QvhdWsVl-*WAIBMm#N2?8UVlf`i=m7=Ms34q?-UV3_Z zmR;991%8>tqGlyaP-ik3t+m!;V`JL3Z3j3F{_O{-jYqkE=K$&VGb}E70pt$@LsLvl zWs7sA6rG)&d98In@Cd;03E8o&itj_m0x>RVbs4s`AEG86C!J2KyyJWWV^m9bGPIf- zosAI5#;DtS#6+`a^7FIZ8e()rnmI%zSx?mL6KV-Jt<2OpK8KHHEV@$Isy> zM1%z*_8>HX+{b<-21>eYN9(z~hlbYB03KT|`%NGMBMRea9?ydgGc16DvcNe9G`s)? zLkGCwnata@C`+^h^`QbdK)l!dk5jRBaVW4Gq~_Ai48H^Vj+H9|XaU~g{|{qP6T7NpA6d56v}Vn~r;YY@u}RJ8YPGQP gM9x>he8cwq50Rx(7W};KuK)l507*qoM6N<$f@IlB1poj5 literal 0 HcmV?d00001 diff --git a/icon/icon_48.png b/icon/icon_48.png new file mode 100644 index 0000000000000000000000000000000000000000..a0b8981ad414b8479ab7a3dbce7256c2d3be140c GIT binary patch literal 1033 zcmV+k1or!hP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H11C~id zK~!jg?V3$!6juPpe{XhYW1?wlD`tcet%$Y-Yi$v#RSWgvS0UJf7z`0hOX;EDMI*hm z&`Y=Asp28H5$Zv^hvw2%4}QderO+6#)gYK`%%L_Po2aWBC$l@x!)C+mS2i2X&KvOu zk757s4gCN6-n{qr?La=C0%w6iU=olnlriAj0^VlC04}>^xKOcyRppqEDquRdY%gV8 zo4TF>R?IeS1renh_(_lXkDcOzDj&^_4Xk_n)%h}($D_wdT7Ukh?ECz{ey6aY%17kn zW;VY6`t$NOD@Mo6IR(&wO-`Y?v7zGTp9Kx5cM2b@UF?#Tx#0)&EWxK0Y3d3gATdMz zO@FR3VW#HKPMH{nVbs*r!=bJDJWz0!n2A^Q6IvPxH17lA-P z3Lz$d19?5rbL&1I?zza9`&RPS%G!#VeGs=wwy|xSmX;P`v6ui30lnbZnMa8vt--w@Hwz;s>#0v1E@kc9L|;ez*mmX!%7Ee*woCT`qf#Qls5gBj$=L?1~{U0 zfT~vvYL>j2rQPf4$e6zZoKkAvP>RPR{rq?RcZ3iKA=Ut|Dcu9((Z84&8w5b6k__Fv z0Me$qx|&2Hu?*-?I>6}ds|EE$VtRk~kaad%kV~L-5~Atl>9EoP)(Y5~6QC_Q zZ9W1V^VCCp+lC)45bzNA0+5~wU;8liCdVk}Y0N-2CYeTKE2BfS5+5q8+01qUb zN`mIosb9B?s@kOhyMb>!5ui@MXFjk~7I!Wj!;BASs(w&<7IN}a0J@(br)HowpdaY< zOn`;Ji2!1^iA=#x3GV{qo)|(I-qYZaj*##Ma2$&KpizaWgc~^rB%f$-R=}WSA8=mj z0N<59s0b<@00@(QSc`E>^#JX_xtSVx>LD(~%K&ckLIlW~tdc1;PNrvz2K?_7{=PBp zl9jok0oR + + + + + Form + + + Form + + + Form + + + Form + + + Form + + + Component + + + + + Designer + + + Designer + + + \ No newline at end of file diff --git a/DTOs/BookmarkModel.cs b/source/DTOs/BookmarkModel.cs similarity index 100% rename from DTOs/BookmarkModel.cs rename to source/DTOs/BookmarkModel.cs diff --git a/DTOs/SaveFile/App4Options.cs b/source/DTOs/SaveFile/App4Options.cs similarity index 100% rename from DTOs/SaveFile/App4Options.cs rename to source/DTOs/SaveFile/App4Options.cs diff --git a/DTOs/SaveFile/App6Options.cs b/source/DTOs/SaveFile/App6Options.cs similarity index 100% rename from DTOs/SaveFile/App6Options.cs rename to source/DTOs/SaveFile/App6Options.cs diff --git a/DTOs/SaveFile/AppOptionsBase.cs b/source/DTOs/SaveFile/AppOptionsBase.cs similarity index 100% rename from DTOs/SaveFile/AppOptionsBase.cs rename to source/DTOs/SaveFile/AppOptionsBase.cs diff --git a/Forms/AddMultiPageForm.cs b/source/Forms/AddMultiPageForm.cs similarity index 100% rename from Forms/AddMultiPageForm.cs rename to source/Forms/AddMultiPageForm.cs diff --git a/Forms/AddMultiPageForm.resx b/source/Forms/AddMultiPageForm.resx similarity index 100% rename from Forms/AddMultiPageForm.resx rename to source/Forms/AddMultiPageForm.resx diff --git a/Forms/ClearIconsForm.cs b/source/Forms/ClearIconsForm.cs similarity index 100% rename from Forms/ClearIconsForm.cs rename to source/Forms/ClearIconsForm.cs diff --git a/Forms/ClearIconsForm.resx b/source/Forms/ClearIconsForm.resx similarity index 100% rename from Forms/ClearIconsForm.resx rename to source/Forms/ClearIconsForm.resx diff --git a/Forms/EditBookmarkForm.cs b/source/Forms/EditBookmarkForm.cs similarity index 100% rename from Forms/EditBookmarkForm.cs rename to source/Forms/EditBookmarkForm.cs diff --git a/Forms/EditBookmarkForm.resx b/source/Forms/EditBookmarkForm.resx similarity index 100% rename from Forms/EditBookmarkForm.resx rename to source/Forms/EditBookmarkForm.resx diff --git a/Forms/FindForm.cs b/source/Forms/FindForm.cs similarity index 100% rename from Forms/FindForm.cs rename to source/Forms/FindForm.cs diff --git a/Forms/FindForm.resx b/source/Forms/FindForm.resx similarity index 100% rename from Forms/FindForm.resx rename to source/Forms/FindForm.resx diff --git a/Forms/LoadingForm.cs b/source/Forms/LoadingForm.cs similarity index 100% rename from Forms/LoadingForm.cs rename to source/Forms/LoadingForm.cs diff --git a/Forms/LoadingForm.resx b/source/Forms/LoadingForm.resx similarity index 100% rename from Forms/LoadingForm.resx rename to source/Forms/LoadingForm.resx diff --git a/Forms/OptionsForm.cs b/source/Forms/OptionsForm.cs similarity index 100% rename from Forms/OptionsForm.cs rename to source/Forms/OptionsForm.cs diff --git a/Forms/OptionsForm.resx b/source/Forms/OptionsForm.resx similarity index 100% rename from Forms/OptionsForm.resx rename to source/Forms/OptionsForm.resx diff --git a/Forms/UpdateIconsForm.cs b/source/Forms/UpdateIconsForm.cs similarity index 100% rename from Forms/UpdateIconsForm.cs rename to source/Forms/UpdateIconsForm.cs diff --git a/Forms/UpdateIconsForm.resx b/source/Forms/UpdateIconsForm.resx similarity index 100% rename from Forms/UpdateIconsForm.resx rename to source/Forms/UpdateIconsForm.resx diff --git a/MainForm.Designer.cs b/source/MainForm.Designer.cs similarity index 100% rename from MainForm.Designer.cs rename to source/MainForm.Designer.cs diff --git a/MainForm.cs b/source/MainForm.cs similarity index 100% rename from MainForm.cs rename to source/MainForm.cs diff --git a/MainForm.resx b/source/MainForm.resx similarity index 100% rename from MainForm.resx rename to source/MainForm.resx diff --git a/Program.cs b/source/Program.cs similarity index 100% rename from Program.cs rename to source/Program.cs diff --git a/Resources/MainMenu/folder-minus.png b/source/Resources/MainMenu/folder-minus.png similarity index 100% rename from Resources/MainMenu/folder-minus.png rename to source/Resources/MainMenu/folder-minus.png diff --git a/Resources/MainMenu/help-circle.png b/source/Resources/MainMenu/help-circle.png similarity index 100% rename from Resources/MainMenu/help-circle.png rename to source/Resources/MainMenu/help-circle.png diff --git a/Resources/MainMenu/save.png b/source/Resources/MainMenu/save.png similarity index 100% rename from Resources/MainMenu/save.png rename to source/Resources/MainMenu/save.png diff --git a/Resources/MainMenu/search.png b/source/Resources/MainMenu/search.png similarity index 100% rename from Resources/MainMenu/search.png rename to source/Resources/MainMenu/search.png diff --git a/Resources/MainMenu/settings.png b/source/Resources/MainMenu/settings.png similarity index 100% rename from Resources/MainMenu/settings.png rename to source/Resources/MainMenu/settings.png diff --git a/Resources/MainMenuResource.Designer.cs b/source/Resources/MainMenuResource.Designer.cs similarity index 100% rename from Resources/MainMenuResource.Designer.cs rename to source/Resources/MainMenuResource.Designer.cs diff --git a/Resources/MainMenuResource.resx b/source/Resources/MainMenuResource.resx similarity index 100% rename from Resources/MainMenuResource.resx rename to source/Resources/MainMenuResource.resx diff --git a/Resources/TreeView/arrow-down.png b/source/Resources/TreeView/arrow-down.png similarity index 100% rename from Resources/TreeView/arrow-down.png rename to source/Resources/TreeView/arrow-down.png diff --git a/Resources/TreeView/arrow-up.png b/source/Resources/TreeView/arrow-up.png similarity index 100% rename from Resources/TreeView/arrow-up.png rename to source/Resources/TreeView/arrow-up.png diff --git a/Resources/TreeView/bookmark16_blue.png b/source/Resources/TreeView/bookmark16_blue.png similarity index 100% rename from Resources/TreeView/bookmark16_blue.png rename to source/Resources/TreeView/bookmark16_blue.png diff --git a/Resources/TreeView/bookmark16_red.png b/source/Resources/TreeView/bookmark16_red.png similarity index 100% rename from Resources/TreeView/bookmark16_red.png rename to source/Resources/TreeView/bookmark16_red.png diff --git a/Resources/TreeView/bookmark16_white.png b/source/Resources/TreeView/bookmark16_white.png similarity index 100% rename from Resources/TreeView/bookmark16_white.png rename to source/Resources/TreeView/bookmark16_white.png diff --git a/Resources/TreeView/bookmark_root.png b/source/Resources/TreeView/bookmark_root.png similarity index 100% rename from Resources/TreeView/bookmark_root.png rename to source/Resources/TreeView/bookmark_root.png diff --git a/Resources/TreeView/bookmark_root.svg b/source/Resources/TreeView/bookmark_root.svg similarity index 100% rename from Resources/TreeView/bookmark_root.svg rename to source/Resources/TreeView/bookmark_root.svg diff --git a/Resources/TreeView/file-question-mark.png b/source/Resources/TreeView/file-question-mark.png similarity index 100% rename from Resources/TreeView/file-question-mark.png rename to source/Resources/TreeView/file-question-mark.png diff --git a/Resources/TreeView/file-question-mark16.svg b/source/Resources/TreeView/file-question-mark16.svg similarity index 100% rename from Resources/TreeView/file-question-mark16.svg rename to source/Resources/TreeView/file-question-mark16.svg diff --git a/Resources/TreeView/folder-symlink.png b/source/Resources/TreeView/folder-symlink.png similarity index 100% rename from Resources/TreeView/folder-symlink.png rename to source/Resources/TreeView/folder-symlink.png diff --git a/Resources/TreeView/folder-symlink16.svg b/source/Resources/TreeView/folder-symlink16.svg similarity index 100% rename from Resources/TreeView/folder-symlink16.svg rename to source/Resources/TreeView/folder-symlink16.svg diff --git a/Resources/TreeView/folder.png b/source/Resources/TreeView/folder.png similarity index 100% rename from Resources/TreeView/folder.png rename to source/Resources/TreeView/folder.png diff --git a/Resources/TreeView/folder16.svg b/source/Resources/TreeView/folder16.svg similarity index 100% rename from Resources/TreeView/folder16.svg rename to source/Resources/TreeView/folder16.svg diff --git a/Resources/TreeView/plus-square.png b/source/Resources/TreeView/plus-square.png similarity index 100% rename from Resources/TreeView/plus-square.png rename to source/Resources/TreeView/plus-square.png diff --git a/Resources/TreeView/plus.png b/source/Resources/TreeView/plus.png similarity index 100% rename from Resources/TreeView/plus.png rename to source/Resources/TreeView/plus.png diff --git a/Resources/TreeView/trash-2.png b/source/Resources/TreeView/trash-2.png similarity index 100% rename from Resources/TreeView/trash-2.png rename to source/Resources/TreeView/trash-2.png diff --git a/Resources/TreeViewResource.Designer.cs b/source/Resources/TreeViewResource.Designer.cs similarity index 100% rename from Resources/TreeViewResource.Designer.cs rename to source/Resources/TreeViewResource.Designer.cs diff --git a/Resources/TreeViewResource.resx b/source/Resources/TreeViewResource.resx similarity index 100% rename from Resources/TreeViewResource.resx rename to source/Resources/TreeViewResource.resx diff --git a/source/Resources/icon-64.png b/source/Resources/icon-64.png new file mode 100644 index 0000000000000000000000000000000000000000..1ca9e0ba1d60be22d4720d08e9397268fbd7381c GIT binary patch literal 1321 zcmV+^1=jkBP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H11hz>; zK~#90?VDXp990y@e=|E`h4n6tn^F6ToH`bo-`kHs)m^Nvqbb zMH!!%a@##vfk3=A<@?VGkG`_cJ>e#*t;ZG)P(M>guSds4(?cRaN13y8(j0 zYlZ^&XT$7!;{vT8m9i<{u`(@PA)HPp#l^*jzUJm;J$ZolfG$G;0NQ@N%GSL<@#1rL z^4P<-u|CJX{H;xbp8ji=;)jNYsHv&Zi|2t4^}<^3-j>x`T3Xb20)c>9R#v9ROab@k z$r}!WS?k1F0M*vk(%IRm7Y_q}#QOiI;?|N4YQu@`>dr^vf zv+4d*@#2`Q1E6|;5!L&PnD&SG)8kLMsqwoXNBG<|xL}Om@29e|l5jW-FbEupk1-tt zb#k&5wiK^lYCBg9clU&0eS3R5!C(*opU=nG*qH9}124yfhJlVn1xPnsE*CDB%gFT* z&=gna5l#SE$wIQ3r=^C2L_z_*_`7fd-2HeJ`6aszeQG33|Ctj^UmXT*Iy@-We76W! zE`F~k4{!(=$ru5Ao_@TS&gw-K?av~=e7H-cS2o^WHpBHygGxh6hgeW_O6QD$bf(3494XZGsUN4>&PJlP< z@RG@WoJkd)n7dx=176LDK~U#t5WL#2KL@-5%w&uJtsyu!zn`lGeuE5|1_xDme}3$n z1HRS^!V3@p4hOWYV3aIkHbueHN%L=<2e z?Vf)^Wcnp=Q-GTStaSs{nwtU`RjR6LR4pVj22;l5-vNVAF_D4M_)5?CEIk9(p2JI5 zWZ)MgN6iP92!@%27WMdxVtBK_JG^+6Pf9T6tylEc*efK>7c;rNSBwU4gz0U zJ>PE9|Ak524p>QCp9VXCV^+Q>DsPkiJ;BnevqqEy-6@dBQY`70r*$OYX`m740VYx) fxrJ=Wuh0JndR+QOrazV}00000NkvXXu0mjfNylTF literal 0 HcmV?d00001 diff --git a/Resources/loading-block.gif b/source/Resources/loading-block.gif similarity index 100% rename from Resources/loading-block.gif rename to source/Resources/loading-block.gif diff --git a/Services/WebPageService.cs b/source/Services/WebPageService.cs similarity index 100% rename from Services/WebPageService.cs rename to source/Services/WebPageService.cs diff --git a/Windows/Forms/BookmarkTreeView.cs b/source/Windows/Forms/BookmarkTreeView.cs similarity index 100% rename from Windows/Forms/BookmarkTreeView.cs rename to source/Windows/Forms/BookmarkTreeView.cs diff --git a/source/favicon.ico b/source/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b1f729a2c887918b78dd6f4e9dd141e837fc78ca GIT binary patch literal 17542 zcmeHN3v3+48J^v}z1_Rq#h2XSbK(bf;^5fCX)d*S<&BLK$2B$NRhqOs6Oe#_j6#H} zwr&8CMru{H1O=70R!tEm6k2E=1{zESElCxn1&Y*yiGZdyg+ihtaBO^k|9^e6+1u>d z>+@#4S9zrGW@m2Z|G)WnX7-;4V*>NB1q&F)rR?!Jj5RREN=sAe2xA{(UO~ZddS`&K zhc03)g85Yb79V3J%Nd)Cbx;Jm4ng^22u)b_am2fb0R&6{K1Q8e5n~Bx5q1bM5qzz5 zCXq|I%?1$n;~wJ9+q23he=pgcbEmk`2LG>^?JoKiC|iFcB-$Qy4b|Ir8hP_)JN#*^ z^7263mp%G>xcbe{T}9K&@9P{4eC+Ul&rlxiev_-bxt+$rKW&a&c;B8}ea`Uj z!G2SQ+!^6v#CF7$h}^Khv^I@riuXr3!C(D5au-0BL}*=E4*6k)x8>HH;7?=NcfH2B zq9DwP9o|pRn(ux>txTr|OnlBeZNcDjr2oMYg zx&8m(W&Yb%&4EWZ*XY>MQVEhMXl=lD{0q5H&n5oUmbEp7-1aXbcM3eM#a`+^-?*#< z?!Bri4d26ekUv%b{$A&0{$_3#=?~0#Ub6qXb?adJ_U+Kx+6s!I*?bWBlJCjal$)&h zHy`eU%l14C3wJ!^-u~^~XYb$c-@hLy3=9lFMMVYq%`{(LfiQ-&{vWGd0-{e&%frGG zlIHxW4M&e21zDDpIPXxOi5nU)A>8cP#K@o8uxr;Y&XxNP)C``d$KhFX;Y;880WAL6 zKG$&Zk8rJP;$r4MG&BVD_4T~m%|sppPit|cDgiBjIqCWyuGRjVnLoXQ6DLkUG#aIT z^cixmH1kii{ls^OqDA&+iVo-Uh4wkG$;gZ#MF$XKDkzha5RSMarz3czY0b z?2ojywfu1p@?S;dYzEqocoE^1_dx!d-TNEHCenDIF-_;%X>%*4-D;cd`!lqWCBP|P zH^vO(Hd9PV%6BAYDLLj?Nagd`{J%NP%kkL!f2QZUo_o%VD6 zGVPVfgMLZql0^2PyZYb5J#Gc6i>87qOG(8i9CBBGABghTArcIMPZH=;J;QDNEN~pp ziHh+ZNWVqh6x@CPbk?Rkk2-zy&80m{SM2#ayrdZ4y-54cNyJNT>A(N#D*e1??|3iEi-%8=iQ8Rrb7pF&Sh4+H`MT0dTsBB1MxFRF(nzc>ghyZ(lFbKHp4 zEYW3i{luZYy`A>_KSllL^EQ*OeAVlpI_d)&zyE92tbr|Cw&)0jLPoJU-gF@|79%j4@c$GomKL~18<=(JcIW8s?UXdL2CR$@df{>qOaw={1c$aQJ7ym zwLhdtKXzU|ty7-D^+F!a7a?cmH=fxGkeW~9mF+!F$`2_)D2)|DP>F#gMU$d9rQb>U zi^`+gTH>eICLkJCljzIc;iUYT(J(aD&Vi*>Gn3~>gM*4Jp6UNj9fpR3Z;W~Fr1_T5 zpLKP0(ACvNYcRAu+knu=uX^4LJ_lwUx3sj7n+v;l?;eQ7Vl-D!(B#DzUjcR4hHU(6 zT91&NO`A4p^63ZfZJb0ub~Bg1V(%;Co}c}G|7pBS@d+UkiJU_D@1T70*I`L}*SO`Q z9INjaojpLLYJs)}IS1dzc_{yL(%}HC_@h`xI;b7vIYY7ZPuf`C3T6q0`F0@~%AS!& zvdIsNAW9LV_+f?Uqjw3SNMmPITVlEYV7Vy>EnwZ}{CU#`D{uQY%xk@GM9_H%Rw9s# zs0Gqnwe`EU`e4oXe|}bd6av-T9&oq5Slr3PvUVmG{xB>3$}9LS+B?X^@?U0EU;Qg6 z{>sm$Pm#6t?wH%Jz6QZS(@>tO-jj{~DZ$Mk$TuVfF~2XH`gAvT-Nj`vGk)IN+0?`X<(SPgH*l$0rHJ^MgRZ+ literal 0 HcmV?d00001 diff --git a/wiki/screenshot-1-h240.png b/wiki/screenshot-1-h240.png new file mode 100644 index 0000000000000000000000000000000000000000..897ac211cd10ca815dff9f484abea37c111bd6d7 GIT binary patch literal 7804 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 W{|)o{H|2+Asu$1o)XJXOe*7P`e0=5r literal 0 HcmV?d00001