joachim99@8
|
1 /***************************************************************************
|
joachim99@8
|
2 kdiff3.h - description
|
joachim99@8
|
3 -------------------
|
joachim99@8
|
4 begin : Don Jul 11 12:31:29 CEST 2002
|
joachim99@77
|
5 copyright : (C) 2002-2007 by Joachim Eibl
|
joachim99@69
|
6 email : joachim.eibl at gmx.de
|
joachim99@8
|
7 ***************************************************************************/
|
joachim99@8
|
8
|
joachim99@8
|
9 /***************************************************************************
|
joachim99@8
|
10 * *
|
joachim99@8
|
11 * This program is free software; you can redistribute it and/or modify *
|
joachim99@8
|
12 * it under the terms of the GNU General Public License as published by *
|
joachim99@8
|
13 * the Free Software Foundation; either version 2 of the License, or *
|
joachim99@8
|
14 * (at your option) any later version. *
|
joachim99@8
|
15 * *
|
joachim99@8
|
16 ***************************************************************************/
|
joachim99@8
|
17
|
joachim99@8
|
18 #ifndef KDIFF3_H
|
joachim99@8
|
19 #define KDIFF3_H
|
joachim99@8
|
20
|
joachim99@8
|
21 #include "diff.h"
|
joachim99@8
|
22
|
joachim99@80
|
23 #include <config-kdiff3.h>
|
joachim99@8
|
24
|
joachim99@8
|
25 // include files for Qt
|
joachim99@75
|
26 #include <QSplitter>
|
joachim99@75
|
27 #include <QScrollBar>
|
joachim99@8
|
28
|
joachim99@8
|
29 // include files for KDE
|
joachim99@8
|
30 #include <kapplication.h>
|
joachim99@8
|
31 #include <kmainwindow.h>
|
joachim99@8
|
32 #include <kaction.h>
|
joachim99@8
|
33 #include <kurl.h>
|
joachim99@8
|
34 #include <kparts/mainwindow.h>
|
joachim99@80
|
35 #include <ktoggleaction.h>
|
joachim99@8
|
36
|
joachim99@8
|
37
|
joachim99@8
|
38 // forward declaration of the KDiff3 classes
|
joachim99@8
|
39 class OptionDialog;
|
joachim99@8
|
40 class FindDialog;
|
joachim99@69
|
41 class ManualDiffHelpDialog;
|
joachim99@69
|
42 class DiffTextWindow;
|
joachim99@69
|
43 class DiffTextWindowFrame;
|
joachim99@69
|
44 class MergeResultWindow;
|
joachim99@75
|
45 class WindowTitleWidget;
|
joachim99@69
|
46 class Overview;
|
joachim99@8
|
47
|
joachim99@8
|
48 class QScrollBar;
|
joachim99@8
|
49 class QSplitter;
|
joachim99@8
|
50
|
joachim99@8
|
51
|
joachim99@8
|
52 class KDiff3Part;
|
joachim99@8
|
53 class DirectoryMergeWindow;
|
joachim99@8
|
54 class DirectoryMergeInfo;
|
joachim99@8
|
55
|
joachim99@8
|
56
|
joachim99@68
|
57 class ReversibleScrollBar : public QScrollBar
|
joachim99@68
|
58 {
|
joachim99@68
|
59 Q_OBJECT
|
joachim99@68
|
60 bool* m_pbRightToLeftLanguage;
|
joachim99@68
|
61 int m_realVal;
|
joachim99@68
|
62 public:
|
joachim99@75
|
63 ReversibleScrollBar( Qt::Orientation o, bool* pbRightToLeftLanguage )
|
joachim99@75
|
64 : QScrollBar( o )
|
joachim99@68
|
65 {
|
joachim99@68
|
66 m_pbRightToLeftLanguage=pbRightToLeftLanguage;
|
joachim99@68
|
67 m_realVal=0;
|
joachim99@68
|
68 connect( this, SIGNAL(valueChanged(int)), this, SLOT(slotValueChanged(int)));
|
joachim99@68
|
69 }
|
joachim99@68
|
70 void setAgain(){ setValue(m_realVal); }
|
joachim99@68
|
71 public slots:
|
joachim99@68
|
72 void slotValueChanged(int i)
|
joachim99@68
|
73 {
|
joachim99@68
|
74 m_realVal = i;
|
joachim99@68
|
75 if(m_pbRightToLeftLanguage && *m_pbRightToLeftLanguage)
|
joachim99@75
|
76 m_realVal = maximum()-(i-minimum());
|
joachim99@68
|
77 emit valueChanged2(m_realVal);
|
joachim99@68
|
78 }
|
joachim99@68
|
79 void setValue(int i)
|
joachim99@68
|
80 {
|
joachim99@68
|
81 if(m_pbRightToLeftLanguage && *m_pbRightToLeftLanguage)
|
joachim99@75
|
82 QScrollBar::setValue( maximum()-(i-minimum()) );
|
joachim99@68
|
83 else
|
joachim99@68
|
84 QScrollBar::setValue( i );
|
joachim99@68
|
85 }
|
joachim99@68
|
86 signals:
|
joachim99@68
|
87 void valueChanged2(int);
|
joachim99@68
|
88 };
|
joachim99@68
|
89
|
joachim99@8
|
90 class KDiff3App : public QSplitter
|
joachim99@8
|
91 {
|
joachim99@8
|
92 Q_OBJECT
|
joachim99@8
|
93
|
joachim99@8
|
94 public:
|
joachim99@69
|
95 /** constructor of KDiff3App, calls all init functions to create the application.
|
joachim99@8
|
96 */
|
joachim99@8
|
97 KDiff3App( QWidget* parent, const char* name, KDiff3Part* pKDiff3Part );
|
joachim99@8
|
98 ~KDiff3App();
|
joachim99@8
|
99
|
joachim99@8
|
100 bool isPart();
|
joachim99@8
|
101
|
joachim99@8
|
102 /** initializes the KActions of the application */
|
joachim99@8
|
103 void initActions( KActionCollection* );
|
joachim99@8
|
104
|
joachim99@8
|
105 /** save general Options like all bar positions and status as well as the geometry
|
joachim99@8
|
106 and the recent file list to the configuration file */
|
joachim99@80
|
107 void saveOptions( KSharedConfigPtr );
|
joachim99@8
|
108
|
joachim99@8
|
109 /** read general Options again and initialize all variables like the recent file list */
|
joachim99@80
|
110 void readOptions( KSharedConfigPtr );
|
joachim99@8
|
111
|
joachim99@8
|
112 // Finish initialisation (virtual, so that it can be called from the shell too.)
|
joachim99@69
|
113 virtual void completeInit(const QString& fn1="", const QString& fn2="", const QString& fn3="");
|
joachim99@8
|
114
|
joachim99@8
|
115 /** queryClose is called by KMainWindow on each closeEvent of a window. Against the
|
joachim99@8
|
116 * default implementation (only returns true), this calles saveModified() on the document object to ask if the document shall
|
joachim99@8
|
117 * be saved if Modified; on cancel the closeEvent is rejected.
|
joachim99@8
|
118 * @see KMainWindow#queryClose
|
joachim99@8
|
119 * @see KMainWindow#closeEvent
|
joachim99@8
|
120 */
|
joachim99@8
|
121 virtual bool queryClose();
|
joachim99@69
|
122 virtual bool isFileSaved();
|
joachim99@80
|
123 virtual bool isDirComparison();
|
joachim99@8
|
124
|
joachim99@69
|
125 signals:
|
joachim99@69
|
126 void createNewInstance( const QString& fn1, const QString& fn2, const QString& fn3 );
|
joachim99@8
|
127 protected:
|
joachim99@8
|
128 void initDirectoryMergeActions();
|
joachim99@8
|
129 /** sets up the statusbar for the main window by initialzing a statuslabel. */
|
joachim99@8
|
130 void initStatusBar();
|
joachim99@8
|
131
|
joachim99@8
|
132 /** creates the centerwidget of the KMainWindow instance and sets it as the view */
|
joachim99@8
|
133 void initView();
|
joachim99@8
|
134
|
joachim99@8
|
135 public slots:
|
joachim99@8
|
136
|
joachim99@8
|
137 /** open a file and load it into the document*/
|
joachim99@8
|
138 void slotFileOpen();
|
joachim99@8
|
139 void slotFileOpen2( QString fn1, QString fn2, QString fn3, QString ofn,
|
joachim99@66
|
140 QString an1, QString an2, QString an3, TotalDiffStatus* pTotalDiffStatus );
|
joachim99@8
|
141
|
joachim99@69
|
142 void slotFileNameChanged(const QString& fileName, int winIdx);
|
joachim99@69
|
143
|
joachim99@8
|
144 /** save a document */
|
joachim99@8
|
145 void slotFileSave();
|
joachim99@8
|
146 /** save a document by a new filename*/
|
joachim99@8
|
147 void slotFileSaveAs();
|
joachim99@8
|
148
|
joachim99@69
|
149 void slotFilePrint();
|
joachim99@69
|
150
|
joachim99@8
|
151 /** closes all open windows by calling close() on each memberList item until the list is empty, then quits the application.
|
joachim99@8
|
152 * If queryClose() returns false because the user canceled the saveModified() dialog, the closing breaks.
|
joachim99@8
|
153 */
|
joachim99@8
|
154 void slotFileQuit();
|
joachim99@8
|
155 /** put the marked text/object into the clipboard and remove
|
joachim99@8
|
156 * it from the document
|
joachim99@8
|
157 */
|
joachim99@8
|
158 void slotEditCut();
|
joachim99@8
|
159 /** put the marked text/object into the clipboard
|
joachim99@8
|
160 */
|
joachim99@8
|
161 void slotEditCopy();
|
joachim99@8
|
162 /** paste the clipboard into the document
|
joachim99@8
|
163 */
|
joachim99@8
|
164 void slotEditPaste();
|
joachim99@8
|
165 /** toggles the toolbar
|
joachim99@8
|
166 */
|
joachim99@8
|
167 void slotViewToolBar();
|
joachim99@8
|
168 /** toggles the statusbar
|
joachim99@8
|
169 */
|
joachim99@8
|
170 void slotViewStatusBar();
|
joachim99@8
|
171 /** changes the statusbar contents for the standard label permanently, used to indicate current actions.
|
joachim99@8
|
172 * @param text the text that is displayed in the statusbar
|
joachim99@8
|
173 */
|
joachim99@8
|
174 void slotStatusMsg(const QString &text);
|
joachim99@8
|
175
|
joachim99@8
|
176 private:
|
joachim99@8
|
177 /** the configuration object of the application */
|
joachim99@8
|
178 //KConfig *config;
|
joachim99@8
|
179
|
joachim99@8
|
180 // KAction pointers to enable/disable actions
|
joachim99@8
|
181 KAction* fileOpen;
|
joachim99@8
|
182 KAction* fileSave;
|
joachim99@8
|
183 KAction* fileSaveAs;
|
joachim99@69
|
184 KAction* filePrint;
|
joachim99@8
|
185 KAction* fileQuit;
|
joachim99@8
|
186 KAction* fileReload;
|
joachim99@8
|
187 KAction* editCut;
|
joachim99@8
|
188 KAction* editCopy;
|
joachim99@8
|
189 KAction* editPaste;
|
joachim99@69
|
190 KAction* editSelectAll;
|
joachim99@8
|
191 KToggleAction* viewToolBar;
|
joachim99@8
|
192 KToggleAction* viewStatusBar;
|
joachim99@8
|
193
|
joachim99@8
|
194 ////////////////////////////////////////////////////////////////////////
|
joachim99@8
|
195 // Special KDiff3 specific stuff starts here
|
joachim99@8
|
196 KAction *editFind;
|
joachim99@8
|
197 KAction *editFindNext;
|
joachim99@8
|
198
|
joachim99@8
|
199 KAction *goCurrent;
|
joachim99@8
|
200 KAction *goTop;
|
joachim99@8
|
201 KAction *goBottom;
|
joachim99@8
|
202 KAction *goPrevUnsolvedConflict;
|
joachim99@8
|
203 KAction *goNextUnsolvedConflict;
|
joachim99@8
|
204 KAction *goPrevConflict;
|
joachim99@8
|
205 KAction *goNextConflict;
|
joachim99@8
|
206 KAction *goPrevDelta;
|
joachim99@8
|
207 KAction *goNextDelta;
|
joachim99@8
|
208 KToggleAction *chooseA;
|
joachim99@8
|
209 KToggleAction *chooseB;
|
joachim99@8
|
210 KToggleAction *chooseC;
|
joachim99@8
|
211 KToggleAction *autoAdvance;
|
joachim99@66
|
212 KToggleAction *wordWrap;
|
joachim99@69
|
213 KAction* splitDiff;
|
joachim99@69
|
214 KAction* joinDiffs;
|
joachim99@69
|
215 KAction* addManualDiffHelp;
|
joachim99@69
|
216 KAction* clearManualDiffHelpList;
|
joachim99@51
|
217 KToggleAction *showWhiteSpaceCharacters;
|
joachim99@8
|
218 KToggleAction *showWhiteSpace;
|
joachim99@8
|
219 KToggleAction *showLineNumbers;
|
joachim99@51
|
220 KAction* chooseAEverywhere;
|
joachim99@51
|
221 KAction* chooseBEverywhere;
|
joachim99@51
|
222 KAction* chooseCEverywhere;
|
joachim99@51
|
223 KAction* chooseAForUnsolvedConflicts;
|
joachim99@51
|
224 KAction* chooseBForUnsolvedConflicts;
|
joachim99@51
|
225 KAction* chooseCForUnsolvedConflicts;
|
joachim99@51
|
226 KAction* chooseAForUnsolvedWhiteSpaceConflicts;
|
joachim99@51
|
227 KAction* chooseBForUnsolvedWhiteSpaceConflicts;
|
joachim99@51
|
228 KAction* chooseCForUnsolvedWhiteSpaceConflicts;
|
joachim99@69
|
229 KAction* autoSolve;
|
joachim99@69
|
230 KAction* unsolve;
|
joachim99@69
|
231 KAction* mergeHistory;
|
joachim99@69
|
232 KAction* mergeRegExp;
|
joachim99@8
|
233 KToggleAction *showWindowA;
|
joachim99@8
|
234 KToggleAction *showWindowB;
|
joachim99@8
|
235 KToggleAction *showWindowC;
|
joachim99@8
|
236 KAction *winFocusNext;
|
joachim99@8
|
237 KAction *winFocusPrev;
|
joachim99@8
|
238 KAction* winToggleSplitOrientation;
|
joachim99@51
|
239 KToggleAction *dirShowBoth;
|
joachim99@51
|
240 KAction *dirViewToggle;
|
joachim99@66
|
241 KToggleAction *overviewModeNormal;
|
joachim99@66
|
242 KToggleAction *overviewModeAB;
|
joachim99@66
|
243 KToggleAction *overviewModeAC;
|
joachim99@66
|
244 KToggleAction *overviewModeBC;
|
joachim99@66
|
245
|
joachim99@8
|
246
|
joachim99@75
|
247 QMenu* m_pMergeEditorPopupMenu;
|
joachim99@8
|
248
|
joachim99@8
|
249 QSplitter* m_pMainSplitter;
|
joachim99@69
|
250 QWidget* m_pMainWidget;
|
joachim99@69
|
251 QWidget* m_pMergeWindowFrame;
|
joachim99@68
|
252 ReversibleScrollBar* m_pHScrollBar;
|
joachim99@8
|
253 QScrollBar* m_pDiffVScrollBar;
|
joachim99@8
|
254 QScrollBar* m_pMergeVScrollBar;
|
joachim99@8
|
255
|
joachim99@8
|
256 DiffTextWindow* m_pDiffTextWindow1;
|
joachim99@8
|
257 DiffTextWindow* m_pDiffTextWindow2;
|
joachim99@8
|
258 DiffTextWindow* m_pDiffTextWindow3;
|
joachim99@69
|
259 DiffTextWindowFrame* m_pDiffTextWindowFrame1;
|
joachim99@69
|
260 DiffTextWindowFrame* m_pDiffTextWindowFrame2;
|
joachim99@69
|
261 DiffTextWindowFrame* m_pDiffTextWindowFrame3;
|
joachim99@8
|
262 QSplitter* m_pDiffWindowSplitter;
|
joachim99@8
|
263
|
joachim99@8
|
264 MergeResultWindow* m_pMergeResultWindow;
|
joachim99@75
|
265 WindowTitleWidget* m_pMergeResultWindowTitle;
|
joachim99@8
|
266 bool m_bTripleDiff;
|
joachim99@8
|
267
|
joachim99@8
|
268 QSplitter* m_pDirectoryMergeSplitter;
|
joachim99@8
|
269 DirectoryMergeWindow* m_pDirectoryMergeWindow;
|
joachim99@8
|
270 DirectoryMergeInfo* m_pDirectoryMergeInfo;
|
joachim99@8
|
271 bool m_bDirCompare;
|
joachim99@8
|
272
|
joachim99@8
|
273 Overview* m_pOverview;
|
joachim99@8
|
274
|
joachim99@8
|
275 QWidget* m_pCornerWidget;
|
joachim99@51
|
276
|
joachim99@8
|
277 TotalDiffStatus m_totalDiffStatus;
|
joachim99@8
|
278
|
joachim99@8
|
279 SourceData m_sd1;
|
joachim99@8
|
280 SourceData m_sd2;
|
joachim99@8
|
281 SourceData m_sd3;
|
joachim99@8
|
282
|
joachim99@8
|
283 QString m_outputFilename;
|
joachim99@8
|
284 bool m_bDefaultFilename;
|
joachim99@8
|
285
|
joachim99@8
|
286 DiffList m_diffList12;
|
joachim99@8
|
287 DiffList m_diffList23;
|
joachim99@8
|
288 DiffList m_diffList13;
|
joachim99@8
|
289
|
joachim99@69
|
290 DiffBufferInfo m_diffBufferInfo;
|
joachim99@8
|
291 Diff3LineList m_diff3LineList;
|
joachim99@8
|
292 Diff3LineVector m_diff3LineVector;
|
joachim99@69
|
293 //ManualDiffHelpDialog* m_pManualDiffHelpDialog;
|
joachim99@69
|
294 ManualDiffHelpList m_manualDiffHelpList;
|
joachim99@8
|
295
|
joachim99@8
|
296 int m_neededLines;
|
joachim99@8
|
297 int m_DTWHeight;
|
joachim99@8
|
298 bool m_bOutputModified;
|
joachim99@69
|
299 bool m_bFileSaved;
|
joachim99@8
|
300 bool m_bTimerBlock; // Synchronisation
|
joachim99@8
|
301
|
joachim99@8
|
302 OptionDialog* m_pOptionDialog;
|
joachim99@8
|
303 FindDialog* m_pFindDialog;
|
joachim99@8
|
304
|
joachim99@69
|
305 void init( bool bAuto=false, TotalDiffStatus* pTotalDiffStatus=0, bool bLoadFiles=true );
|
joachim99@8
|
306
|
joachim99@80
|
307
|
joachim99@8
|
308 virtual bool eventFilter( QObject* o, QEvent* e );
|
joachim99@8
|
309 virtual void resizeEvent(QResizeEvent*);
|
joachim99@8
|
310
|
joachim99@69
|
311 bool improveFilenames(bool bCreateNewInstance);
|
joachim99@8
|
312
|
joachim99@69
|
313 bool runDiff( const LineData* p1, int size1, const LineData* p2, int size2, DiffList& diffList, int winIdx1, int winIdx2 );
|
joachim99@58
|
314 bool runDiff( const LineData* p1, int size1, const LineData* p2, int size2, DiffList& diffList );
|
joachim99@8
|
315 bool canContinue();
|
joachim99@8
|
316
|
joachim99@53
|
317 void choose(int choice);
|
joachim99@8
|
318
|
joachim99@8
|
319 KActionCollection* actionCollection();
|
joachim99@8
|
320 KStatusBar* statusBar();
|
joachim99@8
|
321 KToolBar* toolBar(const char*);
|
joachim99@8
|
322 KDiff3Part* m_pKDiff3Part;
|
joachim99@8
|
323 KParts::MainWindow* m_pKDiff3Shell;
|
joachim99@77
|
324 bool m_bAutoFlag;
|
joachim99@77
|
325 bool m_bAutoMode;
|
joachim99@69
|
326 void recalcWordWrap(int nofVisibleColumns=-1);
|
joachim99@92
|
327 void setHScrollBarRange();
|
joachim99@8
|
328
|
joachim99@51
|
329 public slots:
|
joachim99@8
|
330 void resizeDiffTextWindow(int newWidth, int newHeight);
|
joachim99@8
|
331 void resizeMergeResultWindow();
|
joachim99@69
|
332 void slotRecalcWordWrap();
|
joachim99@8
|
333
|
joachim99@8
|
334 void showPopupMenu( const QPoint& point );
|
joachim99@8
|
335
|
joachim99@8
|
336 void scrollDiffTextWindow( int deltaX, int deltaY );
|
joachim99@8
|
337 void scrollMergeResultWindow( int deltaX, int deltaY );
|
joachim99@8
|
338 void setDiff3Line( int line );
|
joachim99@8
|
339 void sourceMask( int srcMask, int enabledMask );
|
joachim99@8
|
340
|
joachim99@8
|
341 void slotDirShowBoth();
|
joachim99@8
|
342 void slotDirViewToggle();
|
joachim99@8
|
343
|
joachim99@8
|
344 void slotUpdateAvailabilities();
|
joachim99@69
|
345 void slotEditSelectAll();
|
joachim99@8
|
346 void slotEditFind();
|
joachim99@8
|
347 void slotEditFindNext();
|
joachim99@8
|
348 void slotGoCurrent();
|
joachim99@8
|
349 void slotGoTop();
|
joachim99@8
|
350 void slotGoBottom();
|
joachim99@8
|
351 void slotGoPrevUnsolvedConflict();
|
joachim99@8
|
352 void slotGoNextUnsolvedConflict();
|
joachim99@8
|
353 void slotGoPrevConflict();
|
joachim99@8
|
354 void slotGoNextConflict();
|
joachim99@8
|
355 void slotGoPrevDelta();
|
joachim99@8
|
356 void slotGoNextDelta();
|
joachim99@8
|
357 void slotChooseA();
|
joachim99@8
|
358 void slotChooseB();
|
joachim99@8
|
359 void slotChooseC();
|
joachim99@8
|
360 void slotAutoSolve();
|
joachim99@8
|
361 void slotUnsolve();
|
joachim99@69
|
362 void slotMergeHistory();
|
joachim99@69
|
363 void slotRegExpAutoMerge();
|
joachim99@8
|
364 void slotChooseAEverywhere();
|
joachim99@8
|
365 void slotChooseBEverywhere();
|
joachim99@8
|
366 void slotChooseCEverywhere();
|
joachim99@51
|
367 void slotChooseAForUnsolvedConflicts();
|
joachim99@51
|
368 void slotChooseBForUnsolvedConflicts();
|
joachim99@51
|
369 void slotChooseCForUnsolvedConflicts();
|
joachim99@51
|
370 void slotChooseAForUnsolvedWhiteSpaceConflicts();
|
joachim99@51
|
371 void slotChooseBForUnsolvedWhiteSpaceConflicts();
|
joachim99@51
|
372 void slotChooseCForUnsolvedWhiteSpaceConflicts();
|
joachim99@8
|
373 void slotConfigure();
|
joachim99@8
|
374 void slotConfigureKeys();
|
joachim99@8
|
375 void slotRefresh();
|
joachim99@8
|
376 void slotSelectionEnd();
|
joachim99@8
|
377 void slotSelectionStart();
|
joachim99@8
|
378 void slotClipboardChanged();
|
joachim99@75
|
379 void slotOutputModified(bool);
|
joachim99@8
|
380 void slotAfterFirstPaint();
|
joachim99@8
|
381 void slotMergeCurrentFile();
|
joachim99@8
|
382 void slotReload();
|
joachim99@8
|
383 void slotCheckIfCanContinue( bool* pbContinue );
|
joachim99@8
|
384 void slotShowWhiteSpaceToggled();
|
joachim99@8
|
385 void slotShowLineNumbersToggled();
|
joachim99@8
|
386 void slotAutoAdvanceToggled();
|
joachim99@66
|
387 void slotWordWrapToggled();
|
joachim99@8
|
388 void slotShowWindowAToggled();
|
joachim99@8
|
389 void slotShowWindowBToggled();
|
joachim99@8
|
390 void slotShowWindowCToggled();
|
joachim99@8
|
391 void slotWinFocusNext();
|
joachim99@8
|
392 void slotWinFocusPrev();
|
joachim99@8
|
393 void slotWinToggleSplitterOrientation();
|
joachim99@66
|
394 void slotOverviewNormal();
|
joachim99@66
|
395 void slotOverviewAB();
|
joachim99@66
|
396 void slotOverviewAC();
|
joachim99@66
|
397 void slotOverviewBC();
|
joachim99@69
|
398 void slotSplitDiff();
|
joachim99@69
|
399 void slotJoinDiffs();
|
joachim99@69
|
400 void slotAddManualDiffHelp();
|
joachim99@69
|
401 void slotClearManualDiffHelpList();
|
joachim99@69
|
402
|
joachim99@69
|
403 void slotNoRelevantChangesDetected();
|
joachim99@8
|
404 };
|
joachim99@8
|
405
|
joachim99@8
|
406 #endif // KDIFF3_H
|