summaryrefslogtreecommitdiffstats
path: root/ark/ark_part.h
diff options
context:
space:
mode:
Diffstat (limited to 'ark/ark_part.h')
-rw-r--r--ark/ark_part.h148
1 files changed, 148 insertions, 0 deletions
diff --git a/ark/ark_part.h b/ark/ark_part.h
new file mode 100644
index 0000000..b5b7f6f
--- /dev/null
+++ b/ark/ark_part.h
@@ -0,0 +1,148 @@
+/*
+ Copyright (C)
+
+ 2001: Macadamian Technologies Inc (author: Jian Huang, jian@macadamian.com)
+ 2005: Henrique Pinto <henrique.pinto@kdemail.net>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#ifndef ARK_PART_H
+#define ARK_PART_H
+
+#include <kparts/part.h>
+#include <kparts/browserextension.h>
+#include <kparts/statusbarextension.h>
+#include <kparts/factory.h>
+#include <kaction.h>
+#include <kprogress.h>
+
+#include <qlabel.h>
+
+class KAboutData;
+class KPushButton;
+
+class ArkWidget;
+
+namespace KIO
+{
+ class Job;
+}
+
+
+class ArkBrowserExtension: public KParts::BrowserExtension
+{
+ Q_OBJECT
+public:
+ ArkBrowserExtension( KParts::ReadOnlyPart * parent, const char * name = 0L );
+public slots:
+ void slotOpenURLRequested( const KURL & url );
+};
+
+class ArkStatusBarExtension: public KParts::StatusBarExtension
+{
+ Q_OBJECT
+public:
+ ArkStatusBarExtension( KParts::ReadWritePart * parent );
+ ~ArkStatusBarExtension();
+
+ void setProgress( unsigned long progress );
+ KPushButton* cancelButton() const { return m_cancelButton; }
+
+public slots:
+ void slotSetStatusBarSelectedFiles( const QString & text );
+ void slotSetStatusBarText( const QString & text );
+ void slotSetBusy( const QString & text, bool showCancelButton = false, bool detailedProgress = false );
+ void slotSetReady();
+ void slotProgress();
+
+protected:
+ void setupStatusBar();
+
+private:
+ bool m_bBusy;
+ QLabel *m_pStatusLabelSelect; // How many files are selected
+ QLabel *m_pStatusLabelTotal; // How many files in archive
+ QLabel *m_pBusyText;
+ KPushButton *m_cancelButton; // Cancel an operation
+ KProgress *m_pProgressBar;
+ QTimer *m_pTimer;
+};
+
+
+class ArkPart: public KParts::ReadWritePart
+{
+ Q_OBJECT
+public:
+ ArkPart( QWidget *parentWidget, const char *widgetName, QObject *parent,
+ const char *name, const QStringList &, bool readWrite );
+ virtual ~ArkPart();
+
+ static KAboutData* createAboutData();
+
+public slots:
+ void fixEnables();//rename to slotFixEnables()...
+ void disableActions();
+ void slotFilePopup( const QPoint & pPoint );
+ void file_save_as();
+ bool saveFile();
+ bool openURL( const KURL & url );
+ bool closeURL();
+ void transferStarted( KIO::Job * );
+ void transferCompleted();
+ void transferCanceled( const QString& errMsg );
+ void progressInformation( KIO::Job *, unsigned long );
+ void cancelTransfer();
+
+signals:
+ void fixActionState( const bool & bHaveFiles );
+ void removeRecentURL( const KURL & url );
+ void addRecentURL( const KURL & url );
+
+protected:
+ virtual bool openFile(); //Opening an archive file
+ bool closeArchive();
+ void setupActions();
+ void initialEnables();
+ void init();
+
+private:
+ ArkWidget *awidget;
+ ArkBrowserExtension *m_ext;
+ ArkStatusBarExtension *m_bar;
+
+ KAction *saveAsAction;
+ KAction *addFileAction;
+ KAction *addDirAction;
+ KAction *extractAction;
+ KAction *deleteAction;
+ KAction *selectAllAction;
+ KAction *viewAction;
+ KAction *helpAction;
+ KAction *openWithAction;
+ KAction *deselectAllAction;
+ KAction *invertSelectionAction;
+ KAction *editAction;
+
+ // the following have different enable rules from the above KActions
+ KAction *popupViewAction;
+ KAction *popupOpenWithAction;
+ KToggleAction *showSearchBar;
+
+ KIO::Job *m_job;
+};
+
+#endif // ARK_PART_H