From 5019340c4e319f48122a4d7a14a310f8092e8ed7 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Fri, 18 Aug 2017 09:28:21 +0200 Subject: Updated documentation --- docs/DESIGN.md | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 docs/DESIGN.md (limited to 'docs/DESIGN.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. -- cgit v1.2.1