You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
3.4 KiB
145 lines
3.4 KiB
15 years ago
|
/***************************************************************************
|
||
|
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(),
|
||
|
QString _localSource = "",
|
||
|
QString _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;
|
||
|
QString localSource;
|
||
|
QString localDestination;
|
||
|
};
|
||
|
} // End of namespace Kompare
|
||
|
|
||
|
/*
|
||
|
** This should be removed and put somewhere else
|
||
|
*/
|
||
|
class KompareFunctions
|
||
|
{
|
||
|
public:
|
||
|
static QString constructRelativePath( const QString& from, const QString& 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;
|
||
|
|
||
|
QString relative;
|
||
|
for( ; upLevels > 0; upLevels-- ) {
|
||
|
relative += "../";
|
||
|
}
|
||
|
|
||
|
relative += QString( to ).replace( 0, root.path(1).length(), "" );
|
||
|
|
||
|
return relative;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
#endif
|