summaryrefslogtreecommitdiffstats
path: root/kompare/kompare_shell.h
diff options
context:
space:
mode:
Diffstat (limited to 'kompare/kompare_shell.h')
-rw-r--r--kompare/kompare_shell.h149
1 files changed, 149 insertions, 0 deletions
diff --git a/kompare/kompare_shell.h b/kompare/kompare_shell.h
new file mode 100644
index 00000000..be3bb150
--- /dev/null
+++ b/kompare/kompare_shell.h
@@ -0,0 +1,149 @@
+/***************************************************************************
+ kompare_shell.h - description
+ -------------------
+ begin : Sun Mar 4 2001
+ copyright : (C) 2001-2003 by Otto Bruggeman
+ and John Firebaugh
+ email : otto.bruggeman@home.nl
+ jfirebaugh@kde.org
+****************************************************************************/
+
+/***************************************************************************
+**
+** 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.
+**
+***************************************************************************/
+
+#ifndef KOMPARESHELL_H
+#define KOMPARESHELL_H
+
+#include <kapplication.h>
+#include <kparts/dockmainwindow.h>
+
+#include "kompare.h"
+
+class KToggleAction;
+
+class KSqueezedTextLabel;
+class KomparePart;
+class KompareNavTreePart;
+
+namespace KTextEditor {
+ class Document;
+ class EditInterface;
+ class View;
+}
+
+/**
+* This is the application "Shell". It has a menubar, toolbar, and
+* statusbar but relies on the "Part" to do all the real work.
+*
+* Adapted the shell a bit so it now handles seperate view and navigation parts
+*
+* @short Application Shell
+* @author John Firebaugh <jfirebaugh@kde.org>
+* @author Otto Bruggeman <bruggie@home.nl>
+* @version 3.2.90
+*/
+class KompareShell : public KParts::DockMainWindow
+{
+ Q_OBJECT
+public:
+ /**
+ * Default Constructor
+ */
+ KompareShell();
+
+ /**
+ * Default Destructor
+ */
+ virtual ~KompareShell();
+
+ /**
+ * Use this method to load whatever file/URL you have
+ */
+ void openDiff( const KURL& url );
+
+ /**
+ * Use this method to load the diff from stdin
+ */
+ void openStdin();
+
+ /**
+ * Use this method to compare 2 URLs (files or directories)
+ */
+ void compare( const KURL& source, const KURL& destination );
+
+ /**
+ * Use this method to blend diff into url1 (file or directory)
+ */
+ void blend( const KURL& url1, const KURL& diff );
+
+public slots:
+ void slotUpdateStatusBar( int modelIndex, int differenceIndex, int modelCount, int differenceCount, int appliedCount );
+ void setCaption( const QString& caption );
+
+ /**
+ * This method only exists because i cant make main a frined of this class
+ */
+ KomparePart* viewPart() const { return m_viewPart; }
+
+protected:
+ virtual bool queryClose();
+
+ /**
+ * This method is called when it is time for the app to save its
+ * properties for session management purposes.
+ */
+ void saveProperties(KConfig *);
+
+ /**
+ * This method is called when this app is restored. The KConfig
+ * object points to the session management config file that was saved
+ * with @ref saveProperties
+ */
+ void readProperties(KConfig *);
+
+private slots:
+ void slotSetStatusBarText( const QString& text );
+ void slotFileOpen();
+ void slotFileCompareFiles();
+ void slotFileBlendURLAndDiff();
+ void slotShowTextView();
+ void slotFileClose();
+ void optionsConfigureKeys();
+ void optionsConfigureToolbars();
+ void slotSetDiffString( const QString& diffString );
+ void newToolbarConfig();
+
+private:
+ void setupAccel();
+ void setupActions();
+ void setupStatusBar();
+
+private:
+ KURL m_sourceURL;
+ KURL m_destinationURL;
+ KURL m_diffURL;
+
+ KomparePart* m_viewPart;
+ KompareNavTreePart* m_navTreePart;
+ KTextEditor::Document* m_textViewPart;
+ KTextEditor::View* m_textView;
+ KTextEditor::EditInterface* m_textEditIface;
+
+ KDockWidget* m_textViewWidget;
+ KDockWidget* m_mainViewDock;
+ KDockWidget* m_navTreeDock;
+
+ KToggleAction* m_showTextView;
+
+ enum Kompare::Mode m_mode;
+ // This is the statusbarwidget for displaying the general stuff
+ KSqueezedTextLabel* m_generalLabel;
+};
+
+#endif // KOMPARE_H