|
|
|
/***************************************************************************
|
|
|
|
kompare.h - description
|
|
|
|
-------------------
|
|
|
|
begin : Sun Mar 4 2001
|
|
|
|
copyright : (C) 2001-2003 by Otto Bruggeman
|
|
|
|
and John Firebaugh
|
|
|
|
email : otto.bruggeman@home.nl
|
|
|
|
jfirebaugh@kde.org
|
|
|
|
****************************************************************************/
|
|
|
|
|
|
|
|
/***************************************************************************
|
|
|
|
**
|
|
|
|
** 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 KOMPARE_H
|
|
|
|
#define KOMPARE_H
|
|
|
|
|
|
|
|
#include <kurl.h>
|
|
|
|
|
|
|
|
namespace Kompare
|
|
|
|
{
|
|
|
|
enum Format {
|
|
|
|
Context = 0,
|
|
|
|
Ed = 1,
|
|
|
|
Normal = 2,
|
|
|
|
RCS = 3,
|
|
|
|
Unified = 4,
|
|
|
|
SideBySide = 5,
|
|
|
|
UnknownFormat = -1
|
|
|
|
};
|
|
|
|
|
|
|
|
enum Generator {
|
|
|
|
CVSDiff = 0,
|
|
|
|
Diff = 1,
|
|
|
|
Perforce = 2,
|
|
|
|
SubVersion = 3,
|
|
|
|
Reserved2 = 4,
|
|
|
|
Reserved3 = 5,
|
|
|
|
Reserved4 = 6,
|
|
|
|
Reserved5 = 7,
|
|
|
|
Reserved6 = 8,
|
|
|
|
Reserved7 = 9,
|
|
|
|
UnknownGenerator = -1
|
|
|
|
};
|
|
|
|
|
|
|
|
enum Mode {
|
|
|
|
ComparingFiles, // compareFiles
|
|
|
|
ComparingDirs, // compareDirs
|
|
|
|
ShowingDiff, // openDiff
|
|
|
|
BlendingDir, // openDirAnfDiff
|
|
|
|
BlendingFile, // openFileAndDiff
|
|
|
|
UnknownMode // Used to initialize the Infoi struct
|
|
|
|
};
|
|
|
|
|
|
|
|
enum DiffMode {
|
|
|
|
Default,
|
|
|
|
Custom,
|
|
|
|
UnknownDiffMode // Use to initialize the Info struct
|
|
|
|
};
|
|
|
|
|
|
|
|
enum Status {
|
|
|
|
RunningDiff,
|
|
|
|
Parsing,
|
|
|
|
FinishedParsing,
|
|
|
|
FinishedWritingDiff,
|
|
|
|
ReRunningDiff // When a change has been detected after diff has run
|
|
|
|
};
|
|
|
|
|
|
|
|
enum Target {
|
|
|
|
Source,
|
|
|
|
Destination
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Info {
|
|
|
|
Info (
|
|
|
|
enum Mode _mode = UnknownMode,
|
|
|
|
enum DiffMode _diffMode = UnknownDiffMode,
|
|
|
|
enum Format _format = UnknownFormat,
|
|
|
|
enum Generator _generator = UnknownGenerator,
|
|
|
|
KURL _source = KURL(),
|
|
|
|
KURL _destination = KURL(),
|
|
|
|
TQString _localSource = "",
|
|
|
|
TQString _localDestination = ""
|
|
|
|
)
|
|
|
|
{
|
|
|
|
mode = _mode;
|
|
|
|
diffMode = _diffMode;
|
|
|
|
format = _format;
|
|
|
|
generator = _generator;
|
|
|
|
source = _source;
|
|
|
|
destination = _destination;
|
|
|
|
localSource = _localSource;
|
|
|
|
localDestination = _localDestination;
|
|
|
|
}
|
|
|
|
enum Mode mode;
|
|
|
|
enum DiffMode diffMode;
|
|
|
|
enum Format format;
|
|
|
|
enum Generator generator;
|
|
|
|
KURL source;
|
|
|
|
KURL destination;
|
|
|
|
TQString localSource;
|
|
|
|
TQString localDestination;
|
|
|
|
};
|
|
|
|
} // End of namespace Kompare
|
|
|
|
|
|
|
|
/*
|
|
|
|
** This should be removed and put somewhere else
|
|
|
|
*/
|
|
|
|
class KompareFunctions
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
static TQString constructRelativePath( const TQString& from, const TQString& to )
|
|
|
|
{
|
|
|
|
KURL fromURL( from );
|
|
|
|
KURL toURL( to );
|
|
|
|
KURL root;
|
|
|
|
int upLevels = 0;
|
|
|
|
|
|
|
|
// Find a common root.
|
|
|
|
root = from;
|
|
|
|
while( root.isValid() && !root.isParentOf( toURL ) ) {
|
|
|
|
root = root.upURL();
|
|
|
|
upLevels++;
|
|
|
|
}
|
|
|
|
|
|
|
|
if( !root.isValid() ) return to;
|
|
|
|
|
|
|
|
TQString relative;
|
|
|
|
for( ; upLevels > 0; upLevels-- ) {
|
|
|
|
relative += "../";
|
|
|
|
}
|
|
|
|
|
|
|
|
relative += TQString( to ).replace( 0, root.path(1).length(), "" );
|
|
|
|
|
|
|
|
return relative;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|