From 5019340c4e319f48122a4d7a14a310f8092e8ed7 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Fri, 18 Aug 2017 09:28:21 +0200 Subject: Updated documentation --- README.md | 6 ++--- docs/DESIGN.md | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ docs/manual.md | 19 -------------- 3 files changed, 82 insertions(+), 22 deletions(-) create mode 100644 docs/DESIGN.md diff --git a/README.md b/README.md index bcdf137..4a81296 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,6 @@ It's a small boat. ### Sounds dumb, how do I use it? You make it yourself after taking a cursory glance at BUILDING.md. -### Reporting bugs, or throwing code into the bucket -Use the facilities present at the repository. For more information, glance at -CONTRIBUTING.md. +### It doesn't work, what now? +Report the bug using the facilities present at the repository. For more +information, skip over CONTRIBUTING.md. diff --git a/docs/DESIGN.md b/docs/DESIGN.md new file mode 100644 index 0000000..8e88200 --- /dev/null +++ b/docs/DESIGN.md @@ -0,0 +1,79 @@ +# smolbote Design Document + +### Version 1.0 +* Profiles + - Application-level profile manager + - System-level and user-level profile config, with per-profile overrides [todo] +* Configuration + - Default system-level config and user-level overrides [todo] +* Cookies + - Filter list similar to the URL filter list [todo] +* Tabs + - Moving tabs between windows [todo] + - Tab context menu [todo] +* Page actions + - Search [todo] + - Zoom [todo] + - Print [todo] +* Navigation toolbar + - Back and Forward history [todo] + +## Overall design of smolbote + +The aim of smolbote is to be a lightweight and fast, to the point web browser. + +### How smolbote works [TODO] + +0. Launch +1. Check for other instance, unless otherwise specified + - If other instance is found, pass the parameters to it and quit + - Else, create a new instance +2. Create application object + - Read configuration + _ Create profiles +3. Pass parameters to application object + - Create main window if there isn't one + - open URLs + +### main() and smolmain() [TODO] + +The main() function should contain all code to start up, check for another +running instance, and if necessary pass the parameters to the other instance. + +The smolmain() function should contain code to create a new instance based on +the parameters passed. + +IPC should be done with QLocalSocket. + +### Dockable windows + +### Folder structure + +- data/ - Any resource files (defaults, icons, etc) +- docs/ - Where all the documentation lives +- src/ - Source code +- test/ - Testing grounds +- tools/ - Hooks, qbs helpers, updater + +### Libraries used +All 3rd-party libraries should be placed in src/3rd-party/library-name, together +with their corresponding license file. The license file should start with the +library name and repository location. + +- tinytoml + +## Components + +### Bookmarks [TODO] + +- [TODO] Bookmark location should be read from profile, with a default in the config +- [TODO] Split off xbel implementation into a library +- [TODO] BookmarksLibrary API + +### History + +History is managed by QtWebEngine. + +### Cookies + +Cookies are managed by QtWebEngine. diff --git a/docs/manual.md b/docs/manual.md index 971ba94..2c827fd 100644 --- a/docs/manual.md +++ b/docs/manual.md @@ -10,22 +10,3 @@ --new-instance | Skip instance check on startup | --in-new-window | Open URL in a new window | --in-new-tab | Open URL in a new tab | - - -### Version 1.0 -* Profiles - - Application-level profile manager - - System-level and user-level profile config, with per-profile overrides [todo] -* Configuration - - Default system-level config and user-level overrides [todo] -* Cookies - - Filter list similar to the URL filter list [todo] -* Tabs - - Moving tabs between windows [todo] - - Tab context menu [todo] -* Page actions - - Search [todo] - - Zoom [todo] - - Print [todo] -* Navigation toolbar - - Back and Forward history [todo] -- cgit v1.2.1