/* ==================================================================== * Copyright (c) 2003-2006, Martin Hauner * http://subcommander.tigris.org * * Subcommander is licensed as described in the file doc/COPYING, which * you should have received as part of this distribution. * ==================================================================== */ #ifndef _SC_MAIN_WINDOW_H #define _SC_MAIN_WINDOW_H // sc #include "DiffParam.h" #include "DiffInfoModel.h" #include "util/String.h" class Diff; class Diff3Widget; class FileSelectDialog; class ConfigManager; namespace sc { class Error; } // qt #include class QLabel; class QToolButton; class QPopupMenu; class QAction; class MainWindow : public QMainWindow { typedef QMainWindow super; Q_OBJECT public: MainWindow( ConfigManager*, QWidget *parent=0, const char *name=0 ); virtual ~MainWindow(); // MainWindow overwrite bool showDockMenu( const QPoint& globalPos ); Diff3Widget* getDiffWidget() const; const sc::Error* diff( const DiffParamPtr param ); const sc::Error* diff3( const DiffParamPtr param ); const sc::Error* save( const char* file ); void setDiffCnt( int ); void showOptions( bool whitespace ); void showEncoding( const sc::String& ); void showError( const sc::Error* error ); public slots: void open(); void save(); void saveAs(); void settings(); void about(); void nextDiff(); void prevDiff(); void nextConflict(); void prevConflict(); void merge(); void refresh(); void whitespace(bool); void diffChanged(int diff); void oDropped( const QString& f ); void mDropped( const QString& f ); void lDropped( const QString& f ); private: FileDataPtr getEmptyFile(); Diff3Widget* _dw; QLabel* _sbarDiffCnt; QLabel* _sbarWhitespace; QLabel* _sbarEncoding; QLabel* _sbar4; QAction* _next; QAction* _prev; QAction* _merge; QAction* _wspace; QAction* _reload; QPopupMenu* _fileMenu; FileSelectDialog* _file; ConfigManager* _config; // diff DiffInfoModelPtr _diffInfo; // last parameter set DiffParamPtr _lastParam; }; #endif // _SC_MAIN_WINDOW_H