diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/DESIGN.md | 97 | ||||
-rw-r--r-- | docs/manual/Building.Compiling.md | 28 | ||||
-rw-r--r-- | docs/manual/Building.Dependencies.md | 2 | ||||
-rw-r--r-- | docs/manual/Contributing.Style.md | 28 | ||||
-rw-r--r-- | docs/manual/Contributing.Submitting.md (renamed from docs/manual/Contributing.Code.md) | 0 | ||||
-rw-r--r-- | docs/manual/SUMMARY.md | 2 |
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) |