Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+
+
Sorry, nothing was found.
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Class List
-
-
-
Here are the classes, structs, unions and interfaces with brief descriptions:
Called when the other user does something that changes appearance on canvas.
+
+
+
+
Function documentation
+
+
+ auto sk::AbstractNetwork::getSocket() -> QTcpSocket * pure virtual
+
+
Helper to get current connection.
+
If the app was started as a server, this returns the client 'connection', If the app was started as a client, this 'returns' the server, otherwise it simply returns nullptr.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Defines methods for drawing with different instruments.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
This was actually supposed to be FCachedResource. It turned out we were overcomplicating ourselves with the store cache after n layers. It was incredibly tedious to implement(address sanitizer found some iterator invalidations) and didn't provide much benefit. This is only used when multiple users are connected to store local cache for each of them.
+ auto sk::CachedResource<T, Traits>::undo() -> bool
+
+
+
+
+
Returns
+
true If undo was successful. false If already at oldest change.
+
+
+
+
+
+
+
+ template<typename T, typename Traits>
+
+ auto sk::CachedResource<T, Traits>::redo() -> bool
+
+
+
+
+
Returns
+
true If redo can be done still. false If got to the newest change.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+ void sk::Canvas::onReceivedMessage(QString const& msg) public slot
+
+
Called when a message through the network is received. Also handles the actual events that were received.
+
+
+
+ void sk::Canvas::changeColor(QColor const& color) public slot
+
+
Changes the color of the pen/brush to draw with.
+
+
+
+ void sk::Canvas::changeWidth(const int width) public slot
+
+
Changes the size of the brush/pen.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+ auto getSocket() -> QTcpSocket * -> auto override
+
+
Helper to get current connection.
+
+
+
+
Function documentation
+
+
+ auto sk::Client::getSocket() -> QTcpSocket * override
+
+
Helper to get current connection.
+
If the app was started as a server, this returns the client 'connection', If the app was started as a client, this 'returns' the server, otherwise it simply returns nullptr.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+ auto pushNewLayer(bool const foreign = false) -> void -> auto
+
+
+
+ auto paintCanvas(QPainter*const painter) -> void -> auto
+
+
Draws the last layer for each user.
+
+ auto drawAt(QPoint const& pos,
+ DrawMode& mode,
+ bool const foreign = false) -> void -> auto
+
+
+
+
+
+
Function documentation
+
+
+ auto sk::DrawHistory::pushNewLayer(bool const foreign = false) -> void
+
+
Creates a new layer that copies the image of the previous one, being able to draw over it next time. This is how history tracking works.
When multiple users are drawing, there is at most one CachedLayers for each one, limiting the history on frequent alternative drawings, but works well with many consecutive modifications made by one user. This is a tradeoff we've taken since keeping two drawings in sync over the network proved to be way out of our league.
Just draws with current pen/brush on the canvas on given position.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+ auto setWidth(int const width) noexcept -> void -> auto
+
+
Changes size of tool.
+
+ auto getColor() const noexcept -> QColor -> auto
+
+
Gets color of tool.
+
+ auto setColor(QColor const& color) noexcept -> void -> auto
+
+
Sets color of tool.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+ auto getSocket() -> QTcpSocket * -> auto override
+
+
Helper to get current connection.
+
+
+
+
Function documentation
+
+
+ auto sk::DummyNetwork::getSocket() -> QTcpSocket * override
+
+
Helper to get current connection.
+
If the app was started as a server, this returns the client 'connection', If the app was started as a client, this 'returns' the server, otherwise it simply returns nullptr.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+ auto sk::FCachedResource<T, Traits>::undo() -> bool
+
+
+
+
+
Returns
+
false If undo is no longer possible.
+
+
+
+
Current layer becomes std::prev(current_layer_iterator).
+
+
+
+
+ template<typename T, typename Traits>
+
+ auto sk::FCachedResource<T, Traits>::redo() -> bool
+
+
+
+
+
Returns
+
false If redo is no longer possible.
+
+
+
+
Current layer becomes std::next(current_layer_iterator).
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Defines methods for drawing with different instruments.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+ auto getSocket() -> QTcpSocket * -> auto override
+
+
Helper to get current connection.
+
+
+
+
Function documentation
+
+
+ auto sk::Server::getSocket() -> QTcpSocket * override
+
+
Helper to get current connection.
+
If the app was started as a server, this returns the client 'connection', If the app was started as a client, this 'returns' the server, otherwise it simply returns nullptr.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
A helper class that wraps FCachedResource and represents modifications to a batch of layers.
+
It also stores a bool that remembers whether or not the layer batch is local or 'foreign'.
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
-
-
-Generated by
-
- 1.8.17
-
-
-
diff --git a/docs/dynsections.js b/docs/dynsections.js
deleted file mode 100644
index c8e84aa..0000000
--- a/docs/dynsections.js
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- @licstart The following is the entire license notice for the
- JavaScript code in this file.
-
- Copyright (C) 1997-2017 by Dimitri van Heesch
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- @licend The above is the entire license notice
- for the JavaScript code in this file
- */
-function toggleVisibility(linkObj)
-{
- var base = $(linkObj).attr('id');
- var summary = $('#'+base+'-summary');
- var content = $('#'+base+'-content');
- var trigger = $('#'+base+'-trigger');
- var src=$(trigger).attr('src');
- if (content.is(':visible')===true) {
- content.hide();
- summary.show();
- $(linkObj).addClass('closed').removeClass('opened');
- $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
- } else {
- content.show();
- summary.hide();
- $(linkObj).removeClass('closed').addClass('opened');
- $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
- }
- return false;
-}
-
-function updateStripes()
-{
- $('table.directory tr').
- removeClass('even').filter(':visible:even').addClass('even');
-}
-
-function toggleLevel(level)
-{
- $('table.directory tr').each(function() {
- var l = this.id.split('_').length-1;
- var i = $('#img'+this.id.substring(3));
- var a = $('#arr'+this.id.substring(3));
- if (l
+
+
+ fcached_resource_test.cpp
+ test.hpp
+ fixed_cached_resource.hpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FTraits
+ FTrait2
+ FTraits3
+ anonymous_namespace{fcached_resource_test.cpp}
+
+
+ auto
+ auto add
+ (int &dest, int const &src) -> void
+ add
+
+ int &
+ dest
+
+
+ int const &
+ src
+
+
+
+
+
+
+
+
+
+
+
+ TEST
+ ("[FCachedResource] Undo/Redo")
+ TEST
+
+ " Undo/Redo"
+ [FCachedResource]
+
+
+
+
+
+
+
+
+
+
+
+ TEST
+ ("[FCachedResource] emplaceBack")
+ TEST
+
+ " emplaceBack"
+ [FCachedResource]
+
+
+
+
+
+
+
+
+
+
+
+ TEST
+ ("[FCachedResource] maxCount")
+ TEST
+
+ " maxCount"
+ [FCachedResource]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/fcached__resource__test_8cpp_source.html b/docs/fcached__resource__test_8cpp_source.html
deleted file mode 100644
index de02e8e..0000000
--- a/docs/fcached__resource__test_8cpp_source.html
+++ /dev/null
@@ -1,268 +0,0 @@
-
-
-
-
-
-
-
-Skribble: tests/fcached_resource_test.cpp Source File
-
-
-
-
-
-
-
-
-
-
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+
+
Sorry, nothing was found.
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
File List
-
-
-
Here is a list of all documented files with brief descriptions:
This page explains how to interpret the graphs that are generated by doxygen.
-
Consider the following example:
/*! Invisible class because of truncation */
-
class Invisible { };
-
-
/*! Truncated class, inheritance relation is hidden */
-
class Truncated : public Invisible { };
-
-
/* Class not documented with doxygen comments */
-
class Undocumented { };
-
-
/*! Class that is inherited using public inheritance */
-
class PublicBase : public Truncated { };
-
-
/*! A template class */
-
template<class T> class Templ { };
-
-
/*! Class that is inherited using protected inheritance */
-
class ProtectedBase { };
-
-
/*! Class that is inherited using private inheritance */
-
class PrivateBase { };
-
-
/*! Class that is used by the Inherited class */
-
class Used { };
-
-
/*! Super class that inherits a number of other classes */
-
class Inherited : public PublicBase,
-
protected ProtectedBase,
-
private PrivateBase,
-
public Undocumented,
-
public Templ<int>
-
{
-
private:
-
Used *m_usedClass;
-
};
-
This will result in the following graph:
-
The boxes in the above graph have the following meaning:
-
-
-A filled gray box represents the struct or class for which the graph is generated.
-
-A box with a black border denotes a documented struct or class.
-
-A box with a gray border denotes an undocumented struct or class.
-
-A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
-
-
The arrows have the following meaning:
-
-
-A dark blue arrow is used to visualize a public inheritance relation between two classes.
-
-A dark green arrow is used for protected inheritance.
-
-A dark red arrow is used for private inheritance.
-
-A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
-
-A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
-
-
-
-
-Generated by
-
- 1.8.17
-
-
-
diff --git a/docs/graph_legend.md5 b/docs/graph_legend.md5
deleted file mode 100644
index 8fcdccd..0000000
--- a/docs/graph_legend.md5
+++ /dev/null
@@ -1 +0,0 @@
-f51bf6e9a10430aafef59831b08dcbfe
\ No newline at end of file
diff --git a/docs/graph_legend.png b/docs/graph_legend.png
deleted file mode 100644
index 50164db..0000000
Binary files a/docs/graph_legend.png and /dev/null differ
diff --git a/docs/hierarchy.html b/docs/hierarchy.html
deleted file mode 100644
index 9a443c8..0000000
--- a/docs/hierarchy.html
+++ /dev/null
@@ -1,112 +0,0 @@
-
-
-
-
-
-
-
-Skribble: Class Hierarchy
-
-
-
-
-
-
-
-
-
-
Skribble tries to be a collaborative app made with Qt. At most two users can draw on the same canvas. It was made as part of an assignment at our University.
Starting ./Skribble gives you the single user mode of the app, a normal painting app as you expect.
Starting ./Skribble -s starts the app and the server, which clients can connect to with ./Skribble -c <ip> where ip is, in theory, one's public IP. In practice, there is no way to connect over the network if the IP is dynamic or for other reasons we don't know. For sure is, to test the app in collaborative mode you can do ./Skribble -s from one terminal and ./Skribble -c 127.0.0.1 from another terminal which connects to the local host, thus emulating a two user scenario.
# Other than above parameters
+cmake -DENABLE_SANITIZER_ADDRESS=ON \
+ -DENABLE_SANITIZER_UNDEFINED=ON \
+ -DBUILD_TESTS=ON \
+ ..
Obviously Qt5 needs to be installed.
To run the tests go in the build folder and run: ctest-V
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+
+
Sorry, nothing was found.
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Skribble Documentation
-
-
-
-
-
-Generated by
-
- 1.8.17
-
+
+
+
diff --git a/docs/index.xml b/docs/index.xml
new file mode 100644
index 0000000..c55dc00
--- /dev/null
+++ b/docs/index.xml
@@ -0,0 +1,456 @@
+
+
+ sk::AbstractNetwork
+ AbstractNetwork
+ AbstractNetwork
+ AbstractNetwork
+ ~AbstractNetwork
+ operator=
+ operator=
+ getSocket
+ sendDrawAt
+ sendMouseReleased
+ sendUndo
+ sendRedo
+ sendChangeColor
+ sendChangeWidth
+ sendToPen
+ sendToBrush
+ receivedMessage
+
+ sk::BrushMode
+ m_brush
+ BrushMode
+ BrushMode
+ BrushMode
+ ~BrushMode
+ BrushMode
+ BrushMode
+ operator=
+ operator=
+ draw
+
+ sk::impl::CachedLayers
+ m_foreign
+ m_layers
+ m_transparent
+ m_canvasRect
+ PixmapDrawer
+ PixmapInit
+ CachedLayers
+ CachedLayers
+ CachedLayers
+ ~CachedLayers
+ operator=
+ operator=
+ pushNewLayer
+ paintBlock
+ getLastLayer
+ getLastLayer
+ foreign
+ underUndo
+ undo
+ redo
+ getCanvasRect
+
+ sk::CachedResource
+ ContainerType
+ Iterator
+ Function
+ m_cacheGap
+ m_maxCount
+ m_data
+ m_cache
+ m_dataLimit
+ m_cacheLimit
+ m_underUndo
+ m_function
+ plus
+ getNumCaches
+ noCaches
+ getIteratorPastCache
+ clearUndo
+ CachedResource
+ CachedResource
+ CachedResource
+ CachedResource
+ ~CachedResource
+ operator=
+ operator=
+ emplaceBack
+ getLastCache
+ reduceTo
+ reduceTo
+ getLast
+ getLast
+ underUndo
+ undo
+ redo
+ getUnderlying
+ getUnderlying
+
+ sk::Canvas
+ m_history
+ m_drawMode
+ m_network
+ m_foreignColor
+ m_foreignWidth
+ Canvas
+ Canvas
+ Canvas
+ ~Canvas
+ operator=
+ operator=
+ paint
+ mousePositionChanged
+ mouseReleased
+ undo
+ redo
+ onReceivedMessage
+ changeColor
+ changeWidth
+
+ sk::Client
+ m_server
+ Client
+ Client
+ Client
+ ~Client
+ operator=
+ operator=
+ getSocket
+
+ sk::DrawHistory
+ m_layers
+ m_cache
+ m_lastPoint
+ m_lastExternalPoint
+ m_drawingLocally
+ m_drawingExternally
+ CachedDrawer
+ handleExternal
+ handleLocal
+ popFirst
+ DrawHistory
+ DrawHistory
+ DrawHistory
+ ~DrawHistory
+ operator=
+ operator=
+ pushNewLayer
+ paintCanvas
+ drawAt
+ undo
+ redo
+
+ sk::DrawMode
+ m_defaultWidth
+ m_defaultColor
+ m_width
+ m_color
+ DrawMode
+ DrawMode
+ DrawMode
+ ~DrawMode
+ operator=
+ operator=
+ draw
+ getWidth
+ setWidth
+ getColor
+ setColor
+ getDefaultColor
+ getDefaultWidth
+
+ Dummy
+ m_num
+ Dummy
+ Dummy
+ Dummy
+ ~Dummy
+ Dummy
+ operator=
+ operator=
+ operator<<
+
+ sk::DummyNetwork
+ DummyNetwork
+ DummyNetwork
+ DummyNetwork
+ ~DummyNetwork
+ operator=
+ operator=
+ getSocket
+
+ sk::FCachedResource
+ ContainerType
+ Iterator
+ Function
+ InitFunction
+ m_maxCount
+ m_data
+ m_iterator
+ m_function
+ m_initFunction
+ m_underUndo
+ FCachedResource
+ FCachedResource
+ FCachedResource
+ ~FCachedResource
+ FCachedResource
+ operator=
+ operator=
+ emplaceBack
+ underUndo
+ get
+ get
+ undo
+ redo
+ getUnderlying
+ getUnderlying
+
+ sk::FResTraits
+ ContainerType
+ maxCount
+
+ FTrait2
+ ContainerType
+ maxCount
+
+ FTraits
+ ContainerType
+ ContainerType
+ cacheGap
+ maxCount
+
+ FTraits3
+ ContainerType
+ maxCount
+
+ sk::NetworkFactory
+ create
+
+ sk::PenMode
+ m_pen
+ PenMode
+ PenMode
+ PenMode
+ ~PenMode
+ PenMode
+ PenMode
+ operator=
+ operator=
+ draw
+
+ TestBase::Proxy
+ str
+ Proxy
+ Proxy
+ Proxy
+ ~Proxy
+ operator=
+ operator=
+ operator+
+ operator==
+ operator!=
+
+ sk::ResourceTraits
+ ContainerType
+ cacheGap
+ maxCount
+
+ sk::Server
+ m_server
+ m_socket
+ Server
+ Server
+ Server
+ ~Server
+ operator=
+ operator=
+ getSocket
+
+ TestBase
+ m_output
+ m_name
+ m_file
+ m_line
+ m_testId
+ TestBase
+ TestBase
+ TestBase
+ ~TestBase
+ TestBase
+ operator=
+ operator=
+ run
+
+ Trait2
+ ContainerType
+ cacheGap
+ maxCount
+
+ sk::DrawHistory::Traits
+ ContainerType
+ cacheGap
+ maxCount
+
+ Traits3
+ ContainerType
+ maxCount
+ cacheGap
+
+ anonymous_namespace{cached_resource_test.cpp}
+ adder
+
+ anonymous_namespace{fcached_resource_test.cpp}
+ adder
+ init
+
+ sk
+ Operation
+ UNDO
+ REDO
+ DRAW_AT
+ MOUSE_RELEASED
+ CHANGE_COLOR
+ CHANGE_WIDTH
+ TO_BRUSH
+ TO_PEN
+ NONE
+ NetworkModes
+ SINGLE_USER
+ CLIENT
+ SERVER
+ port
+ host_ip
+ networkMode
+ makeDrawMode
+ makeDrawMode
+ makeDrawMode
+ makeDrawMode
+ format
+ printTo
+ printlnTo
+ print
+ println
+ parse
+
+ sk::anonymous_namespace{abstract_network.cpp}
+ handleWrite
+
+ sk::anonymous_namespace{message_parser.cpp}
+ split
+
+ sk::config
+ width
+ height
+
+ sk::impl
+
+ abstract_network.cpp
+
+ abstract_network.hpp
+
+ cached_resource.hpp
+
+ canvas.cpp
+
+ canvas.hpp
+
+ canvas_config.hpp
+
+ client.cpp
+
+ client.hpp
+
+ CMakeLists.txt
+ qt5_add_resources
+
+ CMakeLists.txt
+ add_executable
+
+ draw_history.cpp
+
+ draw_history.hpp
+
+ draw_mode.cpp
+
+ draw_mode.hpp
+
+ dummy_network.cpp
+
+ dummy_network.hpp
+
+ fixed_cached_resource.hpp
+
+ format.hpp
+
+ main.cpp
+ main
+
+ message_parser.cpp
+
+ message_parser.hpp
+
+ network_config.hpp
+
+ network_factory.cpp
+
+ network_factory.hpp
+
+ server.cpp
+
+ server.hpp
+
+ cached_resource_test.cpp
+ MAIN_EXECUTABLE
+ TEST
+ TEST
+ TEST
+
+ fcached_resource_test.cpp
+ add
+ TEST
+ TEST
+ TEST
+
+ format_test.cpp
+ TEST
+ TEST
+ TEST
+ TEST
+ TEST
+
+ test.hpp
+ PASTE_2
+ PASTE_1
+ PASTE
+ RAND
+ RAND2
+ ASSERT
+ TEST
+ getTestId
+ getTests
+
+ message_parser_test.cpp
+ operator<<
+ TEST
+ TEST
+ TEST
+ TEST
+ TEST
+ TEST
+ TEST
+ TEST
+ TEST
+
+ tests/helper
+
+ src
+
+ tests
+
+ index
+
+
diff --git a/docs/index.xsd b/docs/index.xsd
new file mode 100644
index 0000000..04cb2f1
--- /dev/null
+++ b/docs/index.xsd
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/indexpage.xml b/docs/indexpage.xml
new file mode 100644
index 0000000..8ccccc3
--- /dev/null
+++ b/docs/indexpage.xml
@@ -0,0 +1,42 @@
+
+
+
+ index
+ Skribble
+
+
+
+
+What is it?
+Skribble tries to be a collaborative app made with Qt. At most two users can draw on the same canvas. It was made as part of an assignment at our University.
+
+
+Download
+There is a binary release available for Windows here.
+
+
+Usage
+Starting ./Skribble gives you the single user mode of the app, a normal painting app as you expect.
+Starting ./Skribble -s starts the app and the server, which clients can connect to with ./Skribble -c <ip> where ip is, in theory, one's public IP. In practice, there is no way to connect over the network if the IP is dynamic or for other reasons we don't know. For sure is, to test the app in collaborative mode you can do ./Skribble -s from one terminal and ./Skribble -c 127.0.0.1 from another terminal which connects to the local host, thus emulating a two user scenario.
+
+
+Build
+The straightforward way: mkdirbuild&&cdbuild
+cmake-DCMAKE_PREFIX_PATH=/path/to/Qt/5.x.x/lib/cmake\
+-DCMAKE_BUILD_TYPE=Release\
+..
+cmake--build.
+
+For development: #Otherthanaboveparameters
+cmake-DENABLE_SANITIZER_ADDRESS=ON\
+-DENABLE_SANITIZER_UNDEFINED=ON\
+-DBUILD_TESTS=ON\
+..
+
+Obviously Qt5 needs to be installed.
+To run the tests go in the build folder and run: ctest-V
+
+
+
+
+
diff --git a/docs/inherit_graph_0.map b/docs/inherit_graph_0.map
deleted file mode 100644
index 6132c28..0000000
--- a/docs/inherit_graph_0.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_0.md5 b/docs/inherit_graph_0.md5
deleted file mode 100644
index a47315e..0000000
--- a/docs/inherit_graph_0.md5
+++ /dev/null
@@ -1 +0,0 @@
-fc157c8234ae74649f72977cdb64e869
\ No newline at end of file
diff --git a/docs/inherit_graph_0.png b/docs/inherit_graph_0.png
deleted file mode 100644
index c3d762e..0000000
Binary files a/docs/inherit_graph_0.png and /dev/null differ
diff --git a/docs/inherit_graph_1.map b/docs/inherit_graph_1.map
deleted file mode 100644
index 5e50eff..0000000
--- a/docs/inherit_graph_1.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_1.md5 b/docs/inherit_graph_1.md5
deleted file mode 100644
index 717bec9..0000000
--- a/docs/inherit_graph_1.md5
+++ /dev/null
@@ -1 +0,0 @@
-d57703f284c429e20b526efb6a69038d
\ No newline at end of file
diff --git a/docs/inherit_graph_1.png b/docs/inherit_graph_1.png
deleted file mode 100644
index 889b9e0..0000000
Binary files a/docs/inherit_graph_1.png and /dev/null differ
diff --git a/docs/inherit_graph_10.map b/docs/inherit_graph_10.map
deleted file mode 100644
index 2d34277..0000000
--- a/docs/inherit_graph_10.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_10.md5 b/docs/inherit_graph_10.md5
deleted file mode 100644
index 20f17f9..0000000
--- a/docs/inherit_graph_10.md5
+++ /dev/null
@@ -1 +0,0 @@
-f9db9611844c6c2804009aedf5bafe15
\ No newline at end of file
diff --git a/docs/inherit_graph_10.png b/docs/inherit_graph_10.png
deleted file mode 100644
index e821a9a..0000000
Binary files a/docs/inherit_graph_10.png and /dev/null differ
diff --git a/docs/inherit_graph_11.map b/docs/inherit_graph_11.map
deleted file mode 100644
index 2d34277..0000000
--- a/docs/inherit_graph_11.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_11.md5 b/docs/inherit_graph_11.md5
deleted file mode 100644
index 44ac97c..0000000
--- a/docs/inherit_graph_11.md5
+++ /dev/null
@@ -1 +0,0 @@
-e747395efaf98fc771c0dc24fd818831
\ No newline at end of file
diff --git a/docs/inherit_graph_11.png b/docs/inherit_graph_11.png
deleted file mode 100644
index eb48ae3..0000000
Binary files a/docs/inherit_graph_11.png and /dev/null differ
diff --git a/docs/inherit_graph_12.map b/docs/inherit_graph_12.map
deleted file mode 100644
index af3695c..0000000
--- a/docs/inherit_graph_12.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_12.md5 b/docs/inherit_graph_12.md5
deleted file mode 100644
index abb9244..0000000
--- a/docs/inherit_graph_12.md5
+++ /dev/null
@@ -1 +0,0 @@
-896e1330d14810469fa14fee9218cffa
\ No newline at end of file
diff --git a/docs/inherit_graph_12.png b/docs/inherit_graph_12.png
deleted file mode 100644
index c96cef8..0000000
Binary files a/docs/inherit_graph_12.png and /dev/null differ
diff --git a/docs/inherit_graph_13.map b/docs/inherit_graph_13.map
deleted file mode 100644
index 2ed7580..0000000
--- a/docs/inherit_graph_13.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_13.md5 b/docs/inherit_graph_13.md5
deleted file mode 100644
index 220ab48..0000000
--- a/docs/inherit_graph_13.md5
+++ /dev/null
@@ -1 +0,0 @@
-befca31a02a4117700cc02add5192a22
\ No newline at end of file
diff --git a/docs/inherit_graph_13.png b/docs/inherit_graph_13.png
deleted file mode 100644
index e3c17d1..0000000
Binary files a/docs/inherit_graph_13.png and /dev/null differ
diff --git a/docs/inherit_graph_14.map b/docs/inherit_graph_14.map
deleted file mode 100644
index cbf65a0..0000000
--- a/docs/inherit_graph_14.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_14.md5 b/docs/inherit_graph_14.md5
deleted file mode 100644
index e4b7b61..0000000
--- a/docs/inherit_graph_14.md5
+++ /dev/null
@@ -1 +0,0 @@
-3562491130e01f4a9db7893bf6c6b064
\ No newline at end of file
diff --git a/docs/inherit_graph_14.png b/docs/inherit_graph_14.png
deleted file mode 100644
index 273bca0..0000000
Binary files a/docs/inherit_graph_14.png and /dev/null differ
diff --git a/docs/inherit_graph_15.map b/docs/inherit_graph_15.map
deleted file mode 100644
index 01c6042..0000000
--- a/docs/inherit_graph_15.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_15.md5 b/docs/inherit_graph_15.md5
deleted file mode 100644
index 8d87993..0000000
--- a/docs/inherit_graph_15.md5
+++ /dev/null
@@ -1 +0,0 @@
-fab5dc1767db8e591c8f274188c37d01
\ No newline at end of file
diff --git a/docs/inherit_graph_15.png b/docs/inherit_graph_15.png
deleted file mode 100644
index d0df454..0000000
Binary files a/docs/inherit_graph_15.png and /dev/null differ
diff --git a/docs/inherit_graph_16.map b/docs/inherit_graph_16.map
deleted file mode 100644
index 906417e..0000000
--- a/docs/inherit_graph_16.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_16.md5 b/docs/inherit_graph_16.md5
deleted file mode 100644
index 4ce70fe..0000000
--- a/docs/inherit_graph_16.md5
+++ /dev/null
@@ -1 +0,0 @@
-d0c1e0a40fb42346fe0f6b7b47dfb07b
\ No newline at end of file
diff --git a/docs/inherit_graph_16.png b/docs/inherit_graph_16.png
deleted file mode 100644
index 102aa25..0000000
Binary files a/docs/inherit_graph_16.png and /dev/null differ
diff --git a/docs/inherit_graph_17.map b/docs/inherit_graph_17.map
deleted file mode 100644
index 9f3dbf6..0000000
--- a/docs/inherit_graph_17.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_17.md5 b/docs/inherit_graph_17.md5
deleted file mode 100644
index 1ddc4d7..0000000
--- a/docs/inherit_graph_17.md5
+++ /dev/null
@@ -1 +0,0 @@
-5bbab1d93ed0e69780a25fa5265a9c6f
\ No newline at end of file
diff --git a/docs/inherit_graph_17.png b/docs/inherit_graph_17.png
deleted file mode 100644
index cc77e2b..0000000
Binary files a/docs/inherit_graph_17.png and /dev/null differ
diff --git a/docs/inherit_graph_18.map b/docs/inherit_graph_18.map
deleted file mode 100644
index df2616f..0000000
--- a/docs/inherit_graph_18.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_18.md5 b/docs/inherit_graph_18.md5
deleted file mode 100644
index 0b71bfb..0000000
--- a/docs/inherit_graph_18.md5
+++ /dev/null
@@ -1 +0,0 @@
-39bae2b66bcf02d6ed31993f54621ec8
\ No newline at end of file
diff --git a/docs/inherit_graph_18.png b/docs/inherit_graph_18.png
deleted file mode 100644
index acce124..0000000
Binary files a/docs/inherit_graph_18.png and /dev/null differ
diff --git a/docs/inherit_graph_19.map b/docs/inherit_graph_19.map
deleted file mode 100644
index 72d959e..0000000
--- a/docs/inherit_graph_19.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_19.md5 b/docs/inherit_graph_19.md5
deleted file mode 100644
index 8e43c65..0000000
--- a/docs/inherit_graph_19.md5
+++ /dev/null
@@ -1 +0,0 @@
-1d8d7058b865c223183360ad7e2e2c76
\ No newline at end of file
diff --git a/docs/inherit_graph_19.png b/docs/inherit_graph_19.png
deleted file mode 100644
index 9e85c7a..0000000
Binary files a/docs/inherit_graph_19.png and /dev/null differ
diff --git a/docs/inherit_graph_2.map b/docs/inherit_graph_2.map
deleted file mode 100644
index f4e4950..0000000
--- a/docs/inherit_graph_2.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_2.md5 b/docs/inherit_graph_2.md5
deleted file mode 100644
index 20b2209..0000000
--- a/docs/inherit_graph_2.md5
+++ /dev/null
@@ -1 +0,0 @@
-fd43ff197d74d8374b115e3b712d77b1
\ No newline at end of file
diff --git a/docs/inherit_graph_2.png b/docs/inherit_graph_2.png
deleted file mode 100644
index da4c409..0000000
Binary files a/docs/inherit_graph_2.png and /dev/null differ
diff --git a/docs/inherit_graph_20.map b/docs/inherit_graph_20.map
deleted file mode 100644
index c25400f..0000000
--- a/docs/inherit_graph_20.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_20.md5 b/docs/inherit_graph_20.md5
deleted file mode 100644
index 8822df5..0000000
--- a/docs/inherit_graph_20.md5
+++ /dev/null
@@ -1 +0,0 @@
-f42ebb28bcb9469a851613af3a157443
\ No newline at end of file
diff --git a/docs/inherit_graph_20.png b/docs/inherit_graph_20.png
deleted file mode 100644
index 4230c85..0000000
Binary files a/docs/inherit_graph_20.png and /dev/null differ
diff --git a/docs/inherit_graph_21.map b/docs/inherit_graph_21.map
deleted file mode 100644
index 725464c..0000000
--- a/docs/inherit_graph_21.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_21.md5 b/docs/inherit_graph_21.md5
deleted file mode 100644
index 33f6230..0000000
--- a/docs/inherit_graph_21.md5
+++ /dev/null
@@ -1 +0,0 @@
-adcd8d1ca8d737d9f7ce91bc290048bc
\ No newline at end of file
diff --git a/docs/inherit_graph_21.png b/docs/inherit_graph_21.png
deleted file mode 100644
index 7d5f016..0000000
Binary files a/docs/inherit_graph_21.png and /dev/null differ
diff --git a/docs/inherit_graph_3.map b/docs/inherit_graph_3.map
deleted file mode 100644
index aa3b380..0000000
--- a/docs/inherit_graph_3.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_3.md5 b/docs/inherit_graph_3.md5
deleted file mode 100644
index 09701a8..0000000
--- a/docs/inherit_graph_3.md5
+++ /dev/null
@@ -1 +0,0 @@
-8a7c808d62e2071edc3e201e6bdc79c1
\ No newline at end of file
diff --git a/docs/inherit_graph_3.png b/docs/inherit_graph_3.png
deleted file mode 100644
index ca90151..0000000
Binary files a/docs/inherit_graph_3.png and /dev/null differ
diff --git a/docs/inherit_graph_4.map b/docs/inherit_graph_4.map
deleted file mode 100644
index 62612ea..0000000
--- a/docs/inherit_graph_4.map
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/docs/inherit_graph_4.md5 b/docs/inherit_graph_4.md5
deleted file mode 100644
index 72f84b7..0000000
--- a/docs/inherit_graph_4.md5
+++ /dev/null
@@ -1 +0,0 @@
-9b50b95da903ed2e70500682f0da4e54
\ No newline at end of file
diff --git a/docs/inherit_graph_4.png b/docs/inherit_graph_4.png
deleted file mode 100644
index 22dcc89..0000000
Binary files a/docs/inherit_graph_4.png and /dev/null differ
diff --git a/docs/inherit_graph_5.map b/docs/inherit_graph_5.map
deleted file mode 100644
index 777455b..0000000
--- a/docs/inherit_graph_5.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_5.md5 b/docs/inherit_graph_5.md5
deleted file mode 100644
index 09d729d..0000000
--- a/docs/inherit_graph_5.md5
+++ /dev/null
@@ -1 +0,0 @@
-3ee0c12b5f59fc7a7666cd0203c8f154
\ No newline at end of file
diff --git a/docs/inherit_graph_5.png b/docs/inherit_graph_5.png
deleted file mode 100644
index 7fa1d14..0000000
Binary files a/docs/inherit_graph_5.png and /dev/null differ
diff --git a/docs/inherit_graph_6.map b/docs/inherit_graph_6.map
deleted file mode 100644
index fa2b734..0000000
--- a/docs/inherit_graph_6.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_6.md5 b/docs/inherit_graph_6.md5
deleted file mode 100644
index 015bfa7..0000000
--- a/docs/inherit_graph_6.md5
+++ /dev/null
@@ -1 +0,0 @@
-b68d109cc9b0532fb26d13efde867e24
\ No newline at end of file
diff --git a/docs/inherit_graph_6.png b/docs/inherit_graph_6.png
deleted file mode 100644
index 8ea218a..0000000
Binary files a/docs/inherit_graph_6.png and /dev/null differ
diff --git a/docs/inherit_graph_7.map b/docs/inherit_graph_7.map
deleted file mode 100644
index 41774af..0000000
--- a/docs/inherit_graph_7.map
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/docs/inherit_graph_7.md5 b/docs/inherit_graph_7.md5
deleted file mode 100644
index 1372d0c..0000000
--- a/docs/inherit_graph_7.md5
+++ /dev/null
@@ -1 +0,0 @@
-42a6f895b14965ff86ac4ccc17e0fde2
\ No newline at end of file
diff --git a/docs/inherit_graph_7.png b/docs/inherit_graph_7.png
deleted file mode 100644
index d560481..0000000
Binary files a/docs/inherit_graph_7.png and /dev/null differ
diff --git a/docs/inherit_graph_8.map b/docs/inherit_graph_8.map
deleted file mode 100644
index cc56786..0000000
--- a/docs/inherit_graph_8.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/inherit_graph_8.md5 b/docs/inherit_graph_8.md5
deleted file mode 100644
index 2dd396b..0000000
--- a/docs/inherit_graph_8.md5
+++ /dev/null
@@ -1 +0,0 @@
-c0a19c3b43aac6fc37969189847988e9
\ No newline at end of file
diff --git a/docs/inherit_graph_8.png b/docs/inherit_graph_8.png
deleted file mode 100644
index f6d0c51..0000000
Binary files a/docs/inherit_graph_8.png and /dev/null differ
diff --git a/docs/inherit_graph_9.map b/docs/inherit_graph_9.map
deleted file mode 100644
index 4631686..0000000
--- a/docs/inherit_graph_9.map
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/docs/inherit_graph_9.md5 b/docs/inherit_graph_9.md5
deleted file mode 100644
index cdc1bf4..0000000
--- a/docs/inherit_graph_9.md5
+++ /dev/null
@@ -1 +0,0 @@
-880a432ec860c55107d48dbb887667a4
\ No newline at end of file
diff --git a/docs/inherit_graph_9.png b/docs/inherit_graph_9.png
deleted file mode 100644
index 1af6c55..0000000
Binary files a/docs/inherit_graph_9.png and /dev/null differ
diff --git a/docs/inherits.html b/docs/inherits.html
deleted file mode 100644
index b0f17fd..0000000
--- a/docs/inherits.html
+++ /dev/null
@@ -1,198 +0,0 @@
-
-
-
-
-
-
-
-Skribble: Class Hierarchy
-
-
-
-
-
-
-
-
-
-
-
-
-Generated by
-
- 1.8.17
-
-
-
diff --git a/docs/menu.js b/docs/menu.js
deleted file mode 100644
index 433c15b..0000000
--- a/docs/menu.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- @licstart The following is the entire license notice for the
- JavaScript code in this file.
-
- Copyright (C) 1997-2017 by Dimitri van Heesch
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- @licend The above is the entire license notice
- for the JavaScript code in this file
- */
-function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
- function makeTree(data,relPath) {
- var result='';
- if ('children' in data) {
- result+='
');
- }
- }
- $('#main-menu').smartmenus();
-}
-/* @license-end */
diff --git a/docs/menudata.js b/docs/menudata.js
deleted file mode 100644
index af4aeaa..0000000
--- a/docs/menudata.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-@licstart The following is the entire license notice for the
-JavaScript code in this file.
-
-Copyright (C) 1997-2019 by Dimitri van Heesch
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of version 2 of the GNU General Public License as published by
-the Free Software Foundation
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-@licend The above is the entire license notice
-for the JavaScript code in this file
-*/
-var menudata={children:[
-{text:"Main Page",url:"index.html"},
-{text:"Namespaces",url:"namespaces.html",children:[
-{text:"Namespace List",url:"namespaces.html"}]},
-{text:"Classes",url:"annotated.html",children:[
-{text:"Class List",url:"annotated.html"},
-{text:"Class Index",url:"classes.html"},
-{text:"Class Hierarchy",url:"inherits.html"},
-{text:"Class Members",url:"functions.html",children:[
-{text:"All",url:"functions.html"},
-{text:"Functions",url:"functions_func.html"}]}]},
-{text:"Files",url:"files.html",children:[
-{text:"File List",url:"files.html"}]}]}
diff --git a/docs/message__parser_8cpp.xml b/docs/message__parser_8cpp.xml
new file mode 100644
index 0000000..96b528b
--- /dev/null
+++ b/docs/message__parser_8cpp.xml
@@ -0,0 +1,45 @@
+
+
+
+ message_parser.cpp
+ message_parser.hpp
+ string
+ vector
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sk
+ sk::anonymous_namespace{message_parser.cpp}
+
+
+
+
+
+
+
diff --git a/docs/message__parser_8cpp_source.html b/docs/message__parser_8cpp_source.html
deleted file mode 100644
index 9b16a5e..0000000
--- a/docs/message__parser_8cpp_source.html
+++ /dev/null
@@ -1,163 +0,0 @@
-
-
-
-
-
-
-
-Skribble: src/message_parser.cpp Source File
-
-
-
-
-
-
-
-
-
-
-
-
-Generated by
-
- 1.8.17
-
-
-
diff --git a/docs/modules.html b/docs/modules.html
new file mode 100644
index 0000000..4be6a1b
--- /dev/null
+++ b/docs/modules.html
@@ -0,0 +1,115 @@
+
+
+
+
+ Skribble - Collaborative app made with Qt
+
+
+
+
+
+
+
+
+
+
+
+
+
Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
namespace configAll configuration for the canvas is here.
+
namespace implImplementation details in this namespace.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+
+
Sorry, nothing was found.
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Namespace List
-
-
-
Here is a list of all documented namespaces with brief descriptions:
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+
+
Sorry, nothing was found.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/namespacesk.xml b/docs/namespacesk.xml
new file mode 100644
index 0000000..afff2f7
--- /dev/null
+++ b/docs/namespacesk.xml
@@ -0,0 +1,473 @@
+
+
+
+ sk
+ sk::AbstractNetwork
+ sk::BrushMode
+ sk::CachedResource
+ sk::Canvas
+ sk::Client
+ sk::DrawHistory
+ sk::DrawMode
+ sk::DummyNetwork
+ sk::FCachedResource
+ sk::FResTraits
+ sk::NetworkFactory
+ sk::PenMode
+ sk::ResourceTraits
+ sk::Server
+ sk::anonymous_namespace{abstract_network.cpp}
+ sk::anonymous_namespace{message_parser.cpp}
+ sk::config
+ sk::impl
+
+
+
+ Operation
+
+ UNDO
+
+
+
+
+
+
+ REDO
+
+
+
+
+
+
+ DRAW_AT
+
+
+
+
+
+
+ MOUSE_RELEASED
+
+
+
+
+
+
+ CHANGE_COLOR
+
+
+
+
+
+
+ CHANGE_WIDTH
+
+
+
+
+
+
+ TO_BRUSH
+
+
+
+
+
+
+ TO_PEN
+
+
+
+
+
+
+ NONE
+
+
+
+
+
+
+Possible kinds of messages to be sent over the network.
+
+
+
+
+
+
+
+
+
+ NetworkModes
+
+ SINGLE_USER
+
+
+
+
+
+
+ CLIENT
+
+
+
+
+
+
+ SERVER
+
+
+
+
+
+
+Connection type.
+
+
+
+
+
+
+
+
+
+
+ constexpr int
+ constexpr int sk::port
+
+ port
+ = 7654
+
+Communication port used by Skribble clients/servers.
+
+
+
+
+
+
+
+
+ QString
+ QString sk::host_ip
+
+ host_ip
+ {}
+
+Stores the ip to connect to.
+
+
+Used only by clients.
+
+
+
+
+
+
+
+
+ NetworkModes
+ NetworkModes sk::networkMode
+
+ networkMode
+ = NetworkModes::SINGLE_USER
+
+Stores the connection mode the user has requested.
+
+
+
+
+
+
+
+
+
+
+ auto
+ auto sk::makeDrawMode
+ (QPen &&pen) -> std::unique_ptr< PenMode >
+ makeDrawMode
+
+ QPen &&
+ pen
+
+
+
+
+
+
+
+
+
+
+ auto
+ auto sk::makeDrawMode
+ (QBrush &&brush) -> std::unique_ptr< BrushMode >
+ makeDrawMode
+
+ QBrush &&
+ brush
+
+
+
+
+
+
+
+
+
+
+ auto
+ auto sk::makeDrawMode
+ (PenMode &&pen) -> std::unique_ptr< PenMode >
+ makeDrawMode
+
+ PenMode &&
+ pen
+
+
+
+
+
+
+
+
+
+
+ auto
+ auto sk::makeDrawMode
+ (BrushMode &&brush) -> std::unique_ptr< BrushMode >
+ makeDrawMode
+
+ BrushMode &&
+ brush
+
+
+
+
+
+
+
+
+
+
+
+
+ std::size_t
+ N
+ N
+
+
+ typename...
+ Ts
+ Ts
+
+
+ auto
+ auto sk::format
+ (char const (&fmt)[N], Ts &&... args) -> std::string
+ format
+
+ char const (&)
+ fmt
+ [N]
+
+
+ Ts &&...
+ args
+
+
+Helper to format strings sanely.
+
+
+Inspired by python's print("{} {} {}", ...).
+You can use it like this: sk::format("%1%2%1","abra","cad");//returns"abracadabra"
+
+Being equivalent to: "{0}{1}{0}".format("abra","cad")
+
+This function is quite an abuse of templates and fold expressions :D
+
+
+
+
+
+
+
+
+ std::size_t
+ N
+ N
+
+
+ typename...
+ Ts
+ Ts
+
+
+ auto
+ auto sk::printTo
+ (std::ostream &os, char const (&fmt)[N], Ts &&... args) -> void
+ printTo
+
+ std::ostream &
+ os
+
+
+ char const (&)
+ fmt
+ [N]
+
+
+ Ts &&...
+ args
+
+
+
+
+
+
+
+
+
+
+
+
+ std::size_t
+ N
+ N
+
+
+ typename...
+ Ts
+ Ts
+
+
+ auto
+ auto sk::printlnTo
+ (std::ostream &os, char const (&fmt)[N], Ts &&... args) -> void
+ printlnTo
+
+ std::ostream &
+ os
+
+
+ char const (&)
+ fmt
+ [N]
+
+
+ Ts &&...
+ args
+
+
+
+
+
+
+
+
+
+
+
+
+ std::size_t
+ N
+ N
+
+
+ typename...
+ Ts
+ Ts
+
+
+ auto
+ auto sk::print
+ (char const (&fmt)[N], Ts &&... args) -> void
+ print
+
+ char const (&)
+ fmt
+ [N]
+
+
+ Ts &&...
+ args
+
+
+
+
+
+
+
+
+
+
+
+
+ std::size_t
+ N
+ N
+
+
+ typename...
+ Ts
+ Ts
+
+
+ auto
+ auto sk::println
+ (char const (&fmt)[N], Ts &&... args) -> void
+ println
+
+ char const (&)
+ fmt
+ [N]
+
+
+ Ts &&...
+ args
+
+
+
+
+
+
+
+
+
+
+ auto
+ auto sk::parse
+ (std::string const &msg) -> std::tuple< Operation, int, int, int, int >
+ parse
+
+ std::string const &
+ msg
+
+
+Helper to parse messages received over the network.
+
+
+The structure of a message is kind a b c d, where:
+kind cand be one of 'u' - undo, 'r' - redo, 'd' - draw_at, 'm' - mouse released, 'c' - change color, 'w' - change width, 'b' - to brush, 'p' - to pen
+a is an integer used by 'w', 'd', 'c'
+b is an integer used by 'd', 'c'
+c and d are only used by 'c'
+
+
+{ kind, a, b, c, d }
+
+
+
+
+
+
+
+
+
+
+
+All Skribble functionality is implemented in this namespace.
+
+
+
+
diff --git a/docs/namespacesk_1_1anonymous__namespace_02abstract__network_8cpp_03.html b/docs/namespacesk_1_1anonymous__namespace_02abstract__network_8cpp_03.html
deleted file mode 100644
index 80077c6..0000000
--- a/docs/namespacesk_1_1anonymous__namespace_02abstract__network_8cpp_03.html
+++ /dev/null
@@ -1,90 +0,0 @@
-
-
-
-
-
-
-
-Skribble: sk::anonymous_namespace{abstract_network.cpp} Namespace Reference
-
-
-
-
-
-
-
-
-
-
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+
+
Sorry, nothing was found.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/namespacesk_1_1config.xml b/docs/namespacesk_1_1config.xml
new file mode 100644
index 0000000..fb61afe
--- /dev/null
+++ b/docs/namespacesk_1_1config.xml
@@ -0,0 +1,44 @@
+
+
+
+ sk::config
+
+
+ constexpr int
+ constexpr int sk::config::width
+
+ width
+ = 400
+
+Width of the canvas.
+
+
+
+
+
+
+
+
+ constexpr int
+ constexpr int sk::config::height
+
+ height
+ = 600
+
+Height of the canvas.
+
+
+
+
+
+
+
+
+
+All configuration for the canvas is here.
+
+
+
+
+
+
diff --git a/docs/namespacesk_1_1impl.html b/docs/namespacesk_1_1impl.html
new file mode 100644
index 0000000..dfe3934
--- /dev/null
+++ b/docs/namespacesk_1_1impl.html
@@ -0,0 +1,120 @@
+
+
+
+
+ sk::impl namespace | Skribble - Collaborative app made with Qt
+
+
+
+
+
+
+
+
+
+
A helper class that wraps FCachedResource and represents modifications to a batch of layers.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
-
-
-Generated by
-
- 1.8.17
-
-
-
diff --git a/docs/open.png b/docs/open.png
deleted file mode 100644
index 30f75c7..0000000
Binary files a/docs/open.png and /dev/null differ
diff --git a/docs/pages.html b/docs/pages.html
new file mode 100644
index 0000000..7bbe492
--- /dev/null
+++ b/docs/pages.html
@@ -0,0 +1,115 @@
+
+
+
+
+ Skribble - Collaborative app made with Qt
+
+
+
+
+
+
+
+
+
+
+
+
+
Pages
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.