diff kdiff3/src/directorymergewindow.h @ 69:8febbfb1148c

KDiff3 0.9.89
author joachim99
date Mon, 10 Apr 2006 08:40:51 +0000
parents efe33e938730
children 5bbfe4784324
line wrap: on
line diff
--- a/kdiff3/src/directorymergewindow.h	Mon Jan 31 22:30:47 2005 +0000
+++ b/kdiff3/src/directorymergewindow.h	Mon Apr 10 08:40:51 2006 +0000
@@ -2,8 +2,8 @@
                           directorymergewindow.h
                              -------------------
     begin                : Sat Oct 19 2002
-    copyright            : (C) 2002-2004 by Joachim Eibl
-    email                : joachim.eibl@gmx.de
+    copyright            : (C) 2002-2005 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
  ***************************************************************************/
 
 /***************************************************************************
@@ -30,7 +30,6 @@
 
 class OptionDialog;
 class KIconLoader;
-class StatusMessageBox;
 class StatusInfo;
 class DirectoryMergeInfo;
 class OneDirectoryInfo;
@@ -110,9 +109,8 @@
    DirMergeItem( DirMergeItem* pParent, const QString&, MergeFileInfos*);
    ~DirMergeItem();
    MergeFileInfos* m_pMFI;
-#if QT_VERSION!=230
    virtual int compare(QListViewItem *i, int col, bool ascending) const;
-#endif
+   virtual void paintCell(QPainter * p, const QColorGroup & cg, int column, int width, int align );
    void init(MergeFileInfos* pMFI);
 };
 
@@ -139,6 +137,7 @@
    void initDirectoryMergeActions( QObject* pKDiff3App, KActionCollection* ac );
    void updateAvailabilities( bool bDirCompare, bool bDiffWindowVisible,
       KToggleAction* chooseA, KToggleAction* chooseB, KToggleAction* chooseC );
+   void updateFileVisibilities();
 
    virtual void keyPressEvent( QKeyEvent* e );
    virtual void focusInEvent( QFocusEvent* e );
@@ -158,6 +157,18 @@
    void slotNoOpEverywhere();
    void slotFoldAllSubdirs();
    void slotUnfoldAllSubdirs();
+   void slotShowIdenticalFiles();
+   void slotShowDifferentFiles();
+   void slotShowFilesOnlyInA();
+   void slotShowFilesOnlyInB();
+   void slotShowFilesOnlyInC();
+
+   void slotSynchronizeDirectories();
+   void slotChooseNewerFiles();
+
+   void slotCompareExplicitlySelectedFiles();
+   void slotMergeExplicitlySelectedFiles();
+
    // Merge current item (merge mode)
    void slotCurrentDoNothing();
    void slotCurrentChooseA();
@@ -175,6 +186,9 @@
    void slotCurrentMergeToB();
    void slotCurrentMergeToAAndB();
 
+   void slotSaveMergeState();
+   void slotLoadMergeState();
+
 protected:
    void mergeContinue( bool bStart, bool bVerbose );
    void resizeEvent(QResizeEvent* e);
@@ -217,6 +231,8 @@
    FileAccess m_dirDest;
    FileAccess m_dirDestInternal;
 
+   QString m_dirMergeStateFilename;
+
    std::map<QString, MergeFileInfos> m_fileMergeMap;
 
    bool m_bFollowDirLinks;
@@ -226,12 +242,12 @@
    bool m_bError;
    bool m_bSyncMode;
    bool m_bDirectoryMerge; // if true, then merge is the default operation, otherwise it's diff.
+   bool m_bCaseSensitive;
    
    bool m_bScanning; // true while in init()
 
    OptionDialog* m_pOptions;
    KIconLoader* m_pIconLoader;
-   StatusMessageBox* m_pStatusMessageBox;
    DirectoryMergeInfo* m_pDirectoryMergeInfo;
    StatusInfo* m_pStatusInfo;
 
@@ -239,35 +255,59 @@
    MergeItemList m_mergeItemList;
    MergeItemList::iterator m_currentItemForOperation;
 
-   KAction* dirStartOperation;
-   KAction* dirRunOperationForCurrentItem;
-   KAction* dirCompareCurrent;
-   KAction* dirMergeCurrent;
-   KAction* dirRescan;
-   KAction* dirChooseAEverywhere;
-   KAction* dirChooseBEverywhere;
-   KAction* dirChooseCEverywhere;
-   KAction* dirAutoChoiceEverywhere;
-   KAction* dirDoNothingEverywhere;
-   KAction* dirFoldAll;
-   KAction* dirUnfoldAll;
+   DirMergeItem* m_pSelection1Item;
+   int m_selection1Column;
+   DirMergeItem* m_pSelection2Item;
+   int m_selection2Column;
+   DirMergeItem* m_pSelection3Item;
+   int m_selection3Column;
+   void selectItemAndColumn(DirMergeItem* pDMI, int c, bool bContextMenu);
+   friend class DirMergeItem;
 
-   KAction* dirCurrentDoNothing;
-   KAction* dirCurrentChooseA;
-   KAction* dirCurrentChooseB;
-   KAction* dirCurrentChooseC;
-   KAction* dirCurrentMerge;
-   KAction* dirCurrentDelete;
+   KAction* m_pDirStartOperation;
+   KAction* m_pDirRunOperationForCurrentItem;
+   KAction* m_pDirCompareCurrent;
+   KAction* m_pDirMergeCurrent;
+   KAction* m_pDirRescan;
+   KAction* m_pDirChooseAEverywhere;
+   KAction* m_pDirChooseBEverywhere;
+   KAction* m_pDirChooseCEverywhere;
+   KAction* m_pDirAutoChoiceEverywhere;
+   KAction* m_pDirDoNothingEverywhere;
+   KAction* m_pDirFoldAll;
+   KAction* m_pDirUnfoldAll;
 
-   KAction* dirCurrentSyncDoNothing;
-   KAction* dirCurrentSyncCopyAToB;
-   KAction* dirCurrentSyncCopyBToA;
-   KAction* dirCurrentSyncDeleteA;
-   KAction* dirCurrentSyncDeleteB;
-   KAction* dirCurrentSyncDeleteAAndB;
-   KAction* dirCurrentSyncMergeToA;
-   KAction* dirCurrentSyncMergeToB;
-   KAction* dirCurrentSyncMergeToAAndB;
+   KToggleAction* m_pDirShowIdenticalFiles;
+   KToggleAction* m_pDirShowDifferentFiles;
+   KToggleAction* m_pDirShowFilesOnlyInA;
+   KToggleAction* m_pDirShowFilesOnlyInB;
+   KToggleAction* m_pDirShowFilesOnlyInC;
+
+   KToggleAction* m_pDirSynchronizeDirectories;
+   KToggleAction* m_pDirChooseNewerFiles;
+
+   KAction* m_pDirCompareExplicit;
+   KAction* m_pDirMergeExplicit;
+
+   KAction* m_pDirCurrentDoNothing;
+   KAction* m_pDirCurrentChooseA;
+   KAction* m_pDirCurrentChooseB;
+   KAction* m_pDirCurrentChooseC;
+   KAction* m_pDirCurrentMerge;
+   KAction* m_pDirCurrentDelete;
+
+   KAction* m_pDirCurrentSyncDoNothing;
+   KAction* m_pDirCurrentSyncCopyAToB;
+   KAction* m_pDirCurrentSyncCopyBToA;
+   KAction* m_pDirCurrentSyncDeleteA;
+   KAction* m_pDirCurrentSyncDeleteB;
+   KAction* m_pDirCurrentSyncDeleteAAndB;
+   KAction* m_pDirCurrentSyncMergeToA;
+   KAction* m_pDirCurrentSyncMergeToB;
+   KAction* m_pDirCurrentSyncMergeToAAndB;
+
+   KAction* m_pDirSaveMergeState;
+   KAction* m_pDirLoadMergeState;
 signals:
    void startDiffMerge(QString fn1,QString fn2, QString fn3, QString ofn, QString,QString,QString,TotalDiffStatus*);
    void checkIfCanContinue( bool* pbContinue );
@@ -275,7 +315,8 @@
    void statusBarMessage( const QString& msg );
 protected slots:
    void onDoubleClick( QListViewItem* lvi );
-   void onClick( QListViewItem* lvi, const QPoint&, int c );
+   void onClick( int button, QListViewItem* lvi, const QPoint&, int c );
+   void slotShowContextMenu(QListViewItem* lvi,const QPoint &,int c);
    void onSelectionChanged(QListViewItem* lvi);
 };