diff options
Diffstat (limited to 'docs/DESIGN.md')
-rw-r--r-- | docs/DESIGN.md | 79 |
1 files changed, 79 insertions, 0 deletions
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. |