summaryrefslogtreecommitdiffstats
path: root/kdirstat/kdirstatapp.h
diff options
context:
space:
mode:
Diffstat (limited to 'kdirstat/kdirstatapp.h')
-rw-r--r--kdirstat/kdirstatapp.h421
1 files changed, 421 insertions, 0 deletions
diff --git a/kdirstat/kdirstatapp.h b/kdirstat/kdirstatapp.h
new file mode 100644
index 0000000..0f8b875
--- /dev/null
+++ b/kdirstat/kdirstatapp.h
@@ -0,0 +1,421 @@
+/*
+ * File name: kdirstatapp.h
+ * Summary: The KDirStat application - menu bar, tool bar, ...
+ * License: GPL - See file COPYING for details.
+ *
+ * Author: Stefan Hundhammer <sh@suse.de>
+ * Parts auto-generated by KDevelop
+ *
+ * Updated: 2004-12-06
+ */
+
+
+#ifndef KDirStatApp_h
+#define KDirStatApp_h
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <kapp.h>
+#include <kmainwindow.h>
+#include "kdirtree.h"
+
+
+// Forward declarations
+class QPopupMenu;
+class QSplitter;
+
+class KAction;
+class KActivityTracker;
+class KFeedbackDialog;
+class KFeedbackDialog;
+class KFeedbackQuestion;
+class KPacMan;
+class KPacMan;
+class KRecentFilesAction;
+class KToggleAction;
+
+namespace KDirStat
+{
+ class KCleanupCollection;
+ class KDirTreeView;
+ class KDirTreeViewItem;
+ class KFileInfo;
+ class KSettingsDialog;
+ class KTreemapView;
+ class KTreemapTile;
+}
+
+using namespace KDirStat;
+
+
+/**
+ * The base class for KDirStat application windows. It sets up the main window
+ * and reads the config file as well as providing a menubar, toolbar and
+ * statusbar. An instance of KDirStatView creates your center view, which is
+ * connected to the window's Doc object. KDirStatApp reimplements the methods
+ * that KMainWindow provides for main window handling and supports full
+ * session management as well as using KActions.
+ *
+ * @see KMainWindow
+ * @see KApplication
+ * @see KConfig
+ *
+ * @author Source Framework Automatically Generated by KDevelop,
+ * (c) The KDevelop Team.
+ *
+ * @version KDevelop version 1.2 code generation
+ **/
+class KDirStatApp : public KMainWindow
+{
+ Q_OBJECT
+
+public:
+
+ /**
+ * Construtor of KDirStatApp, calls all init functions to create the
+ * application.
+ **/
+ KDirStatApp( QWidget* parent=0, const char* name=0 );
+
+ /**
+ * Destructor.
+ **/
+ virtual ~KDirStatApp();
+
+ /**
+ * Open an URL specified by command line argument.
+ **/
+ void openURL( const KURL & url );
+
+ /**
+ * Return the main window's @ref KDirTreeView.
+ **/
+ KDirTreeView * treeView() const { return _treeView; }
+
+ /**
+ * Returns the main window's @ref KTreemapView or 0 if there is none.
+ *
+ * Caution: Do not try to cache this value. The treemap view is destroyed
+ * and re-created frequently!
+ **/
+ KTreemapView * treemapView() const { return _treemapView; }
+
+
+public slots:
+
+ /**
+ * Open a directory tree.
+ **/
+ void fileAskOpenDir();
+
+ /**
+ * Open a (possibly remote) directory tree.
+ **/
+ void fileAskOpenUrl();
+
+ /**
+ * Refresh the entire directory tree, i.e. re-read everything from disk.
+ **/
+ void refreshAll();
+
+ /**
+ * Refresh the selected subtree, i.e. re-read it from disk.
+ **/
+ void refreshSelected();
+
+ /**
+ * Refresh the entire directory tree, i.e. re-read everything from disk.
+ **/
+ void stopReading();
+
+ /**
+ * Open a directory tree from the "recent" menu.
+ **/
+ void fileOpenRecent( const KURL& url );
+
+ /**
+ * asks for saving if the file is modified, then closes the current file
+ * and window
+ **/
+ void fileCloseDir();
+
+ /**
+ * put the marked text/object into the clipboard
+ **/
+ void editCopy();
+
+ /**
+ * Notification that the view's selection has changed.
+ * Enable/disable user actions as appropriate.
+ **/
+ void selectionChanged( KFileInfo *selection );
+
+ /**
+ * Ask user what application to open a file or directory with
+ **/
+ void cleanupOpenWith();
+
+ /**
+ * Toggle tool bar
+ **/
+ void toggleToolBar();
+
+ /**
+ * Toggle status bar
+ **/
+ void toggleStatusBar();
+
+ /**
+ * Toggle treemap view
+ **/
+ void toggleTreemapView();
+
+ /**
+ * Zoom in the treemap at the currently selected tile.
+ **/
+ void treemapZoomIn();
+
+ /**
+ * Zoom out the treemap after zooming in.
+ **/
+ void treemapZoomOut();
+
+ /**
+ * Select the parent of the currently selected treemap tile.
+ **/
+ void treemapSelectParent();
+
+ /**
+ * Rebuild the treemap.
+ **/
+ void treemapRebuild();
+
+ /**
+ * Invoke online help about treemaps.
+ **/
+ void treemapHelp();
+
+ /**
+ * Open settings dialog
+ **/
+ void preferences();
+
+ /**
+ * Changes the statusbar contents for the standard label permanently, used
+ * to indicate current actions.
+ *
+ * @param text the text that is displayed in the statusbar
+ **/
+ void statusMsg( const QString &text );
+
+ /**
+ * Opens a context menu for tree view items.
+ **/
+ void contextMenu( KDirTreeViewItem * item, const QPoint &pos );
+
+ /**
+ * Opens a context menu for treemap tiles.
+ **/
+ void contextMenu( KTreemapTile * tile, const QPoint &pos );
+
+ /**
+ * Create a treemap view. This makes only sense after a directory tree is
+ * completely read.
+ **/
+ void createTreemapView();
+
+ /**
+ * Delete an existing treemap view if there is one.
+ **/
+ void deleteTreemapView();
+
+ /**
+ * Sends a user feedback mail.
+ **/
+ void sendFeedbackMail();
+
+ /**
+ * Read configuration for the main window.
+ **/
+ void readMainWinConfig();
+
+ /**
+ * Save the main window's configuration.
+ **/
+ void saveMainWinConfig();
+
+ /**
+ * Revert all cleanups to default values.
+ **/
+ void revertCleanupsToDefaults();
+
+ /**
+ * For the settings dialog only: Return the internal cleanup collection.
+ **/
+ KCleanupCollection * cleanupCollection() { return _cleanupCollection; }
+
+ /**
+ * Initialize @ref KPacMan animation in the tool bar.
+ **/
+ void initPacMan( bool enablePacMan = true );
+
+ /**
+ * Returns true if the pacman animation in the tool bar is enabled, false
+ * otherwise.
+ **/
+ bool pacManEnabled() const { return _pacMan != 0; }
+
+ /**
+ * Ask user if he wouldn't like to rate this program.
+ **/
+ void askForFeedback();
+
+ /**
+ * Notification that a feedback mail has been sent, thus don't remind
+ * the user any more.
+ **/
+ void feedbackMailSent();
+
+ /**
+ * Update enabled/disabled state of the user actions.
+ **/
+ void updateActions();
+
+
+signals:
+
+ /**
+ * Emitted when the configuration is to be read - other than at program
+ * startup / object creation where each object is responsible for reading
+ * its configuraton at an appropriate time.
+ **/
+ void readConfig();
+
+ /**
+ * Emitted when the configuration is to be saved.
+ **/
+ void saveConfig();
+
+
+protected:
+
+ /**
+ * Initialize the KActions of the application.
+ **/
+ void initActions();
+
+ /**
+ * Initialize @ref KCleanup actions.
+ **/
+ void initCleanups();
+
+ /**
+ * Set up status bar for the main window by initializing a status label.
+ **/
+ void initStatusBar();
+
+ /**
+ * Set up the activity tracker.
+ **/
+ void initActivityTracker();
+
+ /**
+ * Called when a main window is to be closed.
+ *
+ * Returns "true" when closing this window is OK, "false" to abort closing.
+ **/
+ virtual bool queryClose();
+
+ /**
+ * Called when the application is to be shut down alltogether, i.e. when
+ * all windows are to be closed.
+ *
+ * Returns "true" when exiting is OK, "false" otherwise.
+ **/
+ virtual bool queryExit();
+
+ /**
+ * Save the window properties for each open window during session end to
+ * the session config file, including saving the currently opened file by a
+ * temporary filename provided by KApplication.
+ *
+ * @see KTMainWindow#saveProperties
+ **/
+ virtual void saveProperties( KConfig * config );
+
+ /**
+ * Reads session config file and restore application state including the
+ * last opened files and documents by reading the temporary files saved by
+ * saveProperties().
+ *
+ * @see KTMainWindow#readProperties
+ **/
+ virtual void readProperties( KConfig * config );
+
+
+ /**
+ * Add a list of features of this program to a feedback question
+ **/
+ void addFeatureList( KFeedbackQuestion * question );
+
+ /**
+ * Check if the user should be reminded to submit feedback.
+ **/
+ bool doFeedbackReminder();
+
+
+ //
+ // Data members
+ //
+
+ // Widgets
+
+ QSplitter * _splitter;
+ KDirTreeView * _treeView;
+ KTreemapView * _treemapView;
+ KPacMan * _pacMan;
+ QWidget * _pacManDelimiter;
+ QPopupMenu * _treeViewContextMenu;
+ QPopupMenu * _treemapContextMenu;
+ KDirStat::KSettingsDialog * _settingsDialog;
+ KFeedbackDialog * _feedbackDialog;
+ KActivityTracker * _activityTracker;
+
+
+ // Actions
+
+ KAction * _fileAskOpenDir;
+ KAction * _fileAskOpenUrl;
+ KRecentFilesAction * _fileOpenRecent;
+ KAction * _fileCloseDir;
+ KAction * _fileRefreshAll;
+ KAction * _fileRefreshSelected;
+ KAction * _fileContinueReadingAtMountPoint;
+ KAction * _fileStopReading;
+ KAction * _fileQuit;
+ KAction * _editCopy;
+ KAction * _cleanupOpenWith;
+ KAction * _treemapZoomIn;
+ KAction * _treemapZoomOut;
+ KAction * _treemapSelectParent;
+ KAction * _treemapRebuild;
+
+ KAction * _reportMailToOwner;
+ KAction * _helpSendFeedbackMail;
+ KToggleAction * _showToolBar;
+ KToggleAction * _showStatusBar;
+ KToggleAction * _showTreemapView;
+
+ KCleanupCollection * _cleanupCollection;
+
+
+ // Misc
+
+ int _treemapViewHeight;
+};
+
+
+#endif // KDirStatApp_h