aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/DESIGN.md97
-rw-r--r--docs/manual/Building.Compiling.md28
-rw-r--r--docs/manual/Building.Dependencies.md2
-rw-r--r--docs/manual/Contributing.Style.md28
-rw-r--r--docs/manual/Contributing.Submitting.md (renamed from docs/manual/Contributing.Code.md)0
-rw-r--r--docs/manual/SUMMARY.md2
6 files changed, 41 insertions, 116 deletions
diff --git a/docs/DESIGN.md b/docs/DESIGN.md
index 4d13ed6..58aa149 100644
--- a/docs/DESIGN.md
+++ b/docs/DESIGN.md
@@ -1,13 +1,28 @@
-# smolbote Design Document
+# smolbote
-### Version 1.0
+The aim of smolbote is to be a lightweight and fast, to the point web browser.
+
+## Principles
+
+### Simple is good.
+'without unnecessary additions'. Do one thing and do it well.
+
+### User-centric is user-friendly.
+Software is there to serve the user, not the other way around.
+
+### Code correctness is truth.
+Use up-to-date standards and compilers.
+
+## Version 1.0
+
+### Browser
* 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]
+ - Default configuration and user overrides
+ - Auto-generating settings dialog
+
+### Main Window
* Tabs
- Moving tabs between windows [todo]
- Tab context menu [todo]
@@ -15,70 +30,12 @@
- Search [todo]
- Zoom [todo]
- Print [todo]
-* Navigation toolbar
+* Navigation bar
- Back and Forward history [todo]
+* Address bar
-## 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
-Components should, when possible, be split off into self-contained static
-libraries. This is to reduce recompile times.
-
-### Navigation
-Includes the Address bar (URLLineEdit).
-
-### 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
+### WebEngine
+* UrlRequestInterceptor
+ - Support for AdBlock-style lists
+* Cookie Filter
-Cookies are managed by QtWebEngine.
diff --git a/docs/manual/Building.Compiling.md b/docs/manual/Building.Compiling.md
index bf6637e..7505755 100644
--- a/docs/manual/Building.Compiling.md
+++ b/docs/manual/Building.Compiling.md
@@ -1,6 +1,6 @@
# Compiling
-## Creating qbs configuration
+## Create qbs configuration
Before you can build anything with qbs, you need to set up the compiler
toolchain as well as Qt.
@@ -9,36 +9,20 @@ qbs setup-toolchains --detect
qbs setup-qt /usr/bin/qmake-qt5 qt5
```
+## Compile
-## Compiling
-
-* Create a build folder
+1. Create a build folder
```
[smolbote repo]$ mkdir ../build
```
-* Run qbs
+2. Build
```
[smolbote repo]$ qbs build -d ../build profile:qt5 release
```
This installs the files to ../build/release/install-root.
-* Run
+3. Install
```
-[smolbote repo]$ qbs run -d ../build -p poi profile:qt5 release
+[smolbote repo]$ qbs install -d ../build -p poi --install-root "/install/root" profile:qt5 release
```
-
-## mach
-mach is a helper script that can build and run smolbote.
-
-#### setup
-./mach setup creates a qbs configuration in :settingsDir,
-by default ../build/config.
-
-You can edit this using qbs-config-ui --settings-dir ../build/config.
-
-#### run
-
-#### clean
-
-#### build
diff --git a/docs/manual/Building.Dependencies.md b/docs/manual/Building.Dependencies.md
index 2f9bcdd..3b03e1b 100644
--- a/docs/manual/Building.Dependencies.md
+++ b/docs/manual/Building.Dependencies.md
@@ -5,7 +5,7 @@
- at least 5.9
- core, widgets
- webengine, webenginewidgets
-- [libtoml](https://github.com/mayah/tinytoml) (included in source)
+- [libconfig](https://hyperrealm.github.io/libconfig/)
### Tools
* A working compiler
diff --git a/docs/manual/Contributing.Style.md b/docs/manual/Contributing.Style.md
index 1ab6b17..4d7ef1b 100644
--- a/docs/manual/Contributing.Style.md
+++ b/docs/manual/Contributing.Style.md
@@ -2,37 +2,21 @@
## Guidelines
* Use generic formats
-* Where possible, use QVector over QList:
-http://lists.qt-project.org/pipermail/development/2017-March/029040.html
+* Where possible, use QVector over QList: http://lists.qt-project.org/pipermail/development/2017-March
+/029040.html
+* Check pointers with Q_CHECK_PTR before returning them
## Versioning
-#### Major version
-Changed infrequently and almost entirely out of foppery and whim.
-
-#### Minor version
-Milestone of multiple features.
-
-#### Revision
-Major bugfixes and each new feature should get a revision.
+- major version: Changed infrequently and almost entirely out of foppery and whim.
+- minor version: Milestone of multiple features.
+- revision: Major bugfixes and each new feature should get a revision.
### Branching
* master - main branch, should be kept up-to-date, and have only working code
* next - next stable release preparation, mostly for bugfixes
* development - development branch, anything goes there
-### Folder structure
-
- folder | description
- ------ | -----------
-/src | source code
-/src/widgets | subclassed Qt widgets
-/src/formats | file format parsing (toml, xbel)
-/src/forms | Qt UI forms and classes
-/src/webengine | QWebEngine subclasses
-/test | test run location, mainly for QtCreator
-
-
## clazy
You can use [clazy](https://github.com/KDE/clazy) to check Qt semantics.
Requires clang.
diff --git a/docs/manual/Contributing.Code.md b/docs/manual/Contributing.Submitting.md
index d84e14f..d84e14f 100644
--- a/docs/manual/Contributing.Code.md
+++ b/docs/manual/Contributing.Submitting.md
diff --git a/docs/manual/SUMMARY.md b/docs/manual/SUMMARY.md
index 5362502..ca7b072 100644
--- a/docs/manual/SUMMARY.md
+++ b/docs/manual/SUMMARY.md
@@ -11,4 +11,4 @@
- [Contributing](./Contributing.md)
- [Reporting bugs](./Contributing.Bugs.md)
- [Code style](./Contributing.Style.md)
- - [Before you submit](./Contributing.Code.md)
+ - [Submitting](./Contributing.Submitting.md)