• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdesdk API Reference
  • KDE Home
  • Contact Us
 

kompare

  • sources
  • kde-4.14
  • kdesdk
  • kompare
  • komparepart
kompare_part.h
Go to the documentation of this file.
1 /***************************************************************************
2  kompare_part.h
3  --------------
4  begin : Sun Mar 4 2001
5  Copyright 2001-2005,2009 Otto Bruggeman <bruggie@gmail.com>
6  Copyright 2001-2003 John Firebaugh <jfirebaugh@kde.org>
7  Copyright 2004 Jeff Snyder <jeff@caffeinated.me.uk>
8  Copyright 2007-2011 Kevin Kofler <kevin.kofler@chello.at>
9 ****************************************************************************/
10 
11 /***************************************************************************
12 **
13 ** This program is free software; you can redistribute it and/or modify
14 ** it under the terms of the GNU General Public License as published by
15 ** the Free Software Foundation; either version 2 of the License, or
16 ** (at your option) any later version.
17 **
18 ***************************************************************************/
19 
20 #ifndef KOMPAREPART_H
21 #define KOMPAREPART_H
22 
23 #include <kparts/factory.h>
24 #include <kparts/part.h>
25 #include <QVariantList>
26 #include <kompare.h>
27 
28 #include "kompareinterface.h"
29 
30 class QPrinter;
31 class QWidget;
32 
33 class KTemporaryFile;
34 class KUrl;
35 class KAboutData;
36 class KAction;
37 
38 namespace Diff2 {
39 class Difference;
40 class DiffModel;
41 class DiffModelList;
42 class KompareModelList;
43 }
44 class DiffSettings;
45 class ViewSettings;
46 class KompareSplitter;
47 class KompareView;
48 
58 class KomparePart : public KParts::ReadWritePart,
59  public KompareInterface
60 {
61  Q_OBJECT
62  Q_INTERFACES(KompareInterface)
63 public:
67  KomparePart( QWidget *parentWidget, QObject *parent, const QVariantList & /*args*/);
68 
72  virtual ~KomparePart();
73 
74  // Sessionmanagement stuff, added to the kompare iface
75  // because they are not in the Part class where they belong
76  // Should be added when bic changes are allowed again (kde 4.0)
77  virtual int readProperties( KConfig *config );
78  virtual int saveProperties( KConfig *config );
79  // this one is called when the shell_app is about to close.
80  // we need it now to save the properties of the part when apps don't (can't)
81  // use the readProperties and saveProperties methods
82  virtual bool queryClose();
83 
84  // Do we really want to expose this ???
85  const Diff2::KompareModelList* model() const { return m_modelList; };
86 
87  static KAboutData *createAboutData();
88 
89 public:
90  // Reimplemented from the KompareInterface
94  virtual bool openDiff( const KUrl& diffUrl );
95 
97  virtual bool openDiff( const QString& diffOutput );
98 
100  virtual bool openDiff3( const KUrl& diff3URL );
101 
103  virtual bool openDiff3( const QString& diff3Output );
104 
106  virtual void compare( const KUrl& sourceFile, const KUrl& destinationFile );
107 
109  virtual void compareFileString( const KUrl & sourceFile, const QString & destination);
110 
112  virtual void compareStringFile( const QString & source, const KUrl & destinationFile);
113 
115  virtual void compareFiles( const KUrl& sourceFile, const KUrl& destinationFile );
116 
118  virtual void compareDirs ( const KUrl& sourceDir, const KUrl& destinationDir );
119 
121  virtual void compare3Files( const KUrl& originalFile, const KUrl& changedFile1, const KUrl& changedFile2 );
122 
124  virtual void openFileAndDiff( const KUrl& file, const KUrl& diffFile );
125 
127  virtual void openDirAndDiff ( const KUrl& dir, const KUrl& diffFile );
128 
130  virtual void setEncoding( const QString& encoding );
131 
132  // This is the interpart interface, it is signal and slot based so no "real" interface here
133  // All you have to do is connect the parts from your application.
134  // These just point to their counterpart in the KompareModelList or get called from their
135  // counterpart in KompareModelList.
136 signals:
137  void modelsChanged( const Diff2::DiffModelList* models );
138 
139  void setSelection( const Diff2::DiffModel* model, const Diff2::Difference* diff );
140  void setSelection( const Diff2::Difference* diff );
141 
142  void selectionChanged( const Diff2::DiffModel* model, const Diff2::Difference* diff );
143  void selectionChanged( const Diff2::Difference* diff );
144 
145  void applyDifference( bool apply );
146  void applyAllDifferences( bool apply );
147  void applyDifference( const Diff2::Difference*, bool apply );
148 
149  void configChanged();
150 
151  /*
152  ** This is emitted when a difference is clicked in the kompare view. You can connect to
153  ** it so you can use it to jump to this particular line in the editor in your app.
154  */
155  void differenceClicked( int lineNumber );
156 
157  // Stuff that can probably be removed by putting it in the part where it belongs in my opinion
158 public slots:
160  bool saveAll();
161 
163  void saveDiff();
164 
166  void slotFilePrint();
167  void slotFilePrintPreview();
168 
169 signals:
170  void appliedChanged();
171  void diffURLChanged();
172  void kompareInfo( Kompare::Info* info );
173  void setStatusBarModelInfo( int modelIndex, int differenceIndex, int modelCount, int differenceCount, int appliedCount );
174 // void setStatusBarText( const QString& text );
175  void diffString(const QString&);
176 
177 protected:
183  virtual bool openFile();
184  // ... Uhm we return true without saving ???
185  virtual bool saveFile() { return true; };
186 
187  // patchFile
188  bool patchFile(KUrl&);
189  bool patchDir();
190 
191 protected slots:
192  void slotSetStatus( Kompare::Status status );
193  void slotShowError( QString error );
194 
195  void slotSwap();
196  void slotShowDiffstats();
197  void slotRefreshDiff();
198  void optionsPreferences();
199 
200  void updateActions();
201  void updateCaption();
202  void updateStatus();
203  void compareAndUpdateAll();
204 
205  void slotPaintRequested( QPrinter* );
206 
207 private:
208  void cleanUpTemporaryFiles();
209  void setupActions();
210  bool exists( const QString& url );
211  bool isDirectory( const KUrl& url );
212  // FIXME (like in cpp file not urgent) Replace with enum, cant find a proper
213  // name now but it is private anyway so can not be used from outside
214  bool fetchURL( const KUrl& url, bool isSource );
215 
216 private:
217  // Uhm why were these static again ???
218  // Ah yes, so multiple instances of kompare use the
219  // same settings after one of them changes them
220  static ViewSettings* m_viewSettings;
221  static DiffSettings* m_diffSettings;
222 
223  Diff2::KompareModelList* m_modelList;
224 
225  KompareView* m_view;
226  KompareSplitter* m_splitter;
227 
228  KAction* m_saveAll;
229  KAction* m_saveDiff;
230  KAction* m_swap;
231  KAction* m_diffStats;
232  KAction* m_diffRefresh;
233  KAction* m_print;
234  KAction* m_printPreview;
235 
236  KTemporaryFile* m_tempDiff;
237 
238  struct Kompare::Info m_info;
239 };
240 
241 #endif // KOMPAREPART_H
KomparePart::model
const Diff2::KompareModelList * model() const
Definition: kompare_part.h:85
KomparePart::createAboutData
static KAboutData * createAboutData()
Definition: kompare_part.cpp:632
KomparePart::applyAllDifferences
void applyAllDifferences(bool apply)
QWidget
KomparePart::saveFile
virtual bool saveFile()
Definition: kompare_part.h:185
KomparePart::setEncoding
virtual void setEncoding(const QString &encoding)
Reimplementing this because this one knows more about the real part then the interface.
Definition: kompare_part.cpp:203
QPrinter
KomparePart::updateCaption
void updateCaption()
Definition: kompare_part.cpp:664
KomparePart::compareAndUpdateAll
void compareAndUpdateAll()
Definition: kompare_part.cpp:728
KomparePart::openDiff
virtual bool openDiff(const KUrl &diffUrl)
Open and parse the diff file at diffUrl.
Definition: kompare_part.cpp:209
KomparePart::applyDifference
void applyDifference(bool apply)
KomparePart::diffString
void diffString(const QString &)
KomparePart::slotRefreshDiff
void slotRefreshDiff()
Definition: kompare_part.cpp:792
KomparePart
This is a "Part".
Definition: kompare_part.h:58
KomparePart::openFile
virtual bool openFile()
This is the method that gets called when the file is opened, when using openURL( const KUrl& ) or in ...
Definition: kompare_part.cpp:511
KomparePart::slotFilePrintPreview
void slotFilePrintPreview()
Definition: kompare_part.cpp:601
KomparePart::setStatusBarModelInfo
void setStatusBarModelInfo(int modelIndex, int differenceIndex, int modelCount, int differenceCount, int appliedCount)
KomparePart::openFileAndDiff
virtual void openFileAndDiff(const KUrl &file, const KUrl &diffFile)
This will show the file and the file with the diff applied.
Definition: kompare_part.cpp:476
KompareInterface
Definition: kompareinterface.h:32
KomparePart::~KomparePart
virtual ~KomparePart()
Destructor.
Definition: kompare_part.cpp:162
KomparePart::modelsChanged
void modelsChanged(const Diff2::DiffModelList *models)
KomparePart::readProperties
virtual int readProperties(KConfig *config)
Warning this should be in class Part in KDE 4.0, not here ! Around that time the methods will disappe...
Definition: kompare_part.cpp:930
KomparePart::compareFiles
virtual void compareFiles(const KUrl &sourceFile, const KUrl &destinationFile)
Compare, with diff, source with destination.
Definition: kompare_part.cpp:436
KomparePart::slotSetStatus
void slotSetStatus(Kompare::Status status)
Definition: kompare_part.cpp:641
QObject
KomparePart::patchDir
bool patchDir()
KomparePart::optionsPreferences
void optionsPreferences()
Definition: kompare_part.cpp:945
KomparePart::compareFileString
virtual void compareFileString(const KUrl &sourceFile, const QString &destination)
Compare a Source file to a custom Destination string.
Definition: kompare_part.cpp:406
KomparePart::diffURLChanged
void diffURLChanged()
QString
KompareSplitter
Definition: komparesplitter.h:40
KomparePart::configChanged
void configChanged()
KomparePart::KomparePart
KomparePart(QWidget *parentWidget, QObject *parent, const QVariantList &)
Default constructor.
Definition: kompare_part.cpp:65
kompareinterface.h
KomparePart::setSelection
void setSelection(const Diff2::DiffModel *model, const Diff2::Difference *diff)
KomparePart::compare
virtual void compare(const KUrl &sourceFile, const KUrl &destinationFile)
Compare, with diff, source with destination.
Definition: kompare_part.cpp:387
KomparePart::compareStringFile
virtual void compareStringFile(const QString &source, const KUrl &destinationFile)
Compare a custom Source string to a Destination file.
Definition: kompare_part.cpp:421
KomparePart::slotPaintRequested
void slotPaintRequested(QPrinter *)
Definition: kompare_part.cpp:612
KomparePart::compare3Files
virtual void compare3Files(const KUrl &originalFile, const KUrl &changedFile1, const KUrl &changedFile2)
Compare, with diff3, originalFile with changedFile1 and changedFile2.
Definition: kompare_part.cpp:468
KomparePart::queryClose
virtual bool queryClose()
Warning this should be in class ReadWritePart in KDE 4.0, not here ! Around that time the method will...
Definition: kompare_part.cpp:907
KomparePart::differenceClicked
void differenceClicked(int lineNumber)
KompareView
Definition: kompareview.h:27
KomparePart::slotShowError
void slotShowError(QString error)
Definition: kompare_part.cpp:756
KomparePart::slotFilePrint
void slotFilePrint()
To enable printing, the part has the only interesting printable content so putting it here...
Definition: kompare_part.cpp:586
ViewSettings
Definition: viewsettings.h:29
KomparePart::slotShowDiffstats
void slotShowDiffstats()
Definition: kompare_part.cpp:820
KomparePart::patchFile
bool patchFile(KUrl &)
KomparePart::updateActions
void updateActions()
Definition: kompare_part.cpp:192
KomparePart::compareDirs
virtual void compareDirs(const KUrl &sourceDir, const KUrl &destinationDir)
Compare, with diff, source with destination.
Definition: kompare_part.cpp:453
KomparePart::updateStatus
void updateStatus()
Definition: kompare_part.cpp:689
KomparePart::saveDiff
void saveDiff()
Save the results of a comparison as a diff file.
Definition: kompare_part.cpp:528
KomparePart::saveProperties
virtual int saveProperties(KConfig *config)
Definition: kompare_part.cpp:938
KomparePart::openDirAndDiff
virtual void openDirAndDiff(const KUrl &dir, const KUrl &diffFile)
This will show the directory and the directory with the diff applied.
Definition: kompare_part.cpp:490
KomparePart::selectionChanged
void selectionChanged(const Diff2::DiffModel *model, const Diff2::Difference *diff)
KomparePart::saveAll
bool saveAll()
Save all destinations.
Definition: kompare_part.cpp:519
KomparePart::appliedChanged
void appliedChanged()
KomparePart::slotSwap
void slotSwap()
Definition: kompare_part.cpp:761
KomparePart::kompareInfo
void kompareInfo(Kompare::Info *info)
KomparePart::openDiff3
virtual bool openDiff3(const KUrl &diff3URL)
Open and parse the diff3 file at diff3Url.
Definition: kompare_part.cpp:255
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:40:01 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kompare

Skip menu "kompare"
  • Main Page
  • Namespace List
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdesdk API Reference

Skip menu "kdesdk API Reference"
  • kapptemplate
  • kcachegrind
  • kompare
  • lokalize
  • umbrello
  •   umbrello

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal