summaryrefslogtreecommitdiffstats
path: root/konq-plugins/rsync/rsyncplugin.h
diff options
context:
space:
mode:
Diffstat (limited to 'konq-plugins/rsync/rsyncplugin.h')
-rw-r--r--konq-plugins/rsync/rsyncplugin.h131
1 files changed, 131 insertions, 0 deletions
diff --git a/konq-plugins/rsync/rsyncplugin.h b/konq-plugins/rsync/rsyncplugin.h
new file mode 100644
index 0000000..0e8c22d
--- /dev/null
+++ b/konq-plugins/rsync/rsyncplugin.h
@@ -0,0 +1,131 @@
+/*
+ Copyright (C) 2000, 2001, 2002 Dawit Alemayehu <adawit@kde.org>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License version 2 as published by the Free Software Foundation.
+
+ 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#ifndef __RSYNC_PLUGIN_H
+#define __RSYNC_PLUGIN_H
+
+#include <qmap.h>
+#include <qstringlist.h>
+
+#include <kurl.h>
+#include <kprocess.h>
+#include <kfileitem.h>
+#include <klibloader.h>
+#include <kparts/plugin.h>
+#include <kio/global.h>
+#include <kio/slavebase.h>
+#include <kio/authinfo.h>
+
+#include "rsyncconfigdialog.h"
+
+class KActionMenu;
+class KonqDirPart;
+class KLineEdit;
+
+
+namespace KParts
+{
+ struct URLArgs;
+}
+
+namespace KIO
+{
+ class Job;
+}
+
+class RsyncPlugin : public KParts::Plugin
+{
+ Q_OBJECT
+
+public:
+
+ RsyncPlugin (QObject* parent, const char* name, const QStringList &);
+ ~RsyncPlugin ();
+
+protected:
+ void loadSettings();
+ void saveSettings();
+ QString findLocalFolderByName(QString folderurl);
+ int deleteLocalFolderByName(QString folderurl);
+ int addLocalFolderByName(QString folderurl, QString remoteurl);
+ /** manages initial communication setup including password queries */
+ int establishConnection(char *buffer, KIO::fileoffset_t len);
+ /** creates the subprocess */
+ bool connectionStart(QString localfolder, QString remotepath);
+ /** writes one chunk of data to stdin of child process */
+ void writeChild(const char *buf, KIO::fileoffset_t len);
+ /** AuthInfo object used for logging in */
+ KIO::AuthInfo connectionAuth;
+ /**
+ Clean up connection
+ */
+ void shutdownConnection(bool forced=false, bool wait=false);
+ /** Forced close of the connection */
+ void closeConnection();
+
+private slots:
+ void slotSync();
+ void slotSetup();
+ void slotOpenURL();
+ void slotShowPopup();
+ void slotSetupOK();
+ void slotSetupCancelled();
+ void slotRsyncCancelled();
+
+private:
+ KURL m_pURL;
+ KonqDirPart* m_part;
+ KAction* m_pSyncNow;
+ KAction* m_pSyncSetup;
+ KActionMenu* m_pSyncMenu;
+ KProgressBoxDialog* m_progressDialog;
+ RsyncConfigDialog* m_configDialog;
+
+ QStringList cfgfolderlist;
+ bool m_progressDialogExists;
+
+ bool m_bSettingsLoaded;
+
+ /** true if connection is logged in successfully */
+ bool isLoggedIn;
+ /** the rsync process used to communicate with the remote end */
+ pid_t childPid;
+ /** fd for reading and writing to the process */
+ int childFd;
+ /** buffer for data to be written */
+ const char *outBuf;
+ /** current write position in buffer */
+ KIO::fileoffset_t outBufPos;
+ /** length of buffer */
+ KIO::fileoffset_t outBufLen;
+ /** use su if true else use ssh */
+ //bool local;
+ /** // FIXME: just a workaround for konq deficiencies */
+ bool isStat;
+ /** // FIXME: just a workaround for konq deficiencies */
+ QString redirectUser, redirectPass;
+ /** user name of current connection */
+ QString connectionUser;
+ /** password of current connection */
+ QString connectionPassword;
+ /** true if this is the first login attempt (== use cached password) */
+ bool firstLogin;
+
+ QString thisFn;
+};
+#endif