Commit 9001116d authored by Joachim Eibl's avatar Joachim Eibl

Added new files (by Maurice van der Pot)

git-svn-id: https://kdiff3.svn.sourceforge.net/svnroot/kdiff3/trunk@163 c8aa9fed-2811-0410-8543-893ada326672
parent eb8e5a73
/*
* kdiff3 - Text Diff And Merge Tool
* Copyright (C) 2002-2007 Joachim Eibl, joachim.eibl at gmx.de
*
* 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.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#ifndef OPTIONS_H
#define OPTIONS_H
#include <QStringList>
#include <list>
enum e_LineEndStyle
{
eLineEndStyleUnix=0,
eLineEndStyleDos,
eLineEndStyleAutoDetect,
eLineEndStyleUndefined, // only one line exists
eLineEndStyleConflict // User must resolve manually
};
class Options
{
public:
// Some settings are not available in the option dialog:
QSize m_geometry;
QPoint m_position;
bool m_bMaximised;
bool m_bShowToolBar;
bool m_bShowStatusBar;
int m_toolBarPos;
// These are the results of the option dialog.
QFont m_font;
bool m_bItalicForDeltas;
QColor m_fgColor;
QColor m_bgColor;
QColor m_diffBgColor;
QColor m_colorA;
QColor m_colorB;
QColor m_colorC;
QColor m_colorForConflict;
QColor m_currentRangeBgColor;
QColor m_currentRangeDiffBgColor;
QColor m_oldestFileColor;
QColor m_midAgeFileColor;
QColor m_newestFileColor;
QColor m_missingFileColor;
QColor m_manualHelpRangeColor;
bool m_bWordWrap;
bool m_bReplaceTabs;
bool m_bAutoIndentation;
int m_tabSize;
bool m_bAutoCopySelection;
bool m_bSameEncoding;
QTextCodec* m_pEncodingA;
bool m_bAutoDetectUnicodeA;
QTextCodec* m_pEncodingB;
bool m_bAutoDetectUnicodeB;
QTextCodec* m_pEncodingC;
bool m_bAutoDetectUnicodeC;
QTextCodec* m_pEncodingOut;
bool m_bAutoSelectOutEncoding;
QTextCodec* m_pEncodingPP;
int m_lineEndStyle;
bool m_bPreserveCarriageReturn;
bool m_bTryHard;
bool m_bShowWhiteSpaceCharacters;
bool m_bShowWhiteSpace;
bool m_bShowLineNumbers;
bool m_bHorizDiffWindowSplitting;
bool m_bShowInfoDialogs;
bool m_bDiff3AlignBC;
int m_whiteSpace2FileMergeDefault;
int m_whiteSpace3FileMergeDefault;
bool m_bIgnoreCase;
bool m_bIgnoreNumbers;
bool m_bIgnoreComments;
QString m_PreProcessorCmd;
QString m_LineMatchingPreProcessorCmd;
bool m_bRunRegExpAutoMergeOnMergeStart;
QString m_autoMergeRegExp;
bool m_bRunHistoryAutoMergeOnMergeStart;
QString m_historyStartRegExp;
QString m_historyEntryStartRegExp;
bool m_bHistoryMergeSorting;
QString m_historyEntryStartSortKeyOrder;
int m_maxNofHistoryEntries;
QString m_IrrelevantMergeCmd;
bool m_bAutoSaveAndQuitOnMergeWithoutConflicts;
bool m_bAutoAdvance;
int m_autoAdvanceDelay;
QStringList m_recentAFiles;
QStringList m_recentBFiles;
QStringList m_recentCFiles;
QStringList m_recentEncodings;
QStringList m_recentOutputFiles;
// Directory Merge options
bool m_bDmSyncMode;
bool m_bDmRecursiveDirs;
bool m_bDmFollowFileLinks;
bool m_bDmFollowDirLinks;
bool m_bDmFindHidden;
bool m_bDmCreateBakFiles;
bool m_bDmBinaryComparison;
bool m_bDmFullAnalysis;
bool m_bDmTrustDate;
bool m_bDmTrustDateFallbackToBinary;
bool m_bDmTrustSize;
bool m_bDmCopyNewer;
//bool m_bDmShowOnlyDeltas;
bool m_bDmShowIdenticalFiles;
bool m_bDmUseCvsIgnore;
bool m_bDmWhiteSpaceEqual;
bool m_bDmCaseSensitiveFilenameComparison;
bool m_bDmUnfoldSubdirs;
bool m_bDmSkipDirStatus;
QString m_DmFilePattern;
QString m_DmFileAntiPattern;
QString m_DmDirAntiPattern;
QString m_language;
bool m_bRightToLeftLanguage;
QString m_ignorableCmdLineOptions;
bool m_bIntegrateWithClearCase;
bool m_bEscapeKeyQuits;
};
#endif
This diff is collapsed.
/***************************************************************************
* Copyright (C) 2003-2007 by Joachim Eibl *
* joachim.eibl at gmx.de *
* *
* 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 PROGRESS_H
#define PROGRESS_H
#include <QDialog>
#include <QTime>
#include <list>
class KJob;
class QEventLoop;
class QLabel;
class QProgressBar;
class ProgressDialog : public QDialog
{
Q_OBJECT
public:
ProgressDialog( QWidget* pParent );
void setStayHidden( bool bStayHidden );
void setInformation( const QString& info, bool bRedrawUpdate=true );
void setInformation( const QString& info, double dCurrent, bool bRedrawUpdate=true );
void setCurrent( double dCurrent, bool bRedrawUpdate=true );
void step( bool bRedrawUpdate=true );
void setMaxNofSteps( int dMaxNofSteps );
void push();
void pop(bool bRedrawUpdate=true);
// The progressbar goes from 0 to 1 usually.
// By supplying a subrange transformation the subCurrent-values
// 0 to 1 will be transformed to dMin to dMax instead.
// Requirement: 0 < dMin < dMax < 1
void setRangeTransformation( double dMin, double dMax );
void setSubRangeTransformation( double dMin, double dMax );
void exitEventLoop();
void enterEventLoop( KJob* pJob, const QString& jobInfo );
bool wasCancelled();
void show();
void hide();
virtual void timerEvent(QTimerEvent*);
private:
struct ProgressLevelData
{
ProgressLevelData()
{
m_dCurrent=0; m_maxNofSteps=1; m_dRangeMin=0; m_dRangeMax=1;
m_dSubRangeMin = 0; m_dSubRangeMax = 1;
}
double m_dCurrent;
int m_maxNofSteps; // when step() is used.
double m_dRangeMax;
double m_dRangeMin;
double m_dSubRangeMax;
double m_dSubRangeMin;
};
std::list<ProgressLevelData> m_progressStack;
int m_progressDelayTimer;
std::list<QEventLoop*> m_eventLoopStack;
QProgressBar* m_pProgressBar;
QProgressBar* m_pSubProgressBar;
QLabel* m_pInformation;
QLabel* m_pSubInformation;
QLabel* m_pSlowJobInfo;
QPushButton* m_pAbortButton;
void recalc(bool bRedrawUpdate);
QTime m_t1;
QTime m_t2;
bool m_bWasCancelled;
KJob* m_pJob;
QString m_currentJobInfo; // Needed if the job doesn't stop after a reasonable time.
bool m_bStayHidden;
protected:
virtual void reject();
private slots:
void delayedHide();
void slotAbort();
};
// When using the ProgressProxy you need not take care of the push and pop, except when explicit.
class ProgressProxy: public QObject
{
Q_OBJECT
public:
ProgressProxy();
~ProgressProxy();
void setInformation( const QString& info, bool bRedrawUpdate=true );
void setInformation( const QString& info, double dCurrent, bool bRedrawUpdate=true );
void setCurrent( double dCurrent, bool bRedrawUpdate=true );
void step( bool bRedrawUpdate=true );
void setMaxNofSteps( int dMaxNofSteps );
bool wasCancelled();
void setRangeTransformation( double dMin, double dMax );
void setSubRangeTransformation( double dMin, double dMax );
static void exitEventLoop();
static void enterEventLoop( KJob* pJob, const QString& jobInfo );
static QDialog *getDialog();
private:
};
extern ProgressDialog* g_pProgressDialog;
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment