aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md6
-rw-r--r--docs/DESIGN.md79
-rw-r--r--docs/manual.md19
3 files changed, 82 insertions, 22 deletions
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]