From d12aa9bf17dfb71f592f2404c5070094de80be24 Mon Sep 17 00:00:00 2001 From: Konrad Rosenbaum Date: Sun, 7 Aug 2016 20:18:51 +0200 Subject: [PATCH] draft of print@home; update license info --- doc/copying-lgpl.html | 198 +++++++++++++++++++++++++++++++++++++++++++ doc/index.html | 11 ++- doc/license.html | 18 +++- doc/oxygen-copyright.txt | 60 +++++++++++++ printathome/files.qrc | 11 +++ printathome/icon-active.png | Bin 0 -> 5392 bytes printathome/icon-block.png | Bin 0 -> 5801 bytes printathome/icon-print.png | Bin 0 -> 5261 bytes printathome/icon-print.xcf | Bin 0 -> 19084 bytes printathome/pah.cpp | 84 ++++++++++++++++++ printathome/pah.h | 24 +++++ printathome/printathome.pro | 20 +++++ 12 files changed, 418 insertions(+), 8 deletions(-) create mode 100644 doc/copying-lgpl.html create mode 100644 doc/oxygen-copyright.txt create mode 100644 printathome/files.qrc create mode 100644 printathome/icon-active.png create mode 100644 printathome/icon-block.png create mode 100644 printathome/icon-print.png create mode 100644 printathome/icon-print.xcf create mode 100644 printathome/pah.cpp create mode 100644 printathome/pah.h create mode 100644 printathome/printathome.pro diff --git a/doc/copying-lgpl.html b/doc/copying-lgpl.html new file mode 100644 index 0000000..671e266 --- /dev/null +++ b/doc/copying-lgpl.html @@ -0,0 +1,198 @@ + + + + + + + +GNU Lesser General Public License v3.0 - GNU Project - Free Software Foundation (FSF) + + + + + +
+

GNU LESSER GENERAL PUBLIC LICENSE

+

Version 3, 29 June 2007

+ +

Copyright © 2007 Free Software Foundation, Inc. + <http://fsf.org/>

+ Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed.

+ +

This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below.

+ +

0. Additional Definitions.

+ +

As used herein, “this License” refers to version 3 of the GNU Lesser +General Public License, and the “GNU GPL” refers to version 3 of the GNU +General Public License.

+ +

“The Library” refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below.

+ +

An “Application” is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library.

+ +

A “Combined Work” is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the “Linked +Version”.

+ +

The “Minimal Corresponding Source” for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version.

+ +

The “Corresponding Application Code” for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work.

+ +

1. Exception to Section 3 of the GNU GPL.

+ +

You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL.

+ +

2. Conveying Modified Versions.

+ +

If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version:

+ + + +

3. Object Code Incorporating Material from Library Header Files.

+ +

The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following:

+ + + +

4. Combined Works.

+ +

You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following:

+ + + +

5. Combined Libraries.

+ +

You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following:

+ + + +

6. Revised Versions of the GNU Lesser General Public License.

+ +

The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns.

+ +

Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License “or any later version” +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation.

+ +

If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library.

+ +
+ + + + diff --git a/doc/index.html b/doc/index.html index 11e1aa3..eff0da3 100644 --- a/doc/index.html +++ b/doc/index.html @@ -8,10 +8,11 @@

Copyright

-© Konrad Rosenbaum, 2007-2012
+© Konrad Rosenbaum, 2007-2016
© Peter Keller, 2007/8

-MagicSmoke is licensed under GPL (Client), AGPL (Server), and FDL (Documentation). +MagicSmoke is licensed under GPL (Client), AGPL (Server), +and FDL (Documentation). Please see the Licensing page for details.

There are several external sources that are used by MagicSmoke, which are @@ -32,9 +33,11 @@ MagicSmoke is a client-server system in an almost classic 3-tier architecture:

-The Client is able to run on almost any system that Qt runs on. It has been tested on Linux (Debian squeeze/amd64 and Ubuntu LTS/x86), Windows (32bit, MinGW) and MacOS/X (XCode, Snow Leopard).

+The Client is able to run on almost any system that Qt runs on. It has been tested on Linux (Debian squeeze/amd64 and Ubuntu LTS/x86), +Windows (32bit, MinGW) and MacOS/X (XCode, Snow Leopard).

