summaryrefslogtreecommitdiffstats
path: root/kpackage/kpackage.h
diff options
context:
space:
mode:
Diffstat (limited to 'kpackage/kpackage.h')
-rw-r--r--kpackage/kpackage.h336
1 files changed, 336 insertions, 0 deletions
diff --git a/kpackage/kpackage.h b/kpackage/kpackage.h
new file mode 100644
index 0000000..07d22da
--- /dev/null
+++ b/kpackage/kpackage.h
@@ -0,0 +1,336 @@
+/*
+** Copyright (C) 1999,2000 Toivo Pedaste <toivo@ucs.uwa.edu.au>
+**
+** This is the main widget for kpackage
+** The whole widget is a DND drop zone where users can drop packages to
+** be installed.
+*/
+
+/*
+** 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 in a file called COPYING; if not, write to
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+** MA 02110-1301, USA.
+*/
+
+/*
+** Bug reports and questions can be sent to kde-devel@kde.org
+*/
+
+
+
+
+#ifndef KPACKAGE_H
+#define KPACKAGE_H
+
+#include "../config.h"
+
+// KDE headers
+#include <kurl.h>
+#include <kmainwindow.h>
+#include <kpPty.h>
+
+class KFileDialog;
+class KProgress;
+class QFrame;
+class KConfig;
+class QLabel;
+class Search;
+class FindF;
+class Options;
+class pkgInterface;
+class managementWidget;
+class KAccel;
+class QDropEevnt;
+class KRecentFilesAction;
+class KAction;
+class kpRun;
+
+#define kpinterfaceN 7
+
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+class KPACKAGE : public QWidget
+{
+ Q_OBJECT
+
+ ///////////// METHODS ------------------------------------------------------
+public:
+ KPACKAGE(KConfig *_config, QWidget *parent);
+ // Constructor
+
+ ~KPACKAGE();
+ // Destructor
+
+ enum { OPEN_READWRITE = 1,
+ OPEN_READONLY = 2,
+ OPEN_INSERT = 4 };
+
+ void setStatus(const QString &s);
+ // this sets the status bar's string to s
+
+ void setPercent(int x);
+ // this set the status bar's progress to x
+
+ QString getStatus();
+ // this gets the current status string on the status bar
+
+ // void setMode(int newmode, pkgInterface *type, int refresh);
+ // This sets the mode to newmode and updates the display accordingly.
+
+ void setup();
+
+ pkgInterface *pkType(const QString &fname);
+ // find type of package
+
+ int typeIndex(pkgInterface *);
+ // convert interface pointer to index
+
+ void openNetFiles(const QStringList &urls, bool install=TRUE);
+ void openNetFile(const KURL & url, bool install=TRUE);
+ // open a file given a URL
+
+ QString fetchNetFile(const KURL & url);
+ // fetch a file given a URL
+
+ static QString getFileName(const KURL & url, QString &cacheName);
+ // return file name, if not local file cachename is name for cache entry
+
+ static bool isFileLocal( const KURL & url );
+ // true if URL refers to local or cached file
+
+protected:
+ void resizeEvent(QResizeEvent *re);
+ // This is called when the widget is resized
+
+ void dropEvent(QDropEvent *);
+ // This is called when a URL has been dropped in the drop zone
+
+ void dragEnterEvent(QDragEnterEvent* e);
+
+private:
+
+ void setupModeWidgets();
+ // This sets up the mode widgets (ie management/installation widgets)
+
+ void destroyModeWidgets();
+ // This deletes the mode widgets (ie management/installation widgets)
+
+ void setupStatusBar();
+ // This sets up the status bar
+
+ void arrangeWidgets();
+ // This arranges the widgets in the window (should be called after a
+ // resize event)
+
+ KFileDialog* getFileDialog(const QString &captiontext);
+
+ ///////////// SLOTS --------------------------------------------------------
+public slots:
+
+// void modeFinished(int mode, pkgInterface *interface, int refresh);
+ // This is called when the mode `mode' has finished. KPACKAGE should
+ // then change modes appropriately
+
+ void fileOpen();
+ // This is called when File->Open is selected from the menu
+
+ void clearMarked();
+ // clear package Marks
+
+ void markAll();
+ // mark all packages in the selected view
+
+ void expandTree();
+ void collapseTree();
+ // expand and collapse file tree
+
+ void fileOpenUrl();
+ // menu item FIle->OpenUrl
+
+ void find();
+ // search for package
+
+ void findf();
+ // search for file in package
+
+ void fileQuit();
+ // This is called when File->Quit is selected from the menu
+
+ void cleanUp();
+ // Cleanup for Exit
+
+ void reload();
+ // reload file package infomation
+
+ ///////////// SIGNALS ------------------------------------------------------
+
+ ///////////// DATA ---------------------------------------------------------
+public:
+
+ enum { Management, Installation } ;
+ // Widget modes
+
+ KConfig *config;
+ // pointer to kconfig object
+
+ managementWidget *management;
+ // management widget
+
+ KURL save_url;
+ // save the URL entered
+
+ FindF *findialog;
+ // find file dialog
+
+private:
+ int mode;
+ // Widget mode
+
+ // Menu item identifiers
+
+ QFrame *statusbar;
+ // the status bar
+
+ KProgress *processProgress;
+ // Progress bar for showing progress
+
+ QLabel *status;
+ // The actual status
+
+ KFileDialog *file_dialog;
+ /// If we load a file from the net this is the corresponding URL
+
+ Search *srchdialog;
+ // find package dialog
+
+};
+
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+class KPKG : public KMainWindow
+{
+ Q_OBJECT
+
+ enum { Tback = 1,
+ Tforward = 2,
+ Tfileopen = 3,
+ Tftout = 4,
+ Tftin = 5,
+ Tfind = 6,
+ Tfindf = 7,
+ Treload = 8
+ };
+
+public:
+
+ KPKG(KConfig *_config);
+ // Constructor
+
+ void add_recent_file(const QString &newfile);
+ // keep list of files accessed
+
+ void writeSettings();
+ // write config settings
+
+ void saveProperties(KConfig *config);
+ void readProperties(KConfig *config);
+ // save and read restart sstate
+
+ void disableMenu();
+ void enableMenu();
+ // enable/deisable menu elements
+
+ bool prop_restart;
+ // indicates a restart from saved state
+
+ Options *optiondialog;
+ // Options dialog
+
+ KConfig *config ;
+ // Saved config information
+
+ void disableNext();
+ void enableNext();
+ void disablePrevious();
+ void enablePrevious();
+ // Control next and previous commands
+
+
+private:
+
+ void setupMenu();
+ // This sets up the menubar
+
+ QStrList recent_files;
+
+ KAction *pack_open;
+ KAction *pack_find;
+ KAction *pack_findf;
+ KAction *kpack_reload;
+ KAction *pack_prev;
+ KAction *pack_next;
+ KAction *pack_install;
+ KAction *pack_uninstall;
+
+ int toolID, selectID;
+ // refrences to toolbar and menu items
+
+ bool hide_toolbar;
+ // don't display toolbar
+
+ KRecentFilesAction *recent;
+
+public slots:
+
+ void openRecent(const KURL& url);
+ // opens file from list of recently opened ones
+
+ void setOptions();
+ // set options
+
+ void saveSettings();
+ // save config
+
+ void configureToolBars();
+
+ void clearPCache();
+ // Clear package cache
+
+ void clearDCache();
+ // Clear directory cache
+
+private slots:
+ void slotNewToolbarConfig();
+
+protected:
+ bool queryClose ();
+};
+
+//////////////////////////////////////////////////////////////////////////////
+
+extern KPKG *kpkg;
+extern KPACKAGE *kpackage;
+extern kpPty *kpty;
+extern kpRun *kprun;
+extern kpRun *kpstart;
+
+extern QString hostName;
+
+extern pkgInterface *kpinterface[];
+
+void KpMsg(const QString &lab, const QString &msg, bool stop);
+void KpMsgE(const QString &msg, bool stop = FALSE);
+#endif
+