diff --git a/resources/forms/preferences.ui b/resources/forms/preferences.ui
index 86686f3c..8f77073c 100644
--- a/resources/forms/preferences.ui
+++ b/resources/forms/preferences.ui
@@ -315,13 +315,6 @@
-
-
-
-
-
- Minimize keyboard when not active
-
-
-
-
@@ -626,9 +619,9 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#1a1a1a;">The OpenSSL toolkit stays under a dual license, i.e. both the conditions of the OpenSSL License and the original SSLeay license apply to the toolkit.</span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#1a1a1a;">See below for the actual license texts. Actually both licenses are BSD-style Open Source licenses. In case of any license issues related to OpenSSL please contact </span><a href="mailto:openssl-core@openssl.org"><span style=" text-decoration: underline; color:#0000ff;">openssl-core@openssl.org</span></a><span style=" color:#1a1a1a;">.</span> </p></body></html>
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;">The OpenSSL toolkit stays under a dual license, i.e. both the conditions of the OpenSSL License and the original SSLeay license apply to the toolkit.</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;">See below for the actual license texts. Actually both licenses are BSD-style Open Source licenses. In case of any license issues related to OpenSSL please contact </span><a href="mailto:openssl-core@openssl.org"><span style=" font-family:'Ubuntu'; font-size:9pt; text-decoration: underline; color:#0000ff;">openssl-core@openssl.org</span></a><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;">.</span><span style=" font-family:'Ubuntu'; font-size:9pt;"> </span></p></body></html>
@@ -645,8 +638,8 @@ p, li { white-space: pre-wrap; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;">
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#1a1a1a;">Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler</span><span style=" font-size:12pt;"><br /><br /></span><span style=" color:#1a1a1a;"> This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.</span><br /><br /><span style=" color:#1a1a1a;"> Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:</span><br /><br /><span style=" color:#1a1a1a;"> 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.</span><br /><span style=" color:#1a1a1a;"> 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.</span><br /><span style=" color:#1a1a1a;"> 3. This notice may not be removed or altered from any source distribution.</span> </p></body></html>
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;">Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler</span><span style=" font-family:'Ubuntu'; font-size:12pt;"><br /><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;"> This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;"> Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;"> 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;"> 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;"> 3. This notice may not be removed or altered from any source distribution.</span><span style=" font-family:'Ubuntu'; font-size:9pt;"> </span></p></body></html>
@@ -663,8 +656,8 @@ p, li { white-space: pre-wrap; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;">
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#000000;">Xpdf is licensed under the GNU General Public License (GPL), version 2.</span></p></body></html>
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#000000;">Xpdf is licensed under the GNU General Public License (GPL), version 2.</span></p></body></html>
@@ -681,8 +674,8 @@ p, li { white-space: pre-wrap; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;">
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">GNU Library or Lesser General Public License (LGPL), zlib/libpng License</p></body></html>
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">GNU Library or Lesser General Public License (LGPL), zlib/libpng License</span></p></body></html>
@@ -699,178 +692,178 @@ p, li { white-space: pre-wrap; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;">
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">SANKORE3.1 is free software: you can redistribute it and/or modify it under the terms of the Lesser GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. You can find the source code of this software at <https://adullact.net/projects/sankore/></p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">SANKORE3.1 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 Lesser GNU General Public License below for more details.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> GNU LESSER GENERAL PUBLIC LICENSE</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Version 3, 29 June 2007</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Everyone is permitted to copy and distribute verbatim copies</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> of this license document, but changing it is not allowed.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> This version of the GNU Lesser General Public License incorporates</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the terms and conditions of version 3 of the GNU General Public</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">License, supplemented by the additional permissions listed below.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 0. Additional Definitions.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> As used herein, "this License" refers to version 3 of the GNU Lesser</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">General Public License, and the "GNU GPL" refers to version 3 of the GNU</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">General Public License.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> "The Library" refers to a covered work governed by this License,</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">other than an Application or a Combined Work as defined below.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> An "Application" is any work that makes use of an interface provided</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">by the Library, but which is not otherwise based on the Library.</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Defining a subclass of a class defined by the Library is deemed a mode</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of using an interface provided by the Library.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> A "Combined Work" is a work produced by combining or linking an</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Application with the Library. The particular version of the Library</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">with which the Combined Work was made is also called the "Linked</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Version".</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> The "Minimal Corresponding Source" for a Combined Work means the</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Corresponding Source for the Combined Work, excluding any source code</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">for portions of the Combined Work that, considered in isolation, are</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">based on the Application, and not on the Linked Version.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> The "Corresponding Application Code" for a Combined Work means the</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">object code and/or source code for the Application, including any data</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">and utility programs needed for reproducing the Combined Work from the</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Application, but excluding the System Libraries of the Combined Work.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 1. Exception to Section 3 of the GNU GPL.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> You may convey a covered work under sections 3 and 4 of this License</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">without being bound by section 3 of the GNU GPL.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 2. Conveying Modified Versions.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> If you modify a copy of the Library, and, in your modifications, a</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">facility refers to a function or data to be supplied by an Application</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">that uses the facility (other than as an argument passed when the</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">facility is invoked), then you may convey a copy of the modified</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">version:</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a) under this License, provided that you make a good faith effort to</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> ensure that, in the event an Application does not supply the</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> function or data, the facility still operates, and performs</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> whatever part of its purpose remains meaningful, or</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> b) under the GNU GPL, with none of the additional permissions of</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> this License applicable to that copy.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 3. Object Code Incorporating Material from Library Header Files.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> The object code form of an Application may incorporate material from</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">a header file that is part of the Library. You may convey such object</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">code under terms of your choice, provided that, if the incorporated</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">material is not limited to numerical parameters, data structure</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">layouts and accessors, or small macros, inline functions and templates</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(ten or fewer lines in length), you do both of the following:</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a) Give prominent notice with each copy of the object code that the</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Library is used in it and that the Library and its use are</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> covered by this License.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> b) Accompany the object code with a copy of the GNU GPL and this license</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> document.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 4. Combined Works.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> You may convey a Combined Work under terms of your choice that,</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">taken together, effectively do not restrict modification of the</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">portions of the Library contained in the Combined Work and reverse</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">engineering for debugging such modifications, if you also do each of</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the following:</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a) Give prominent notice with each copy of the Combined Work that</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> the Library is used in it and that the Library and its use are</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> covered by this License.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> b) Accompany the Combined Work with a copy of the GNU GPL and this license</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> document.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> c) For a Combined Work that displays copyright notices during</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> execution, include the copyright notice for the Library among</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> these notices, as well as a reference directing the user to the</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> copies of the GNU GPL and this license document.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> d) Do one of the following:</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 0) Convey the Minimal Corresponding Source under the terms of this</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> License, and the Corresponding Application Code in a form</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> suitable for, and under terms that permit, the user to</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> recombine or relink the Application with a modified version of</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> the Linked Version to produce a modified Combined Work, in the</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> manner specified by section 6 of the GNU GPL for conveying</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Corresponding Source.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 1) Use a suitable shared library mechanism for linking with the</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Library. A suitable mechanism is one that (a) uses at run time</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a copy of the Library already present on the user's computer</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> system, and (b) will operate properly with a modified version</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> of the Library that is interface-compatible with the Linked</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Version.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> e) Provide Installation Information, but only if you would otherwise</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> be required to provide such information under section 6 of the</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> GNU GPL, and only to the extent that such information is</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> necessary to install and execute a modified version of the</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Combined Work produced by recombining or relinking the</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Application with a modified version of the Linked Version. (If</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> you use option 4d0, the Installation Information must accompany</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> the Minimal Corresponding Source and Corresponding Application</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Code. If you use option 4d1, you must provide the Installation</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Information in the manner specified by section 6 of the GNU GPL</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> for conveying Corresponding Source.)</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 5. Combined Libraries.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> You may place library facilities that are a work based on the</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Library side by side in a single library together with other library</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">facilities that are not Applications and are not covered by this</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">License, and convey such a combined library under terms of your</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">choice, if you do both of the following:</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a) Accompany the combined library with a copy of the same work based</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> on the Library, uncombined with any other library facilities,</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> conveyed under the terms of this License.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> b) Give prominent notice with the combined library that part of it</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> is a work based on the Library, and explaining where to find the</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> accompanying uncombined form of the same work.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 6. Revised Versions of the GNU Lesser General Public License.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> The Free Software Foundation may publish revised and/or new versions</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of the GNU Lesser General Public License from time to time. Such new</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">versions will be similar in spirit to the present version, but may</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">differ in detail to address new problems or concerns.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Each version is given a distinguishing version number. If the</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Library as you received it specifies that a certain numbered version</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of the GNU Lesser General Public License "or any later version"</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">applies to it, you have the option of following the terms and</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">conditions either of that published version or of any later version</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">published by the Free Software Foundation. If the Library as you</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">received it does not specify a version number of the GNU Lesser</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">General Public License, you may choose any version of the GNU Lesser</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">General Public License ever published by the Free Software Foundation.</p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> If the Library as you received it specifies that a proxy can decide</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">whether future versions of the GNU Lesser General Public License shall</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">apply, that proxy's public statement of acceptance of any version is</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">permanent authorization for you to choose that version for the</p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Library.</p></body></html>
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">SANKORE3.1 is free software: you can redistribute it and/or modify it under the terms of the Lesser GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. You can find the source code of this software at <https://adullact.net/projects/sankore/></span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">SANKORE3.1 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 Lesser GNU General Public License below for more details.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> GNU LESSER GENERAL PUBLIC LICENSE</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Version 3, 29 June 2007</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/></span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Everyone is permitted to copy and distribute verbatim copies</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> of this license document, but changing it is not allowed.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> This version of the GNU Lesser General Public License incorporates</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">the terms and conditions of version 3 of the GNU General Public</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">License, supplemented by the additional permissions listed below.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 0. Additional Definitions.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> As used herein, "this License" refers to version 3 of the GNU Lesser</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">General Public License, and the "GNU GPL" refers to version 3 of the GNU</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">General Public License.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> "The Library" refers to a covered work governed by this License,</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">other than an Application or a Combined Work as defined below.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> An "Application" is any work that makes use of an interface provided</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">by the Library, but which is not otherwise based on the Library.</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">Defining a subclass of a class defined by the Library is deemed a mode</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">of using an interface provided by the Library.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> A "Combined Work" is a work produced by combining or linking an</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">Application with the Library. The particular version of the Library</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">with which the Combined Work was made is also called the "Linked</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">Version".</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> The "Minimal Corresponding Source" for a Combined Work means the</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">Corresponding Source for the Combined Work, excluding any source code</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">for portions of the Combined Work that, considered in isolation, are</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">based on the Application, and not on the Linked Version.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> The "Corresponding Application Code" for a Combined Work means the</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">object code and/or source code for the Application, including any data</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">and utility programs needed for reproducing the Combined Work from the</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">Application, but excluding the System Libraries of the Combined Work.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 1. Exception to Section 3 of the GNU GPL.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> You may convey a covered work under sections 3 and 4 of this License</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">without being bound by section 3 of the GNU GPL.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 2. Conveying Modified Versions.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> If you modify a copy of the Library, and, in your modifications, a</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">facility refers to a function or data to be supplied by an Application</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">that uses the facility (other than as an argument passed when the</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">facility is invoked), then you may convey a copy of the modified</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">version:</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> a) under this License, provided that you make a good faith effort to</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> ensure that, in the event an Application does not supply the</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> function or data, the facility still operates, and performs</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> whatever part of its purpose remains meaningful, or</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> b) under the GNU GPL, with none of the additional permissions of</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> this License applicable to that copy.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 3. Object Code Incorporating Material from Library Header Files.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> The object code form of an Application may incorporate material from</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">a header file that is part of the Library. You may convey such object</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">code under terms of your choice, provided that, if the incorporated</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">material is not limited to numerical parameters, data structure</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">layouts and accessors, or small macros, inline functions and templates</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">(ten or fewer lines in length), you do both of the following:</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> a) Give prominent notice with each copy of the object code that the</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Library is used in it and that the Library and its use are</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> covered by this License.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> b) Accompany the object code with a copy of the GNU GPL and this license</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> document.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 4. Combined Works.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> You may convey a Combined Work under terms of your choice that,</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">taken together, effectively do not restrict modification of the</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">portions of the Library contained in the Combined Work and reverse</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">engineering for debugging such modifications, if you also do each of</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">the following:</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> a) Give prominent notice with each copy of the Combined Work that</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> the Library is used in it and that the Library and its use are</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> covered by this License.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> b) Accompany the Combined Work with a copy of the GNU GPL and this license</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> document.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> c) For a Combined Work that displays copyright notices during</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> execution, include the copyright notice for the Library among</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> these notices, as well as a reference directing the user to the</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> copies of the GNU GPL and this license document.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> d) Do one of the following:</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 0) Convey the Minimal Corresponding Source under the terms of this</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> License, and the Corresponding Application Code in a form</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> suitable for, and under terms that permit, the user to</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> recombine or relink the Application with a modified version of</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> the Linked Version to produce a modified Combined Work, in the</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> manner specified by section 6 of the GNU GPL for conveying</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Corresponding Source.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 1) Use a suitable shared library mechanism for linking with the</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Library. A suitable mechanism is one that (a) uses at run time</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> a copy of the Library already present on the user's computer</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> system, and (b) will operate properly with a modified version</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> of the Library that is interface-compatible with the Linked</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Version.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> e) Provide Installation Information, but only if you would otherwise</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> be required to provide such information under section 6 of the</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> GNU GPL, and only to the extent that such information is</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> necessary to install and execute a modified version of the</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Combined Work produced by recombining or relinking the</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Application with a modified version of the Linked Version. (If</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> you use option 4d0, the Installation Information must accompany</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> the Minimal Corresponding Source and Corresponding Application</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Code. If you use option 4d1, you must provide the Installation</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Information in the manner specified by section 6 of the GNU GPL</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> for conveying Corresponding Source.)</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 5. Combined Libraries.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> You may place library facilities that are a work based on the</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">Library side by side in a single library together with other library</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">facilities that are not Applications and are not covered by this</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">License, and convey such a combined library under terms of your</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">choice, if you do both of the following:</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> a) Accompany the combined library with a copy of the same work based</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> on the Library, uncombined with any other library facilities,</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> conveyed under the terms of this License.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> b) Give prominent notice with the combined library that part of it</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> is a work based on the Library, and explaining where to find the</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> accompanying uncombined form of the same work.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 6. Revised Versions of the GNU Lesser General Public License.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> The Free Software Foundation may publish revised and/or new versions</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">of the GNU Lesser General Public License from time to time. Such new</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">versions will be similar in spirit to the present version, but may</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">differ in detail to address new problems or concerns.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Each version is given a distinguishing version number. If the</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">Library as you received it specifies that a certain numbered version</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">of the GNU Lesser General Public License "or any later version"</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">applies to it, you have the option of following the terms and</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">conditions either of that published version or of any later version</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">published by the Free Software Foundation. If the Library as you</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">received it does not specify a version number of the GNU Lesser</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">General Public License, you may choose any version of the GNU Lesser</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">General Public License ever published by the Free Software Foundation.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> If the Library as you received it specifies that a proxy can decide</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">whether future versions of the GNU Lesser General Public License shall</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">apply, that proxy's public statement of acceptance of any version is</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">permanent authorization for you to choose that version for the</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">Library.</span></p></body></html>
@@ -894,13 +887,13 @@ p, li { white-space: pre-wrap; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;">
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#1a1a1a;">Sankoré 3.1 version , Copyright (C) 2010 Sankoré 3.1 comes with ABSOLUTELY NO WARRANTY.</span><br /><span style=" color:#35382a;"> </span></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#35382a;">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 3 of the License, or (at your option) any later version.</span></p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#35382a;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#35382a;">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.</span></p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#35382a;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#35382a;">You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.</span></p></body></html>
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;">Sankoré 3.1 version , Copyright (C) 2010 Sankoré 3.1 comes with ABSOLUTELY NO WARRANTY.</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#35382a;"> </span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#35382a;">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 3 of the License, or (at your option) any later version.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt; color:#35382a;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#35382a;">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.</span></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt; color:#35382a;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#35382a;">You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.</span></p></body></html>
@@ -910,9 +903,9 @@ p, li { white-space: pre-wrap; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;">
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;"></p>
-<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#3c3c3c;">GIPENA</span><br /><span style=" color:#3c3c3c;">Délégation Interministérielle à l'Education Numérique en Afrique</span><br /><span style=" color:#3c3c3c;">20 Avenue Ségur Paris 75007</span><br /><br /><span style=" color:#3c3c3c;">Téléphone : 01 43 17 68 08</span><br /><br /><span style=" color:#3c3c3c;">email: </span><a href="mailto:contact@sankore.org"><span style=" text-decoration: underline; color:#0000ff;">contact@sankore.org</span></a> </p></body></html>
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:10pt;"></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#3c3c3c;">GIPENA</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#3c3c3c;">Délégation Interministérielle à l'Education Numérique en Afrique</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#3c3c3c;">20 Avenue Ségur Paris 75007</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#3c3c3c;">Téléphone : 01 43 17 68 08</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#3c3c3c;">email: </span><a href="mailto:contact@sankore.org"><span style=" font-family:'Ubuntu'; font-size:9pt; text-decoration: underline; color:#0000ff;">contact@sankore.org</span></a><span style=" font-family:'Ubuntu'; font-size:9pt;"> </span></p></body></html>
diff --git a/resources/images/virtual.keyboard/29/backspace.png b/resources/images/virtual.keyboard/29/backspace.png
new file mode 100644
index 00000000..f35a86e0
Binary files /dev/null and b/resources/images/virtual.keyboard/29/backspace.png differ
diff --git a/resources/images/virtual.keyboard/29/capslock.png b/resources/images/virtual.keyboard/29/capslock.png
new file mode 100644
index 00000000..8390e560
Binary files /dev/null and b/resources/images/virtual.keyboard/29/capslock.png differ
diff --git a/resources/images/virtual.keyboard/29/centre-active.png b/resources/images/virtual.keyboard/29/centre-active.png
new file mode 100644
index 00000000..45fcfae7
Binary files /dev/null and b/resources/images/virtual.keyboard/29/centre-active.png differ
diff --git a/resources/images/virtual.keyboard/29/centre-passive.png b/resources/images/virtual.keyboard/29/centre-passive.png
new file mode 100644
index 00000000..1dbe5dea
Binary files /dev/null and b/resources/images/virtual.keyboard/29/centre-passive.png differ
diff --git a/resources/images/virtual.keyboard/29/left-active.png b/resources/images/virtual.keyboard/29/left-active.png
new file mode 100644
index 00000000..268aeee7
Binary files /dev/null and b/resources/images/virtual.keyboard/29/left-active.png differ
diff --git a/resources/images/virtual.keyboard/29/left-passive.png b/resources/images/virtual.keyboard/29/left-passive.png
new file mode 100644
index 00000000..1338d923
Binary files /dev/null and b/resources/images/virtual.keyboard/29/left-passive.png differ
diff --git a/resources/images/virtual.keyboard/29/right-active.png b/resources/images/virtual.keyboard/29/right-active.png
new file mode 100644
index 00000000..a3fae30d
Binary files /dev/null and b/resources/images/virtual.keyboard/29/right-active.png differ
diff --git a/resources/images/virtual.keyboard/29/right-passive.png b/resources/images/virtual.keyboard/29/right-passive.png
new file mode 100644
index 00000000..cedaeb49
Binary files /dev/null and b/resources/images/virtual.keyboard/29/right-passive.png differ
diff --git a/resources/images/virtual.keyboard/29/tab.png b/resources/images/virtual.keyboard/29/tab.png
new file mode 100644
index 00000000..424d84c8
Binary files /dev/null and b/resources/images/virtual.keyboard/29/tab.png differ
diff --git a/resources/images/virtual.keyboard/41/backspace.png b/resources/images/virtual.keyboard/41/backspace.png
new file mode 100644
index 00000000..bec4c333
Binary files /dev/null and b/resources/images/virtual.keyboard/41/backspace.png differ
diff --git a/resources/images/virtual.keyboard/41/capslock.png b/resources/images/virtual.keyboard/41/capslock.png
new file mode 100644
index 00000000..10b279d5
Binary files /dev/null and b/resources/images/virtual.keyboard/41/capslock.png differ
diff --git a/resources/images/virtual.keyboard/41/centre-active.png b/resources/images/virtual.keyboard/41/centre-active.png
new file mode 100644
index 00000000..87362545
Binary files /dev/null and b/resources/images/virtual.keyboard/41/centre-active.png differ
diff --git a/resources/images/virtual.keyboard/41/centre-passive.png b/resources/images/virtual.keyboard/41/centre-passive.png
new file mode 100644
index 00000000..7e735716
Binary files /dev/null and b/resources/images/virtual.keyboard/41/centre-passive.png differ
diff --git a/resources/images/virtual.keyboard/41/left-active.png b/resources/images/virtual.keyboard/41/left-active.png
new file mode 100644
index 00000000..4cd57dd3
Binary files /dev/null and b/resources/images/virtual.keyboard/41/left-active.png differ
diff --git a/resources/images/virtual.keyboard/41/left-passive.png b/resources/images/virtual.keyboard/41/left-passive.png
new file mode 100644
index 00000000..476090a2
Binary files /dev/null and b/resources/images/virtual.keyboard/41/left-passive.png differ
diff --git a/resources/images/virtual.keyboard/41/right-active.png b/resources/images/virtual.keyboard/41/right-active.png
new file mode 100644
index 00000000..46c7ff91
Binary files /dev/null and b/resources/images/virtual.keyboard/41/right-active.png differ
diff --git a/resources/images/virtual.keyboard/41/right-passive.png b/resources/images/virtual.keyboard/41/right-passive.png
new file mode 100644
index 00000000..fb7c9ca6
Binary files /dev/null and b/resources/images/virtual.keyboard/41/right-passive.png differ
diff --git a/resources/images/virtual.keyboard/41/tab.png b/resources/images/virtual.keyboard/41/tab.png
new file mode 100644
index 00000000..9a752fa2
Binary files /dev/null and b/resources/images/virtual.keyboard/41/tab.png differ
diff --git a/resources/sankore.qrc b/resources/sankore.qrc
index 89fbdaf7..6c721712 100644
--- a/resources/sankore.qrc
+++ b/resources/sankore.qrc
@@ -289,5 +289,27 @@
images/toolbar/hide.png
images/toolbar/record.png
images/libpalette/MoviesCategory.svg
+
+
+ images/virtual.keyboard/41/centre-passive.png
+ images/virtual.keyboard/41/left-passive.png
+ images/virtual.keyboard/41/right-passive.png
+ images/virtual.keyboard/41/centre-active.png
+ images/virtual.keyboard/41/left-active.png
+ images/virtual.keyboard/41/right-active.png
+ images/virtual.keyboard/41/backspace.png
+ images/virtual.keyboard/41/capslock.png
+ images/virtual.keyboard/41/tab.png
+
+ images/virtual.keyboard/29/centre-passive.png
+ images/virtual.keyboard/29/left-passive.png
+ images/virtual.keyboard/29/right-passive.png
+ images/virtual.keyboard/29/centre-active.png
+ images/virtual.keyboard/29/left-active.png
+ images/virtual.keyboard/29/right-active.png
+ images/virtual.keyboard/29/backspace.png
+ images/virtual.keyboard/29/capslock.png
+ images/virtual.keyboard/29/tab.png
+
diff --git a/src/board/UBBoardPaletteManager.cpp b/src/board/UBBoardPaletteManager.cpp
index 5e201cda..9ce06f63 100644
--- a/src/board/UBBoardPaletteManager.cpp
+++ b/src/board/UBBoardPaletteManager.cpp
@@ -1,16 +1,8 @@
/*
- * 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 3 of the License, or
- * (at your option) any later version.
+ * UBBoardPaletteManager.cpp
*
- * 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, see .
+ * Created on: 3 nov. 2009
+ * Author: Luc
*/
#include "UBBoardPaletteManager.h"
@@ -132,7 +124,10 @@ void UBBoardPaletteManager::setupPalettes()
mStylusPalette->show(); // always show stylus palette at startup
if (UBPlatformUtils::hasVirtualKeyboard())
+ {
mKeyboardPalette = UBKeyboardPalette::create(0);
+ mKeyboardPalette->setParent(mContainer);
+ }
mZoomPalette = new UBZoomPalette(mContainer);
@@ -647,8 +642,8 @@ void UBBoardPaletteManager::panButtonReleased()
void UBBoardPaletteManager::showVirtualKeyboard(bool show)
{
- if (mKeyboardPalette)
- mKeyboardPalette->setVisible(show);
+ if (mKeyboardPalette)
+ mKeyboardPalette->setVisible(show);
}
void UBBoardPaletteManager::changeStylusPaletteOrientation(QVariant var)
diff --git a/src/core/UBPreferencesController.cpp b/src/core/UBPreferencesController.cpp
index e84c6031..8fb442cc 100644
--- a/src/core/UBPreferencesController.cpp
+++ b/src/core/UBPreferencesController.cpp
@@ -106,10 +106,8 @@ void UBPreferencesController::wire()
// OSK preferences
- mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("16x16");
- mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("24x24");
- mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("32x32");
- connect(mPreferencesUI->keyboardPaletteAutoMinimize, SIGNAL(clicked(bool)), settings->boardKeyboardPaletteAutoMinimize, SLOT(setBool(bool)));
+ mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("29x29");
+ mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("41x41");
connect(mPreferencesUI->keyboardPaletteKeyButtonSize, SIGNAL(currentIndexChanged(const QString &)), settings->boardKeyboardPaletteKeyBtnSize, SLOT(setString(const QString &)));
@@ -169,7 +167,6 @@ void UBPreferencesController::init()
mPreferencesUI->checkSoftwareUpdateAtLaunchCheckBox->setChecked(settings->appEnableAutomaticSoftwareUpdates->get().toBool());
// display tab
- mPreferencesUI->keyboardPaletteAutoMinimize->setChecked(settings->boardKeyboardPaletteAutoMinimize->get().toBool());
for(int i=0; ikeyboardPaletteKeyButtonSize->count(); i++)
if (mPreferencesUI->keyboardPaletteKeyButtonSize->itemText(i) ==
settings->boardKeyboardPaletteKeyBtnSize->get().toString())
diff --git a/src/core/UBSettings.cpp b/src/core/UBSettings.cpp
index 754aeb20..5a7638d6 100644
--- a/src/core/UBSettings.cpp
+++ b/src/core/UBSettings.cpp
@@ -1,16 +1,9 @@
+
/*
- * 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 3 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.
+ * UBSettings.cpp
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
+ * Created on: Oct 29, 2008
+ * Author: luc
*/
#include "UBSettings.h"
@@ -198,7 +191,7 @@ void UBSettings::init()
boardUseHighResTabletEvent = new UBSetting(this, "Board", "UseHighResTabletEvent", true);
- boardKeyboardPaletteAutoMinimize = new UBSetting(this, "Board", "KeyboardPaletteAutoMinimize", true);
+// boardKeyboardPaletteAutoMinimize = new UBSetting(this, "Board", "KeyboardPaletteAutoMinimize", true);
boardKeyboardPaletteKeyBtnSize = new UBSetting(this, "Board", "KeyboardPaletteKeyBtnSize", "24x24");
QStringList penLightBackgroundColors;
diff --git a/src/core/UBSettings.h b/src/core/UBSettings.h
index 405a616e..4c48705b 100644
--- a/src/core/UBSettings.h
+++ b/src/core/UBSettings.h
@@ -1,16 +1,8 @@
/*
- * 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 3 of the License, or
- * (at your option) any later version.
+ * UBSettings.h
*
- * 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, see .
+ * Created on: Oct 29, 2008
+ * Author: luc
*/
#ifndef UBSETTINGS_H_
@@ -236,7 +228,7 @@ class UBSettings : public QObject
UBSetting* boardUseHighResTabletEvent;
- UBSetting* boardKeyboardPaletteAutoMinimize;
+// UBSetting* boardKeyboardPaletteAutoMinimize;
UBSetting* boardKeyboardPaletteKeyBtnSize;
UBColorListSetting* boardPenLightBackgroundColors;
diff --git a/src/desktop/UBDesktopAnnotationController.cpp b/src/desktop/UBDesktopAnnotationController.cpp
index 0cdfcd51..6010591d 100644
--- a/src/desktop/UBDesktopAnnotationController.cpp
+++ b/src/desktop/UBDesktopAnnotationController.cpp
@@ -1,16 +1,8 @@
/*
- * 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 3 of the License, or
- * (at your option) any later version.
+ * UNWindowController.cpp
*
- * 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, see .
+ * Created on: Jan 15, 2009
+ * Author: julienbachmann
*/
#include
@@ -65,6 +57,7 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
, mbArrowClicked(false)
, mBoardStylusTool(UBStylusTool::Pen)
, mDesktopStylusTool(UBStylusTool::Selector)
+ , mKeyboardPalette(0)
{
mTransparentDrawingView = new UBBoardView(UBApplication::boardController, 0); // deleted in UBDesktopAnnotationController::destructor
@@ -92,12 +85,21 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
mDesktopPalette = new UBDesktopPalette(mTransparentDrawingView);
+ if (UBPlatformUtils::hasVirtualKeyboard())
+ {
+ mKeyboardPalette = UBKeyboardPalette::create(mTransparentDrawingView);
+ //mKeyboardPalette->setParent(mTransparentDrawingView);
+ }
+
connect(mDesktopPalette, SIGNAL(uniboardClick()), this, SLOT(goToUniboard()));
connect(mDesktopPalette, SIGNAL(customClick()), this, SLOT(customCapture()));
connect(mDesktopPalette, SIGNAL(windowClick()), this, SLOT(windowCapture()));
connect(mDesktopPalette, SIGNAL(screenClick()), this, SLOT(screenCapture()));
connect(mDesktopPalette, SIGNAL(maximized()), this, SLOT(onDesktopPaletteMaximized()));
connect(mDesktopPalette, SIGNAL(minimizeStart(eMinimizedLocation)), this, SLOT(onDesktopPaletteMinimize()));
+ connect(UBApplication::mainWindow->actionVirtualKeyboard, SIGNAL(triggered(bool)), this, SLOT(showKeyboard(bool)));
+
+// connect(mDesktopPalette, SIGNAL(showVirtualKeyboard(bool)), this, SLOT());
connect(mTransparentDrawingView, SIGNAL(resized(QResizeEvent*)), this, SLOT(onTransparentWidgetResized()));
@@ -143,6 +145,13 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
onDesktopPaletteMaximized();
}
+void UBDesktopAnnotationController::showKeyboard(bool show)
+{
+ mKeyboardPalette->setVisible(show);
+
+// mDesktopPalette->showVirtualKeyboard(show);
+}
+
UBDesktopAnnotationController::~UBDesktopAnnotationController()
{
delete mTransparentDrawingScene;
diff --git a/src/desktop/UBDesktopAnnotationController.h b/src/desktop/UBDesktopAnnotationController.h
index 4a944761..d595c04a 100644
--- a/src/desktop/UBDesktopAnnotationController.h
+++ b/src/desktop/UBDesktopAnnotationController.h
@@ -1,16 +1,8 @@
/*
- * 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 3 of the License, or
- * (at your option) any later version.
+ * UNWindowController.h
*
- * 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, see .
+ * Created on: Jan 15, 2009
+ * Author: julienbachmann
*/
#ifndef UBUNINOTESWINDOWCONTROLLER_H_
@@ -70,6 +62,8 @@ class UBDesktopAnnotationController : public QObject
void stylusToolChanged(int tool);
void updateBackground();
+ void showKeyboard(bool show);
+
signals:
/**
* This signal is emitted once the screenshot has been performed. This signal is also emitted when user
@@ -106,6 +100,7 @@ class UBDesktopAnnotationController : public QObject
void togglePropertyPalette(UBActionPalette* palette);
UBDesktopPalette *mDesktopPalette;
+ UBKeyboardPalette *mKeyboardPalette;
UBDesktopToolsPalette *mDesktopToolsPalette;
UBDesktopPenPalette* mDesktopPenPalette;
UBDesktopMarkerPalette* mDesktopMarkerPalette;
diff --git a/src/desktop/UBDesktopPalette.cpp b/src/desktop/UBDesktopPalette.cpp
index 2b1775a6..6ec00c8a 100644
--- a/src/desktop/UBDesktopPalette.cpp
+++ b/src/desktop/UBDesktopPalette.cpp
@@ -1,16 +1,8 @@
/*
- * 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 3 of the License, or
- * (at your option) any later version.
+ * UBDesktopPalette.cpp
*
- * 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, see .
+ * Created on: Jan 9, 2009
+ * Author: julienbachmann
*/
#include "UBDesktopPalette.h"
@@ -49,12 +41,8 @@ UBDesktopPalette::UBDesktopPalette(QWidget *parent)
#endif
actions << UBApplication::mainWindow->actionPointer;
-
if (UBPlatformUtils::hasVirtualKeyboard())
- {
actions << UBApplication::mainWindow->actionVirtualKeyboard;
- connect(UBApplication::mainWindow->actionVirtualKeyboard, SIGNAL(toggled(bool)), this, SIGNAL(showVirtualKeyboard(bool)));
- }
mActionCustomSelect = new QAction(QIcon(":/images/toolbar/captureArea.png"), tr("Capture Part of the Screen"), this);
connect(mActionCustomSelect, SIGNAL(triggered()), this, SIGNAL(customClick()));
diff --git a/src/desktop/UBDesktopPalette.h b/src/desktop/UBDesktopPalette.h
index 7a63fc67..83c01eab 100644
--- a/src/desktop/UBDesktopPalette.h
+++ b/src/desktop/UBDesktopPalette.h
@@ -1,16 +1,8 @@
/*
- * 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 3 of the License, or
- * (at your option) any later version.
+ * UNWindow.h
*
- * 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, see .
+ * Created on: Jan 9, 2009
+ * Author: julienbachmann
*/
#ifndef UBUNINOTESWINDOW_H_
@@ -41,7 +33,7 @@ class UBDesktopPalette : public UBActionPalette
void customClick();
void windowClick();
void screenClick();
- void showVirtualKeyboard(bool);
+// void showVirtualKeyboard(bool);
public slots:
diff --git a/src/gui/UBActionPalette.cpp b/src/gui/UBActionPalette.cpp
index b799f4ba..5b6519d6 100644
--- a/src/gui/UBActionPalette.cpp
+++ b/src/gui/UBActionPalette.cpp
@@ -1,16 +1,8 @@
/*
- * 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 3 of the License, or
- * (at your option) any later version.
+ * UBActionPalette.cpp
*
- * 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, see .
+ * Created on: 8 oct. 2009
+ * Author: Luc
*/
#include "UBActionPalette.h"
@@ -48,6 +40,8 @@ UBActionPalette::UBActionPalette(Qt::Corner corner, QWidget * parent, Qt::Orient
void UBActionPalette::init(Qt::Orientation orientation)
{
+ m_customCloseProcessing = false;
+
mButtonSize = QSize(32, 32);
mIsClosable = false;
mAutoClose = false;
@@ -174,7 +168,7 @@ void UBActionPalette::updateLayout()
, sLayoutContentMargin + border(), sLayoutContentMargin + border());
}
- update();
+ update();
}
@@ -209,7 +203,9 @@ void UBActionPalette::paintEvent(QPaintEvent *event)
void UBActionPalette::close()
{
- hide();
+ if(!m_customCloseProcessing)
+ hide();
+
emit closed();
}
@@ -240,17 +236,18 @@ void UBActionPalette::clearLayout()
QLayout* pLayout = layout();
if(NULL != pLayout)
{
- while(!pLayout->isEmpty())
- {
- QLayoutItem* pItem = pLayout->itemAt(0);
- QWidget* pW = pItem->widget();
- pLayout->removeItem(pItem);
- delete pItem;
- pLayout->removeWidget(pW);
- delete pW;
- }
- mActions.clear();
- mButtons.clear();
+ while(!pLayout->isEmpty())
+ {
+ QLayoutItem* pItem = pLayout->itemAt(0);
+ QWidget* pW = pItem->widget();
+ pLayout->removeItem(pItem);
+ delete pItem;
+ pLayout->removeWidget(pW);
+ delete pW;
+ }
+
+ mActions.clear();
+ mButtons.clear();
}
}
diff --git a/src/gui/UBActionPalette.h b/src/gui/UBActionPalette.h
index ccfe379d..dc64a408 100644
--- a/src/gui/UBActionPalette.h
+++ b/src/gui/UBActionPalette.h
@@ -1,16 +1,8 @@
/*
- * 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 3 of the License, or
- * (at your option) any later version.
+ * UBActionPalette.h
*
- * 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, see .
+ * Created on: 8 oct. 2009
+ * Author: Luc
*/
#ifndef UBACTIONPALETTE_H_
@@ -48,6 +40,13 @@ class UBActionPalette : public UBFloatingPalette
{
mAutoClose = autoClose;
}
+
+ void setCustomCloseProcessing(bool customCloseProcessing)
+ {
+ m_customCloseProcessing = customCloseProcessing;
+ }
+ bool m_customCloseProcessing;
+
virtual int border();
void clearLayout();
QSize buttonSize();
diff --git a/src/gui/UBFloatingPalette.cpp b/src/gui/UBFloatingPalette.cpp
index 59d7e380..83a85261 100644
--- a/src/gui/UBFloatingPalette.cpp
+++ b/src/gui/UBFloatingPalette.cpp
@@ -1,17 +1,3 @@
-/*
- * 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 3 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, see .
- */
#include
#include
@@ -56,6 +42,12 @@ UBFloatingPalette::UBFloatingPalette(Qt::Corner position, QWidget *parent)
mbGrip = true;
}
+void UBFloatingPalette::setGrip(bool newGrip)
+{
+ mbGrip = newGrip;
+ update();
+}
+
void UBFloatingPalette::setBackgroundBrush(const QBrush& brush)
{
@@ -157,7 +149,7 @@ void UBFloatingPalette::moveInsideParent(const QPoint &position)
}
}
move(newX, newY);
- minimizePalette(QPoint(newX, newY));
+ minimizePalette(QPoint(newX, newY));
}
else
{
diff --git a/src/gui/UBFloatingPalette.h b/src/gui/UBFloatingPalette.h
index 6568b242..a7e63125 100644
--- a/src/gui/UBFloatingPalette.h
+++ b/src/gui/UBFloatingPalette.h
@@ -1,17 +1,3 @@
-/*
- * 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 3 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, see .
- */
#ifndef UBFLOATINGPALLETTE_H_
@@ -55,6 +41,8 @@ class UBFloatingPalette : public QWidget
QSize preferredSize();
void setBackgroundBrush(const QBrush& brush);
+ void setGrip(bool newGrip);
+
void setMinimizePermission(bool permission);
protected:
diff --git a/src/gui/UBKeyboardPalette.cpp b/src/gui/UBKeyboardPalette.cpp
index 5530a1fa..edcfe09a 100644
--- a/src/gui/UBKeyboardPalette.cpp
+++ b/src/gui/UBKeyboardPalette.cpp
@@ -1,18 +1,9 @@
-/*
- * 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 3 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, see .
- */
-
+/*
+ * UBKeyboardPalette.cpp
+ *
+ * Created on: Feb 10, 2011
+ * Author: tolik
+ */
#include
#include
@@ -21,6 +12,8 @@
#include "UBKeyboardPalette.h"
#include "core/UBSettings.h"
+#include "core/UBApplication.h"
+#include "gui/UBMainWindow.h"
#include "core/memcheck.h"
@@ -29,16 +22,24 @@
UBKeyboardPalette
*/
+
+
UBKeyboardPalette::UBKeyboardPalette(QWidget *parent)
- : UBFloatingPalette(Qt::TopRightCorner, parent)
+ : UBActionPalette(Qt::TopRightCorner, parent)
{
+ setCustomCloseProcessing(true);
setCustomPosition(true);
setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
setFocusPolicy(Qt::NoFocus);
+ setClosable(true);
+ setGrip(false);
+
capsLock = false;
languagePopupActive = false;
keyboardActive = false;
btnWidth = btnHeight = 16;
+ strSize = "16x16";
+ currBtnImages = new BTNImages("16", btnWidth, btnHeight);
buttons = new UBKeyButton*[47];
for (int i=0; i<47; i++)
@@ -53,7 +54,7 @@ UBKeyboardPalette::UBKeyboardPalette(QWidget *parent)
nCurrentLocale = 0;
setInput(locales[nCurrentLocale]);
- setContentsMargins(radius() + 15, 4, radius() + 15, 4);
+ setContentsMargins( 22, 22, 22, 22 );
connect(this, SIGNAL(keyboardActivated(bool)), this, SLOT(onActivated(bool)));
}
@@ -66,12 +67,12 @@ UBKeyboardPalette* UBKeyboardPalette::create(QWidget *parent)
UBKeyboardPalette* instance = new UBKeyboardPalette(parent);
instances.append(instance);
-
+
instance->setKeyButtonSize(UBSettings::settings()->boardKeyboardPaletteKeyBtnSize->get().toString());
- instance->setAutoMinimize(UBSettings::settings()->boardKeyboardPaletteAutoMinimize->get().toBool());
instance->setVisible(false);
- connect(UBSettings::settings()->boardKeyboardPaletteAutoMinimize , SIGNAL(changed(QVariant)), instance, SLOT(keyboardPaletteAutoMinimizeChanged(QVariant)));
connect(UBSettings::settings()->boardKeyboardPaletteKeyBtnSize, SIGNAL(changed(QVariant)), instance, SLOT(keyboardPaletteButtonSizeChanged(QVariant)));
+
+ connect(instance, SIGNAL(closed()), instance, SLOT(hideKeyboard()));
foreach(UBKeyboardPalette* inst, instances)
@@ -82,11 +83,17 @@ UBKeyboardPalette* UBKeyboardPalette::create(QWidget *parent)
connect(inst, SIGNAL(localeChanged(int)), instance, SLOT(syncLocale(int)));
connect(instance, SIGNAL(localeChanged(int)), inst, SLOT(syncLocale(int)));
+// connect(instance, SIGNAL(closed()), inst, )
}
return instance;
}
+void UBKeyboardPalette::hideKeyboard()
+{
+ UBApplication::mainWindow->actionVirtualKeyboard->activate(QAction.Trigger);
+}
+
void UBKeyboardPalette::syncPosition(const QPoint & pos)
{
move(pos);
@@ -98,10 +105,6 @@ void UBKeyboardPalette::syncLocale(int nLocale)
setInput(locales[nCurrentLocale]);
}
-void UBKeyboardPalette::keyboardPaletteAutoMinimizeChanged(QVariant b)
-{
- setAutoMinimize(b.toBool());
-}
void UBKeyboardPalette::keyboardPaletteButtonSizeChanged(QVariant size)
{
setKeyButtonSize(size.toString());
@@ -122,12 +125,12 @@ void UBKeyboardPalette::setInput(const UBKeyboardLocale* locale)
UBKeyboardPalette::~UBKeyboardPalette()
{
- //for (int i=0; i<47; i++)
- // delete buttons[i];
+ for (int i=0; i<47; i++)
+ delete buttons[i];
delete [] buttons;
- //for (int i=0; i<8; i++)
- // delete ctrlButtons[i];
+ for (int i=0; i<8; i++)
+ delete ctrlButtons[i];
delete [] ctrlButtons;
if (locales!=NULL)
@@ -136,36 +139,29 @@ UBKeyboardPalette::~UBKeyboardPalette()
delete locales[i];
delete [] locales;
}
+
+ if(currBtnImages != NULL)
+ {
+ delete currBtnImages;
+ currBtnImages = NULL;
+ }
}
QSize UBKeyboardPalette::sizeHint () const
{
- if ((autoMinimize && keyboardActive) || !autoMinimize)
- {
- int w = contentsMargins().left() + contentsMargins().right() + 13 + 14.5 * btnWidth;
- int h = contentsMargins().top() + contentsMargins().bottom() + 5 * btnHeight + 4;
- return QSize(w, h);
- }
- else
- {
- int MIN_WITH = 4,
- MIN_HEIGTH = 4;
- int w = contentsMargins().left() + contentsMargins().right() + 13 + 14.5 * MIN_WITH;
- int h = contentsMargins().top() + contentsMargins().bottom() + 5 * MIN_HEIGTH + 4;
- return QSize(w, h);
- }
+ int w = contentsMargins().left() + 15 * btnWidth + contentsMargins().right();
+ int h = contentsMargins().top() + 5 * btnHeight + contentsMargins().bottom();
+ return QSize(w, h);
}
const QString* UBKeyboardPalette::getLocaleName()
{
- if (locales==NULL)
- return NULL;
- return &(locales[nCurrentLocale]->name);
+ return locales == NULL ? NULL : &(locales[nCurrentLocale]->name);
}
void UBKeyboardPalette::setLocale(int nLocale)
{
- if (locales!=NULL)
+ if (locales != NULL)
{
nCurrentLocale = nLocale;
@@ -176,26 +172,24 @@ void UBKeyboardPalette::setLocale(int nLocale)
emit localeChanged(nLocale);
}
-void UBKeyboardPalette::setKeyButtonSize(const QString& strSize)
+void UBKeyboardPalette::setKeyButtonSize(const QString& _strSize)
{
- QStringList strs = strSize.split('x');
+ QStringList strs = _strSize.split('x');
if (strs.size()==2)
{
+ strSize = _strSize;
btnWidth = strs[0].toInt();
btnHeight = strs[1].toInt();
- adjustSizeAndPosition();
- }
-}
+ if(currBtnImages != NULL)
+ delete currBtnImages;
+ currBtnImages = new BTNImages(strs[1], btnWidth, btnHeight);
-void UBKeyboardPalette::setAutoMinimize(bool autoMinimize)
-{
- this->autoMinimize = autoMinimize;
- adjustSizeAndPosition();
+ adjustSizeAndPosition();
+ }
}
-
void UBKeyboardPalette::enterEvent ( QEvent * )
{
if (keyboardActive)
@@ -222,7 +216,7 @@ void UBKeyboardPalette::leaveEvent ( QEvent * )
void UBKeyboardPalette::moveEvent ( QMoveEvent * event )
{
- UBFloatingPalette::moveEvent(event);
+ UBActionPalette::moveEvent(event);
emit moved(event->pos());
}
@@ -237,109 +231,230 @@ void UBKeyboardPalette::adjustSizeAndPosition(bool pUp)
this->move(x()-dx, y() - dy);
this->resize(rSize.width(), rSize.height());
}
- UBFloatingPalette::adjustSizeAndPosition(pUp);
+ UBActionPalette::adjustSizeAndPosition(pUp);
}
void UBKeyboardPalette::paintEvent( QPaintEvent* event)
{
- UBFloatingPalette::paintEvent(event);
+ UBActionPalette::paintEvent(event);
QRect r = this->geometry();
int lleft, ltop, lright, lbottom;
getContentsMargins ( &lleft, <op, &lright, &lbottom ) ;
- int btw = (r.width() - lleft - lright - 13) / 14.5;
- int bth = (r.height() - ltop - lbottom -4) / 5;
+ //------------------------------------------------
+ // calculate start offset from left, and from top
+
+ int ctrlButtonsId = 0;
+ lleft = ( r.width() - btnWidth * 15 ) / 2;
+ ltop = ( r.height() - btnHeight * 5 ) / 2;
+
+ //------------------------------------------------
+ // set geometry (position) for row 1
- lleft = (r.width() - (btw * 14.5 + 13))/2;
- ltop = (r.height() - (bth * 5 + 4)) / 2;
+ int offX = lleft;
+ int offY = ltop;
- int off = lleft;;
+ //-------------------
+
+ // buttons [`]..[+]
for (int i = 0; i<13; i++)
{
- QRect cr(off, ltop, btw, bth);
- buttons[i]->setGeometry(cr);
- off += btw + 1;
+ buttons[i]->setGeometry(offX, offY, btnWidth, btnHeight);
+ offX += btnWidth;
}
- ctrlButtons[0]->setGeometry(off, ltop, btw * 1.5, bth);
- off += btw * 1.5;
- lright = off;
-
- ltop += bth + 1;
- int lwidth = 12 * btw + 12 + btw * 1.3;
- off = (r.width() - lwidth) / 2;
- ctrlButtons[1]->setGeometry(off, ltop, btw * 1.3, bth);
- off += btw * 1.3 + 1;
- for (int i=0; i<12; i++)
+
+ // button Backspace
+ ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 2, btnHeight);
+ offX += btnWidth * 2;
+
+ //------------------------------------------------
+ // set geometry (position) for row 2
+
+ offX = lleft;
+ offY += btnHeight;
+ offX += btnWidth / 2;
+
+ //-------------------
+
+ // button Tab
+ ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 2, btnHeight);
+ offX += btnWidth * 2;
+
+ // buttons [q]..[]]
+ for (int i = 0; i<12; i++)
{
- QRect cr(off, ltop, btw, bth);
- buttons[13 + i]->setGeometry(cr);
- off += btw + 1;
+ buttons[i + 13]->setGeometry(offX, offY, btnWidth, btnHeight);
+ offX += btnWidth;
}
- ltop += bth + 1;
- lwidth = 12 * btw + 12 + btw * 2;
- off = (r.width() - lwidth) / 2;
- for (int i=0; i<12; i++)
+// // Row 2 Stub
+// ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 1.5, btnHeight);
+// offX += btnWidth * 1.5;
+
+ //------------------------------------------------
+ // set geometry (position) for row 3
+
+ offX = lleft;
+ offY += btnHeight;
+
+ //-------------------
+
+// // Row 3 Stub
+// ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth, btnHeight);
+// offX += btnWidth;
+
+ // buttons [a]..[\]
+ for (int i = 0; i < 12; i++)
{
- QRect cr(off, ltop, btw, bth);
- buttons[13 + 12 + i]->setGeometry(cr);
- off += btw + 1;
+ buttons[i + 12 + 13]->setGeometry(offX, offY, btnWidth, btnHeight);
+ offX += btnWidth;
}
- ctrlButtons[2]->setGeometry(off, ltop, btw * 2, bth);
-
- ltop += bth + 1;
- lwidth = 12 * btw + 11;
- off = (r.width() - lwidth) / 2;
- ctrlButtons[3]->setGeometry(off, ltop, btw, bth);
- off+=btw+1;
- for (int i=0; i<10; i++)
+
+ // button Enter
+ ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 3, btnHeight);
+ offX += btnWidth*3;
+
+ //------------------------------------------------
+ // set geometry (position) for row 4
+
+ offX = lleft;
+ offY += btnHeight;
+
+ //-------------------
+
+ // button LCapsLock
+ ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth*2.5, btnHeight);
+ offX += btnWidth*2.5;
+
+ for (int i = 0; i < 10; i++)
{
- QRect cr(off, ltop, btw, bth);
- buttons[13 + 12 + 12 + i]->setGeometry(cr);
- off += btw + 1;
+ buttons[i + 12 + 12 + 13]->setGeometry(offX, offY, btnWidth, btnHeight);
+ offX += btnWidth;
}
- ctrlButtons[4]->setGeometry(r.x() + off, ltop, btw, bth);
- ltop += bth + 1;
- lwidth = 11 * btw + 2;
- off = (r.width() - lwidth) / 2;
- ctrlButtons[5]->setGeometry(off, ltop, btw, bth);
- ctrlButtons[6]->setGeometry(off + btw + 1, ltop, btw*9, bth);
- ctrlButtons[7]->setGeometry(off + btw*10 + 2, ltop, btw, bth);
+ // button RCapsLock
+ ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth*2.5, btnHeight);
+ offX += btnWidth*2.5;
+
+ //------------------------------------------------
+ // set geometry (position) for row 5
+
+ offX = lleft;
+ offY += btnHeight;
+
+ //-------------------
+
+ ctrlButtons[ctrlButtonsId++]->setGeometry(offX + btnWidth * 1 , offY, btnWidth * 2, btnHeight);
+ ctrlButtons[ctrlButtonsId++]->setGeometry(offX + btnWidth * 3 , offY, btnWidth * 9, btnHeight);
+ ctrlButtons[ctrlButtonsId++]->setGeometry(offX + btnWidth * 12, offY, btnWidth * 2, btnHeight);
+
+ //------------------------------------------------
}
-/*
+//-----------------------------------------------------------------------//
+// BTNImages Class
+//-----------------------------------------------------------------------//
- UBKeyboardButton
-*/
+BTNImages::BTNImages(QString strHeight, int width, int height)
+{
+ m_strHeight = strHeight;
+ m_width = width;
+ m_height = height;
+
+ m_strLeftPassive = ":/images/virtual.keyboard/" + strHeight + "/left-passive.png";
+ m_strCenterPassive = ":/images/virtual.keyboard/" + strHeight + "/centre-passive.png";
+ m_strRightPassive = ":/images/virtual.keyboard/" + strHeight + "/right-passive.png";
+ m_strLeftActive = ":/images/virtual.keyboard/" + strHeight + "/left-active.png";
+ m_strCenterActive = ":/images/virtual.keyboard/" + strHeight + "/centre-active.png";
+ m_strRightActive = ":/images/virtual.keyboard/" + strHeight + "/right-active.png";
+
+ m_btnLeftPassive = QImage(m_strLeftPassive);
+ m_btnCenterPassive = QImage(m_strCenterPassive);
+ m_btnRightPassive = QImage(m_strRightPassive);
+ m_btnLeftActive = QImage(m_strLeftActive);
+ m_btnCenterActive = QImage(m_strCenterActive);
+ m_btnRightActive = QImage(m_strRightActive);
+}
+
+ContentImage::ContentImage(QString strHeight, int height, QString strContentName)
+{
+ m_strHeight = strHeight;
+ m_height = height;
-UBKeyboardButton::UBKeyboardButton(UBKeyboardPalette* parent)
+ m_strContent = ":/images/virtual.keyboard/" + strHeight + "/" + strContentName + ".png";
+ m_btnContent = QImage(m_strContent);
+}
+
+//-----------------------------------------------------------------------//
+// UBKeyboardButton Class
+//-----------------------------------------------------------------------//
+
+UBKeyboardButton::UBKeyboardButton(UBKeyboardPalette* parent, QString contentImagePath = "")
:QWidget(parent),
keyboard(parent),
bFocused(false),
bPressed(false)
{
+ m_parent = parent;
+
+ m_contentImagePath = contentImagePath;
+ imgContent = NULL;
+
setCursor(Qt::PointingHandCursor);
}
UBKeyboardButton::~UBKeyboardButton()
-{}
+{
+ if(imgContent != NULL)
+ {
+ delete imgContent;
+ imgContent = NULL;
+ }
+}
void UBKeyboardButton::paintEvent(QPaintEvent*)
{
+
QPainter painter(this);
+ //--------------------------
+
+ if(imgContent != NULL)
+ {
+ if(imgContent->m_height != m_parent->currBtnImages->m_height)
+ {
+ delete imgContent;
+ if(!m_contentImagePath.isEmpty())
+ imgContent = new ContentImage(m_parent->currBtnImages->m_strHeight, m_parent->currBtnImages->m_height, m_contentImagePath);
+ }
+ }
+ else
+ if(!m_contentImagePath.isEmpty())
+ imgContent = new ContentImage(m_parent->currBtnImages->m_strHeight, m_parent->currBtnImages->m_height, m_contentImagePath);
+
+ //--------------------------
+
if (bPressed)
- painter.setBrush(QBrush(QColor(0, 0xcc, 0)));
- else if (bFocused)
- painter.setBrush(QBrush(QColor(0xcc, 0, 0)));
+ {
+ painter.drawImage( 0,0, m_parent->currBtnImages->m_btnLeftActive, 0,0, m_parent->currBtnImages->m_btnLeftActive.width(), m_parent->currBtnImages->m_btnLeftActive.height() );
+ painter.drawImage( QRect(m_parent->currBtnImages->m_btnLeftActive.width(), 0, width() - m_parent->currBtnImages->m_btnLeftActive.width() - m_parent->currBtnImages->m_btnRightActive.width(), height()), m_parent->currBtnImages->m_btnCenterActive );
+ painter.drawImage( width() - m_parent->currBtnImages->m_btnRightActive.width(), 0, m_parent->currBtnImages->m_btnRightActive, 0,0, m_parent->currBtnImages->m_btnRightActive.width(), m_parent->currBtnImages->m_btnRightActive.height() );
+ }
+ else
+ {
+ painter.drawImage( 0,0, m_parent->currBtnImages->m_btnLeftPassive, 0,0, m_parent->currBtnImages->m_btnLeftPassive.width(), m_parent->currBtnImages->m_btnLeftPassive.height() );
+ painter.drawImage( QRect(m_parent->currBtnImages->m_btnLeftPassive.width(), 0, width() - m_parent->currBtnImages->m_btnLeftPassive.width() - m_parent->currBtnImages->m_btnRightPassive.width(), height()), m_parent->currBtnImages->m_btnCenterPassive );
+ painter.drawImage( width() - m_parent->currBtnImages->m_btnRightPassive.width(), 0, m_parent->currBtnImages->m_btnRightPassive, 0,0, m_parent->currBtnImages->m_btnRightPassive.width(), m_parent->currBtnImages->m_btnRightPassive.height() );
+ }
- painter.drawRoundedRect(0, 0, width()-1, height()-1, 3, 3);
+ //--------------------------
this->paintContent(painter);
+
+ //--------------------------
}
void UBKeyboardButton::enterEvent ( QEvent*)
@@ -388,7 +503,6 @@ void UBKeyButton::onRelease()
void UBKeyButton::paintContent(QPainter& painter)
{
-
if (keybt)
{
QString text(QChar(capsLock() ? keybt->symbol2 : keybt->symbol1));
@@ -397,6 +511,12 @@ void UBKeyButton::paintContent(QPainter& painter)
}
}
+UBCntrlButton::UBCntrlButton(UBKeyboardPalette* parent, int _code, const QString& _contentImagePath )
+ :UBKeyboardButton(parent, _contentImagePath),
+ label(""),
+ code(_code)
+{}
+
UBCntrlButton::UBCntrlButton(UBKeyboardPalette* parent, const QString& _label, int _code )
:UBKeyboardButton(parent),
@@ -409,7 +529,7 @@ UBCntrlButton::~UBCntrlButton()
void UBCntrlButton::onPress()
{
- sendControlSymbol(code);
+ sendControlSymbol(code);
}
void UBCntrlButton::onRelease()
@@ -417,11 +537,20 @@ void UBCntrlButton::onRelease()
void UBCntrlButton::paintContent(QPainter& painter)
{
- painter.drawText(rect(), Qt::AlignCenter, label);
+ if(!label.isEmpty())
+ {
+ painter.drawText(rect(), Qt::AlignCenter, label);
+ }
+ else
+ if(imgContent != NULL)
+ {
+ painter.drawImage(( rect().width() - imgContent->m_btnContent.width() ) / 2, ( rect().height() - imgContent->m_btnContent.height() ) / 2,
+ imgContent->m_btnContent, 0,0, imgContent->m_btnContent.width(), imgContent->m_btnContent.height());
+ }
}
-UBCapsLockButton::UBCapsLockButton(UBKeyboardPalette* parent)
- :UBKeyboardButton(parent)
+UBCapsLockButton::UBCapsLockButton(UBKeyboardPalette* parent, const QString _contentImagePath)
+ :UBKeyboardButton(parent, _contentImagePath)
{}
UBCapsLockButton::~UBCapsLockButton()
@@ -438,7 +567,13 @@ void UBCapsLockButton::onRelease()
void UBCapsLockButton::paintContent(QPainter& painter)
{
- painter.drawText(rect(), Qt::AlignCenter, "^");
+ if(imgContent != NULL)
+ {
+ painter.drawImage(( rect().width() - imgContent->m_btnContent.width() ) / 2, ( rect().height() - imgContent->m_btnContent.height() ) / 2,
+ imgContent->m_btnContent, 0,0, imgContent->m_btnContent.width(), imgContent->m_btnContent.height());
+ }
+ else
+ painter.drawText(rect(), Qt::AlignCenter, "^");
}
diff --git a/src/gui/UBKeyboardPalette.h b/src/gui/UBKeyboardPalette.h
index 60c91e67..ea034f4f 100644
--- a/src/gui/UBKeyboardPalette.h
+++ b/src/gui/UBKeyboardPalette.h
@@ -1,22 +1,7 @@
-/*
- * 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 3 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, see .
- */
#ifndef UBKEYBOARDPALETTE_H
#define UBKEYBOARDPALETTE_H
-#include "UBFloatingPalette.h"
-
+#include "UBActionPalette.h"
#include
#include
@@ -28,7 +13,52 @@
class UBKeyButton;
class UBKeyboardButton;
-class UBKeyboardPalette : public UBFloatingPalette
+class UBApplication;
+class UBMainWindow;
+
+class BTNImages
+{
+public:
+
+ BTNImages(QString _strHeight, int _width, int _height);
+
+ QString m_strHeight;
+ int m_width;
+ int m_height;
+
+ QImage m_btnLeftPassive;
+ QImage m_btnCenterPassive;
+ QImage m_btnRightPassive;
+ QImage m_btnLeftActive;
+ QImage m_btnCenterActive;
+ QImage m_btnRightActive;
+
+private:
+ QString m_strLeftPassive;
+ QString m_strCenterPassive;
+ QString m_strRightPassive;
+ QString m_strLeftActive;
+ QString m_strCenterActive;
+ QString m_strRightActive;
+
+};
+
+class ContentImage
+{
+public:
+
+ ContentImage(QString strHeight, int m_height, QString strContentPath);
+
+ QString m_strHeight;
+ int m_height;
+
+ QImage m_btnContent;
+
+private:
+ QString m_strContent;
+};
+
+class UBKeyboardPalette : public UBActionPalette
{
Q_OBJECT
@@ -39,12 +69,13 @@ friend class UBLocaleButton;
public:
~UBKeyboardPalette();
+ BTNImages *currBtnImages;
+
bool isEnabled(){return locales!= NULL;}
virtual QSize sizeHint () const;
virtual void adjustSizeAndPosition(bool pUp = true);
QString getKeyButtonSize() const {QString res; res.sprintf("%dx%d", btnWidth, btnHeight); return res;}
void setKeyButtonSize(const QString& strSize);
- void setAutoMinimize(bool autoMinimize);
static UBKeyboardPalette* create(QWidget *parent);
signals:
@@ -55,9 +86,9 @@ signals:
private slots:
void syncPosition(const QPoint & pos);
void syncLocale(int nLocale);
- void keyboardPaletteAutoMinimizeChanged(QVariant b);
void keyboardPaletteButtonSizeChanged(QVariant size);
void onActivated(bool b);
+ void hideKeyboard();
protected:
bool capsLock;
@@ -65,16 +96,16 @@ protected:
int nLocalesCount;
UBKeyboardLocale** locales;
+ QString strSize;
int btnWidth;
int btnHeight;
-
+//
bool languagePopupActive;
bool keyboardActive;
- bool autoMinimize;
-
+//
virtual void enterEvent ( QEvent * event );
virtual void leaveEvent ( QEvent * event );
- virtual void paintEvent(QPaintEvent *event);
+ virtual void paintEvent(QPaintEvent *event);
virtual void moveEvent ( QMoveEvent * event );
void sendKeyEvent(const KEYBT& keybt);
@@ -110,17 +141,22 @@ private:
};
-
class UBKeyboardButton : public QWidget
{
Q_OBJECT
public:
- UBKeyboardButton(UBKeyboardPalette* parent);
+ UBKeyboardButton(UBKeyboardPalette* parent, QString contentImagePath);
~UBKeyboardButton();
protected:
+
+ UBKeyboardPalette* m_parent;
+ ContentImage *imgContent;
+ QString m_contentImagePath;
+
void paintEvent(QPaintEvent *event);
+
virtual void enterEvent ( QEvent * event );
virtual void leaveEvent ( QEvent * event );
virtual void mousePressEvent ( QMouseEvent * event );
@@ -165,6 +201,7 @@ class UBCntrlButton : public UBKeyboardButton
Q_OBJECT
public:
+ UBCntrlButton(UBKeyboardPalette* parent, int _code, const QString& _contentImagePath );
UBCntrlButton(UBKeyboardPalette* parent, const QString& _label, int _code );
~UBCntrlButton();
@@ -182,7 +219,7 @@ class UBCapsLockButton : public UBKeyboardButton
Q_OBJECT
public:
- UBCapsLockButton(UBKeyboardPalette* parent);
+ UBCapsLockButton(UBKeyboardPalette* parent, const QString _contentImagePath);
~UBCapsLockButton();
virtual void onPress();
@@ -203,7 +240,7 @@ public:
virtual void paintContent(QPainter& painter);
protected:
- QMenu* localeMenu;
+ QMenu* localeMenu;
};
#endif // UBKEYBOARDPALETTE_H
diff --git a/src/gui/UBKeyboardPalette_win.cpp b/src/gui/UBKeyboardPalette_win.cpp
index 4a4bc3ea..5f9da4f7 100644
--- a/src/gui/UBKeyboardPalette_win.cpp
+++ b/src/gui/UBKeyboardPalette_win.cpp
@@ -1,17 +1,3 @@
-/*
- * 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 3 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, see .
- */
#include "UBKeyboardPalette.h"
@@ -66,16 +52,19 @@ void UBKeyboardButton::sendControlSymbol(int nSymbol)
void UBKeyboardPalette::createCtrlButtons()
{
- ctrlButtons = new UBKeyboardButton*[7];
-
- ctrlButtons[0] = new UBCntrlButton(this, "<-", 0x08);
- ctrlButtons[1] = new UBCntrlButton(this, "<->", 0x09);
- ctrlButtons[2] = new UBCntrlButton(this, "Enter", 0x0d);
- ctrlButtons[3] = new UBCapsLockButton(this);
- ctrlButtons[4] = new UBCapsLockButton(this);
- ctrlButtons[5] = new UBLocaleButton(this);
- ctrlButtons[6] = new UBCntrlButton(this, "", 0x20);
- ctrlButtons[7] = new UBLocaleButton(this);
+ int ctrlID = 0;
+ ctrlButtons = new UBKeyboardButton*[9];
+
+ ctrlButtons[ctrlID++] = new UBCntrlButton(this, 0x08, "backspace");// Backspace
+ ctrlButtons[ctrlID++] = new UBCntrlButton(this, 0x09, "tab"); // Tab
+// ctrlButtons[ctrlID++] = new UBKeyButton(this); // Row 2 Stub
+// ctrlButtons[ctrlID++] = new UBKeyButton(this); // Row 3 Stub
+ ctrlButtons[ctrlID++] = new UBCntrlButton(this, "Enter", 0x0d); // Enter
+ ctrlButtons[ctrlID++] = new UBCapsLockButton(this, "capslock"); // Caps Lock
+ ctrlButtons[ctrlID++] = new UBCapsLockButton(this, "capslock"); // Caps Lock
+ ctrlButtons[ctrlID++] = new UBLocaleButton(this); // Language Switch
+ ctrlButtons[ctrlID++] = new UBCntrlButton(this, "", 0x20); // Space
+ ctrlButtons[ctrlID++] = new UBLocaleButton(this); // Language Switch
}
void UBKeyboardPalette::onActivated(bool)