-The Server has been developed to run on Linux and other Unixes. It needs Apache, PHP5 and a MySQL or Postgres database. It may run on other systems, but it has never been tested on them. +The Server has been developed to run on Linux and other Unixes. It needs Apache, PHP5 and a MySQL or Postgres database. +It may run on other systems, but it has never been tested on them.

Big Fat Warning

diff --git a/doc/license.html b/doc/license.html index e67f7d6..57690e3 100644 --- a/doc/license.html +++ b/doc/license.html @@ -13,8 +13,14 @@ Description License -srcClient SourcesGNU GPL v.3 -www, wobServer and Communication InterfaceGNU Affero GPL v.3 +adminapp, backupclient, commonlib, iface, mainapp, plugins, printathome, sesscli, sessman, src + Client Sources + GNU GPL v.3 +wwwServerGNU Affero GPL v.3 +wobCommunication InterfaceGNU LGPL v.3 +testsTests for MagicSmokeGNU GPL v.3 +examples, www/templateExample templatesPublic Domain, see below +taurus, pack, twig, tzone, hidapiexternal sourcessee below

Documentation

@@ -29,8 +35,12 @@ The documentation is under the GNU FDL v.1.3:

External Sources

-Directories zip, pack, tzone, twig, elam, dptr: -These are external packages, see the README files in there for details. +Directories taurus, pack, tzone, twig, hidapi: +These are external packages, see the README files in there for details.

+ +Some Icons and Icon elements were copied from the KDE Oxygen Icon Theme. These are +copyrighted by the Oxygen team, see Oxygen Copyright +and LGPL for details.

Example and Packaging Files

