summaryrefslogtreecommitdiffstats
path: root/src/app/Synchronizer/synchronizergui.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/Synchronizer/synchronizergui.h')
-rw-r--r--src/app/Synchronizer/synchronizergui.h225
1 files changed, 225 insertions, 0 deletions
diff --git a/src/app/Synchronizer/synchronizergui.h b/src/app/Synchronizer/synchronizergui.h
new file mode 100644
index 0000000..c442b80
--- /dev/null
+++ b/src/app/Synchronizer/synchronizergui.h
@@ -0,0 +1,225 @@
+/***************************************************************************
+ synchronizergui.h - description
+ -------------------
+ copyright : (C) 2003 + by Csaba Karai
+ e-mail : krusader@users.sourceforge.net
+ web site : http://krusader.sourceforge.net
+ ---------------------------------------------------------------------------
+ Description
+ ***************************************************************************
+
+ A
+
+ db dD d8888b. db db .d8888. .d8b. d8888b. d88888b d8888b.
+ 88 ,8P' 88 `8D 88 88 88' YP d8' `8b 88 `8D 88' 88 `8D
+ 88,8P 88oobY' 88 88 `8bo. 88ooo88 88 88 88ooooo 88oobY'
+ 88`8b 88`8b 88 88 `Y8b. 88~~~88 88 88 88~~~~~ 88`8b
+ 88 `88. 88 `88. 88b d88 db 8D 88 88 88 .8D 88. 88 `88.
+ YP YD 88 YD ~Y8888P' `8888Y' YP YP Y8888D' Y88888P 88 YD
+
+ H e a d e r F i l e
+
+ ***************************************************************************
+ * *
+ * 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 __SYNCHRONIZERGUI_H__
+#define __SYNCHRONIZERGUI_H__
+
+#include "synchronizer.h"
+#include "../GUI/profilemanager.h"
+#include "../Filter/filtertabs.h"
+#include "../Filter/generalfilter.h"
+#include <tqdialog.h>
+#include <tqlistview.h>
+#include <kcombobox.h>
+#include <tqpixmap.h>
+#include <tqcheckbox.h>
+#include <tqmap.h>
+#include <tqlabel.h>
+#include <tqtabwidget.h>
+
+class TQSpinBox;
+
+class SynchronizerGUI : TQDialog
+{
+ TQ_OBJECT
+
+
+public:
+ class SyncViewItem : public TQListViewItem
+ {
+ private:
+ SynchronizerFileItem *syncItemRef;
+ SyncViewItem *lastItemRef;
+ TQColor textColor;
+ TQColor baseColor;
+
+ public:
+ SyncViewItem( SynchronizerFileItem *item, TQColor txt, TQColor base, TQListView * parent, TQListViewItem *after, TQString label1,
+ TQString label2 = TQString(), TQString label3 = TQString(), TQString label4 = TQString(),
+ TQString label5 = TQString(), TQString label6 = TQString(),
+ TQString label7 = TQString(), TQString label8 = TQString() ) :
+ TQListViewItem( parent, after, label1, label2, label3, label4, label5, label6,
+ label7, label8 ), syncItemRef( item ), lastItemRef( 0 ), textColor( txt ), baseColor( base )
+ {
+ item->setUserData( (void *)this );
+ setDragEnabled( true );
+ }
+
+ SyncViewItem( SynchronizerFileItem *item, TQColor txt, TQColor base, TQListViewItem * parent, TQListViewItem *after, TQString label1,
+ TQString label2 = TQString(), TQString label3 = TQString(), TQString label4 = TQString(),
+ TQString label5 = TQString(), TQString label6 = TQString(),
+ TQString label7 = TQString(), TQString label8 = TQString() ) :
+ TQListViewItem( parent, after, label1, label2, label3, label4, label5, label6,
+ label7, label8 ), syncItemRef( item ), lastItemRef( 0 ), textColor( txt ), baseColor( base )
+ {
+ item->setUserData( (void *)this );
+ setDragEnabled( true );
+ }
+
+ ~SyncViewItem()
+ {
+ syncItemRef->setUserData( 0 );
+ }
+
+ inline SynchronizerFileItem * synchronizerItemRef() {return syncItemRef;}
+ inline SyncViewItem * lastItem() {return lastItemRef;}
+ inline void setLastItem(SyncViewItem*s) {lastItemRef = s;}
+
+ void setColors( TQColor fore, TQColor back ) {
+ textColor = fore;
+ baseColor = back;
+ }
+
+ void paintCell(TQPainter *p, const TQColorGroup &cg, int column, int width, int align)
+ {
+ TQColorGroup _cg = cg;
+ if( textColor.isValid() )
+ _cg.setColor(TQColorGroup::Text, textColor );
+ if( baseColor.isValid() )
+ _cg.setColor(TQColorGroup::Base, baseColor );
+ TQListViewItem::paintCell( p, _cg, column, width, align );
+ };
+ };
+
+public:
+ // if rightDirectory is null, leftDirectory is actually the profile name to load
+ SynchronizerGUI(TQWidget* parent, KURL leftDirectory, KURL rightDirectory = TQString(), TQStringList selList = TQStringList() );
+ SynchronizerGUI(TQWidget* parent, TQString profile );
+ ~SynchronizerGUI();
+
+ inline bool wasSynchronization() {return wasSync;}
+
+public slots:
+ void rightMouseClicked(TQListViewItem *);
+ void doubleClicked(TQListViewItem *);
+ void compare();
+ void synchronize();
+ void stop();
+ void feedToListBox();
+ void closeDialog();
+ void refresh();
+ void swapSides();
+ void loadFromProfile( TQString );
+ void saveToProfile( TQString );
+
+protected slots:
+ void reject();
+ void addFile( SynchronizerFileItem * );
+ void markChanged( SynchronizerFileItem *, bool );
+ void setScrolling( bool );
+ void statusInfo( TQString );
+ void subdirsChecked( bool );
+ void setPanelLabels();
+ void setCompletion();
+ void checkExcludeURLValidity( TQString &text, TQString &error );
+ void connectFilters( const TQString & );
+
+private:
+ void initGUI(TQWidget* parent, TQString profile, KURL leftURL, KURL rightURL, TQStringList selList);
+
+ TQString convertTime(time_t time) const;
+ void setMarkFlags();
+ void disableMarkButtons();
+ void enableMarkButtons();
+ void copyToClipboard( bool isLeft );
+
+ int convertToSeconds( int time, int unit );
+ void convertFromSeconds( int &time, int &unit, int second );
+
+protected:
+ virtual void keyPressEvent( TQKeyEvent * );
+ virtual void resizeEvent( TQResizeEvent *e );
+
+ ProfileManager *profileManager;
+ FilterTabs *filterTabs;
+ GeneralFilter *generalFilter;
+
+ TQTabWidget *synchronizerTabs;
+
+ KHistoryCombo *leftLocation;
+ KHistoryCombo *rightLocation;
+ KHistoryCombo *fileFilter;
+
+ TQListView *syncList;
+ Synchronizer synchronizer;
+
+ TQCheckBox *cbSubdirs;
+ TQCheckBox *cbSymlinks;
+ TQCheckBox *cbByContent;
+ TQCheckBox *cbIgnoreDate;
+ TQCheckBox *cbAsymmetric;
+ TQCheckBox *cbIgnoreCase;
+
+ TQPushButton *btnSwapSides;
+ TQPushButton *btnCompareDirs;
+ TQPushButton *btnStopComparing;
+ TQPushButton *btnSynchronize;
+ TQPushButton *btnFeedToListBox;
+ TQPushButton *btnScrollResults;
+
+ TQPushButton *btnLeftToRight;
+ TQPushButton *btnEquals;
+ TQPushButton *btnDifferents;
+ TQPushButton *btnRightToLeft;
+ TQPushButton *btnDeletable;
+ TQPushButton *btnDuplicates;
+ TQPushButton *btnSingles;
+
+ TQLabel *statusLabel;
+ TQLabel *leftDirLabel;
+ TQLabel *rightDirLabel;
+
+ TQStringList selectedFiles;
+
+ TQSpinBox *parallelThreadsSpinBox;
+ TQSpinBox *equalitySpinBox;
+ TQComboBox *equalityUnitCombo;
+ TQSpinBox *timeShiftSpinBox;
+ TQComboBox *timeShiftUnitCombo;
+ TQCheckBox *ignoreHiddenFilesCB;
+
+private:
+ TQPixmap fileIcon;
+ TQPixmap folderIcon;
+ bool isComparing;
+ bool wasClosed;
+ bool wasSync;
+ bool firstResize;
+ bool hasSelectedFiles;
+ SyncViewItem *lastItem;
+
+ int sizeX;
+ int sizeY;
+
+ TQColor foreGrounds[ TT_MAX ];
+ TQColor backGrounds[ TT_MAX ];
+};
+
+#endif /* __SYNCHRONIZERGUI_H__ */