summaryrefslogtreecommitdiffstats
path: root/tdenewstuff/knewstuffsecure.h
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2014-09-21 18:30:01 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2014-09-21 18:30:01 -0500
commitf6d69d45cf25180a8285b2dd5c146a0481fd09ce (patch)
tree1bb437c632896e2f278931105530f61ee567bf69 /tdenewstuff/knewstuffsecure.h
parent47ac4096211c3f8634bc5e17027523dfe955bcaf (diff)
downloadtdelibs-f6d69d45cf25180a8285b2dd5c146a0481fd09ce.tar.gz
tdelibs-f6d69d45cf25180a8285b2dd5c146a0481fd09ce.zip
Finish renaming knewstuff
This relates to Bug 2093
Diffstat (limited to 'tdenewstuff/knewstuffsecure.h')
-rw-r--r--tdenewstuff/knewstuffsecure.h101
1 files changed, 101 insertions, 0 deletions
diff --git a/tdenewstuff/knewstuffsecure.h b/tdenewstuff/knewstuffsecure.h
new file mode 100644
index 000000000..1c292a9a8
--- /dev/null
+++ b/tdenewstuff/knewstuffsecure.h
@@ -0,0 +1,101 @@
+/***************************************************************************
+ knewstuffsecure.h - description
+ -------------------
+ begin : Tue Jun 22 12:19:55 2004
+ copyright : (C) 2004, 2005 by Andras Mantia <amantia@kde.org>
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU Library General Public License as *
+ * published by the Free Software Foundation; version 2 of the License. *
+ * *
+ ***************************************************************************/
+
+#ifndef KNEWSTUFFSECURE_H
+#define KNEWSTUFFSECURE_H
+
+//qt includes
+#include <tqobject.h>
+
+//kde includes
+#include "knewstuff.h"
+
+class KTempDir;
+/**
+Makes possible downloading and installing signed resource files from a server.
+You must subclass it and implement the @ref installResource() pure
+virtual method to install a resource. For uploading you must create a resource
+tarball (which is installabale by @ref installResource()) and call the
+@ref uploadResource() method with this tarball as the argument.
+Signing and verification is done by the gpg application, so the user must
+have it installed, otherwise this class does not give any extra security compared
+to the standard TDENewStuff class.
+
+@since 3.4
+
+@author Andras Mantia <amantia@kde.org>
+*/
+class KDE_EXPORT TDENewStuffSecure : public TQObject, public TDENewStuff
+{
+ Q_OBJECT
+
+public:
+ /** Constructor.
+
+ @param type type of data to be handled, should be something like
+ korganizer/calendar, kword/template, kdesktop/wallpaper
+ @param parentWidget parent widget of dialogs opened by the TDENewStuff
+ engine
+ */
+ TDENewStuffSecure(const TQString &type, TQWidget *parentWidget=0);
+ virtual ~TDENewStuffSecure();
+
+ /** Installs the downloaded resource. Do not call or reimplement directly.
+ It's reimplemented from TDENewStuff for internal reasons.
+ */
+ bool install( const TQString &fileName );
+
+ /** Reimplemented for internal reasons. */
+ bool createUploadFile(const TQString &fileName);
+
+ /** Initiates a download. This is the method that must be called in
+ * order to download a signed resource. */
+ void downloadResource();
+
+ /** Signs the file and uploads to the central server.
+ * @param fileName The file to be signed and uploaded
+ */
+ void uploadResource(const TQString &fileName);
+
+
+private slots:
+ /** Checks the validity of the downloaded tarball and installs it*/
+ void slotValidated(int result);
+ /** The file is signed, so it can be uploaded.*/
+ void slotFileSigned(int result);
+ /** Called when the upload has finished.
+ @param result the result of the upload
+ Be careful if you reimplement it, as it deletes the temporary directory
+ m_tempDir used for upload. You must also delete it (call the parent's method)
+ if you reimplement it.
+ */
+ void slotUploadFinished(bool result);
+
+signals:
+ void installFinished();
+
+protected:
+ /** Installs the resource specified by m_tarName. Implement it in the subclass. */
+ virtual void installResource() = 0;
+ /** Removes the temporary directory m_tempDir. */
+ void removeTempDirectory();
+
+ KTempDir *m_tempDir;
+ TQString m_tarName;
+ TQString m_signedFileName;
+ TQMap<TQString, TQString> m_installedResources;
+};
+
+#endif