diff --git a/doc/oxygen-copyright.txt b/doc/oxygen-copyright.txt new file mode 100644 index 0000000..c62ebd1 --- /dev/null +++ b/doc/oxygen-copyright.txt @@ -0,0 +1,60 @@ +It was downloaded from ftp://ftp.kde.org + + +Upstream authors and copyright holders: + + +The Oxygen Icon Theme + Copyright (C) 2007 Nuno Pinheiro + Copyright (C) 2007 David Vignoni + Copyright (C) 2007 David Miller + Copyright (C) 2007 Johann Ollivier Lapeyre + Copyright (C) 2007 Kenneth Wimer + Copyright (C) 2007 Riccardo Iaconelli + +and others + +License: + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library. If not, see . + +Clarification: + + The GNU Lesser General Public License or LGPL is written for + software libraries in the first place. We expressly want the LGPL to + be valid for this artwork library too. + + KDE Oxygen theme icons is a special kind of software library, it is an + artwork library, it's elements can be used in a Graphical User Interface, or + GUI. + + Source code, for this library means: + - where they exist, SVG; + - otherwise, if applicable, the multi-layered formats xcf or psd, or + otherwise png. + + The LGPL in some sections obliges you to make the files carry + notices. With images this is in some cases impossible or hardly useful. + + With this library a notice is placed at a prominent place in the directory + containing the elements. You may follow this practice. + + The exception in section 5 of the GNU Lesser General Public License covers + the use of elements of this art library in a GUI. + + kde-artists [at] kde.org + +On Debian systems, the complete text of the GNU Lesser General Public +License version 3 can be found in /usr/share/common-licenses/LGPL-3 +Or in copying-lgpl.html . \ No newline at end of file diff --git a/printathome/files.qrc b/printathome/files.qrc new file mode 100644 index 0000000..2eba23c --- /dev/null +++ b/printathome/files.qrc @@ -0,0 +1,11 @@ + + + + + + icon-print.png + icon-block.png + icon-active.png + + diff --git a/printathome/icon-active.png b/printathome/icon-active.png new file mode 100644 index 0000000000000000000000000000000000000000..89e5c34311e58f4d4718fb4597df0294421273f1 GIT binary patch literal 5392 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 literal 0 HcmV?d00001 diff --git a/printathome/icon-print.png b/printathome/icon-print.png new file mode 100644 index 0000000000000000000000000000000000000000..15fea613c9fe0a1c20048998375da2de5222d04c GIT binary patch literal 5261 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 TjdoVw00000NkvXXu0mjfTsQQ5 literal 0 HcmV?d00001 diff --git a/printathome/icon-print.xcf b/printathome/icon-print.xcf new file mode 100644 index 0000000000000000000000000000000000000000..48427be939407a5bd5165713d76ac6cb7078f351 GIT binary patch literal 19084 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 WS)tQUV5T^+L(st!XP`6!z<&WcD;y^P literal 0 HcmV?d00001 diff --git a/printathome/pah.cpp b/printathome/pah.cpp new file mode 100644 index 0000000..1f9133f --- /dev/null +++ b/printathome/pah.cpp @@ -0,0 +1,84 @@ +#include "mapplication.h" +#include "msinterface.h" +#include "scli.h" +#include + +#include "pah.h" + +#include +#include +#include + +PrintIcon::PrintIcon() +{ + setPrintMode(PrintMode::Blocked); + + QMenu*ctx=new QMenu; + ctx->addAction(tr("Start &Printing now")); + ctx->addSeparator(); + ctx->addAction(tr("&Client Configuration...")); + ctx->addAction(tr("&Server Configuration...")); + ctx->addSeparator(); + ctx->addAction(tr("&Quit"),qApp,SLOT(quit())); + setContextMenu(ctx); + + show(); +} + +void PrintIcon::setPrintMode(PrintMode m) +{ + QString mode; + switch(m){ + case PrintMode::Normal: + setIcon(QIcon(":/icon-print.png")); + mode=tr("Ready"); + break; + case PrintMode::Blocked: + setIcon(QIcon(":/icon-block.png")); + mode=tr("Blocked"); + break; + case PrintMode::Printing: + setIcon(QIcon(":/icon-active.png")); + mode=tr("Printing..."); + break; + } + QString user=tr("(not logged in)"),host; + if(req){ + user=req->currentUser(); + host=req->profileName(); + } + setToolTip(tr("MagicSmoke Print@Home: %1 - logged in as %2 at %3").arg(mode).arg(user).arg(host)); +} + + + +int main(int argc,char**argv) +{ + //create global app + MApplication app(argc,argv); + + //init icon + PrintIcon pi; + + //init + app.initialize(); + + //get session + MSessionClient sc; + sc.connect(&sc,SIGNAL(sessionLost()),&app,SLOT(quit())); + sc.connect(&sc,SIGNAL(managerLost()),&app,SLOT(quit())); + if(sc.waitForSessionAvailable()){ + WTransaction::setLogPrefix("P@H-T"); + MSInterface*ms=new MSInterface(sc.currentProfileId()); + ms->loginSession(sc.currentUsername(), sc.currentSessionId()); + ms->initialize(); + QObject::connect(&sc,SIGNAL(sessionIdChanged(QString)),ms,SLOT(setSessionId(QString))); + pi.setPrintMode(PrintIcon::PrintMode::Normal); + }else{ + qDebug()<<"Unable to get session. Giving up."; + return 1; + } + + //event loop + return app.exec(); +} diff --git a/printathome/pah.h b/printathome/pah.h new file mode 100644 index 0000000..78c7060 --- /dev/null +++ b/printathome/pah.h @@ -0,0 +1,24 @@ +#ifndef PAH_MAIN_H +#define PAH_MAIN_H + +#include + +class PrintIcon:public QSystemTrayIcon +{ + Q_OBJECT +public: + PrintIcon(); + + enum class PrintMode{ + ///Normal operation, waiting for events + Normal, + ///Actively printing + Printing, + ///operation blocked, no connection + Blocked + }; +public slots: + void setPrintMode(PrintMode); +}; + +#endif \ No newline at end of file diff --git a/printathome/printathome.pro b/printathome/printathome.pro new file mode 100644 index 0000000..d657e80 --- /dev/null +++ b/printathome/printathome.pro @@ -0,0 +1,20 @@ +TEMPLATE = app +TARGET = magicsmoke-print + +include(../basics.pri) +include(../sesscli/sesscli.pri) +include(../iface/iface.pri) +include(../commonlib/commonlib.pri) + +#sources +SOURCES += pah.cpp +HEADERS += pah.h + +RESOURCES += files.qrc + +#pathes +INCLUDEPATH += . +DEPENDPATH += $$INCLUDEPATH + +#make sure the correct Qt DLLs are used +QT += network gui widgets -- 1.7.2.5