2022-08-19 15:59:36 +02:00
|
|
|
// Copyright (C) 2016 AudioCodes Ltd.
|
|
|
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
2011-06-05 17:58:02 +03:00
|
|
|
|
|
|
|
|
#include "clearcasesettings.h"
|
|
|
|
|
|
|
|
|
|
#include <utils/environment.h>
|
|
|
|
|
|
|
|
|
|
#include <QSettings>
|
|
|
|
|
|
2022-09-29 14:47:34 +02:00
|
|
|
namespace ClearCase::Internal {
|
|
|
|
|
|
|
|
|
|
const char groupC[] = "ClearCase";
|
|
|
|
|
const char commandKeyC[] = "Command";
|
|
|
|
|
|
|
|
|
|
const char historyCountKeyC[] = "HistoryCount";
|
|
|
|
|
const char timeOutKeyC[] = "TimeOut";
|
|
|
|
|
const char autoCheckOutKeyC[] = "AutoCheckOut";
|
|
|
|
|
const char noCommentKeyC[] = "NoComment";
|
|
|
|
|
const char keepFileUndoCheckoutKeyC[] = "KeepFileUnDoCheckout";
|
|
|
|
|
const char diffTypeKeyC[] = "DiffType";
|
|
|
|
|
const char diffArgsKeyC[] = "DiffArgs";
|
|
|
|
|
const char autoAssignActivityKeyC[] = "AutoAssignActivityName";
|
|
|
|
|
const char disableIndexerKeyC[] = "DisableIndexer";
|
|
|
|
|
const char totalFilesKeyC[] = "TotalFiles";
|
|
|
|
|
const char indexOnlyVOBsC[] = "IndexOnlyVOBs";
|
|
|
|
|
|
|
|
|
|
const char defaultDiffArgs[] = "-ubp";
|
2011-06-05 17:58:02 +03:00
|
|
|
|
|
|
|
|
enum { defaultTimeOutS = 30, defaultHistoryCount = 50 };
|
|
|
|
|
|
2012-08-21 10:06:05 +03:00
|
|
|
static QString defaultCommand()
|
2011-06-05 17:58:02 +03:00
|
|
|
{
|
2012-08-31 16:39:20 +02:00
|
|
|
return QLatin1String("cleartool" QTC_HOST_EXE_SUFFIX);
|
2011-06-05 17:58:02 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ClearCaseSettings::ClearCaseSettings() :
|
2012-08-21 10:06:05 +03:00
|
|
|
ccCommand(defaultCommand()),
|
2011-06-05 17:58:02 +03:00
|
|
|
diffArgs(QLatin1String(defaultDiffArgs)),
|
2015-04-10 14:44:17 +02:00
|
|
|
historyCount(defaultHistoryCount),
|
|
|
|
|
timeOutS(defaultTimeOutS)
|
|
|
|
|
{ }
|
2011-06-05 17:58:02 +03:00
|
|
|
|
|
|
|
|
void ClearCaseSettings::fromSettings(QSettings *settings)
|
|
|
|
|
{
|
|
|
|
|
settings->beginGroup(QLatin1String(groupC));
|
2012-08-21 10:06:05 +03:00
|
|
|
ccCommand = settings->value(QLatin1String(commandKeyC), defaultCommand()).toString();
|
2022-08-02 17:39:00 +02:00
|
|
|
ccBinaryPath = Utils::Environment::systemEnvironment().searchInPath(ccCommand);
|
2011-06-05 17:58:02 +03:00
|
|
|
timeOutS = settings->value(QLatin1String(timeOutKeyC), defaultTimeOutS).toInt();
|
|
|
|
|
autoCheckOut = settings->value(QLatin1String(autoCheckOutKeyC), false).toBool();
|
2015-01-02 16:13:57 +01:00
|
|
|
noComment = settings->value(QLatin1String(noCommentKeyC), false).toBool();
|
2015-01-02 16:15:20 +01:00
|
|
|
keepFileUndoCheckout = settings->value(QLatin1String(keepFileUndoCheckoutKeyC), true).toBool();
|
2011-06-05 17:58:02 +03:00
|
|
|
QString sDiffType = settings->value(QLatin1String(diffTypeKeyC), QLatin1String("Graphical")).toString();
|
|
|
|
|
switch (sDiffType[0].toUpper().toLatin1()) {
|
|
|
|
|
case 'G': diffType = GraphicalDiff; break;
|
|
|
|
|
case 'E': diffType = ExternalDiff; break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
diffArgs = settings->value(QLatin1String(diffArgsKeyC), QLatin1String(defaultDiffArgs)).toString();
|
|
|
|
|
autoAssignActivityName = settings->value(QLatin1String(autoAssignActivityKeyC), true).toBool();
|
|
|
|
|
historyCount = settings->value(QLatin1String(historyCountKeyC), int(defaultHistoryCount)).toInt();
|
|
|
|
|
disableIndexer = settings->value(QLatin1String(disableIndexerKeyC), false).toBool();
|
|
|
|
|
indexOnlyVOBs = settings->value(QLatin1String(indexOnlyVOBsC), QString()).toString();
|
2012-09-02 11:26:26 +03:00
|
|
|
extDiffAvailable = !Utils::Environment::systemEnvironment().searchInPath(QLatin1String("diff")).isEmpty();
|
2011-06-05 17:58:02 +03:00
|
|
|
settings->beginGroup(QLatin1String(totalFilesKeyC));
|
2022-06-02 14:23:03 +02:00
|
|
|
const QStringList views = settings->childKeys();
|
|
|
|
|
for (const QString &view : views)
|
2011-06-05 17:58:02 +03:00
|
|
|
totalFiles[view] = settings->value(view).toInt();
|
|
|
|
|
settings->endGroup();
|
|
|
|
|
settings->endGroup();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ClearCaseSettings::toSettings(QSettings *settings) const
|
|
|
|
|
{
|
2018-11-04 22:49:24 +01:00
|
|
|
using FilesConstIt = QHash<QString, int>::ConstIterator;
|
2013-03-08 09:53:02 +01:00
|
|
|
|
2011-06-05 17:58:02 +03:00
|
|
|
settings->beginGroup(QLatin1String(groupC));
|
|
|
|
|
settings->setValue(QLatin1String(commandKeyC), ccCommand);
|
|
|
|
|
settings->setValue(QLatin1String(autoCheckOutKeyC), autoCheckOut);
|
2015-01-02 16:13:57 +01:00
|
|
|
settings->setValue(QLatin1String(noCommentKeyC), noComment);
|
2015-01-02 16:15:20 +01:00
|
|
|
settings->setValue(QLatin1String(keepFileUndoCheckoutKeyC), keepFileUndoCheckout);
|
2011-06-05 17:58:02 +03:00
|
|
|
settings->setValue(QLatin1String(timeOutKeyC), timeOutS);
|
|
|
|
|
QString sDiffType;
|
|
|
|
|
switch (diffType) {
|
|
|
|
|
case ExternalDiff: sDiffType = QLatin1String("External"); break;
|
|
|
|
|
default: sDiffType = QLatin1String("Graphical"); break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
settings->setValue(QLatin1String(diffArgsKeyC), diffArgs);
|
|
|
|
|
settings->setValue(QLatin1String(diffTypeKeyC), sDiffType);
|
|
|
|
|
settings->setValue(QLatin1String(autoAssignActivityKeyC), autoAssignActivityName);
|
|
|
|
|
settings->setValue(QLatin1String(historyCountKeyC), historyCount);
|
|
|
|
|
settings->setValue(QLatin1String(disableIndexerKeyC), disableIndexer);
|
|
|
|
|
settings->setValue(QLatin1String(indexOnlyVOBsC), indexOnlyVOBs);
|
|
|
|
|
settings->beginGroup(QLatin1String(totalFilesKeyC));
|
2013-03-08 09:53:02 +01:00
|
|
|
const FilesConstIt fcend = totalFiles.constEnd();
|
|
|
|
|
for (FilesConstIt it = totalFiles.constBegin(); it != fcend; ++it)
|
|
|
|
|
settings->setValue(it.key(), it.value());
|
2011-06-05 17:58:02 +03:00
|
|
|
settings->endGroup();
|
|
|
|
|
settings->endGroup();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool ClearCaseSettings::equals(const ClearCaseSettings &s) const
|
|
|
|
|
{
|
2015-01-02 16:15:20 +01:00
|
|
|
return ccCommand == s.ccCommand
|
|
|
|
|
&& historyCount == s.historyCount
|
|
|
|
|
&& timeOutS == s.timeOutS
|
|
|
|
|
&& autoCheckOut == s.autoCheckOut
|
|
|
|
|
&& noComment == s.noComment
|
|
|
|
|
&& keepFileUndoCheckout == s.keepFileUndoCheckout
|
|
|
|
|
&& diffType == s.diffType
|
|
|
|
|
&& diffArgs == s.diffArgs
|
2011-06-05 17:58:02 +03:00
|
|
|
&& autoAssignActivityName == s.autoAssignActivityName
|
2015-01-02 16:15:20 +01:00
|
|
|
&& disableIndexer == s.disableIndexer
|
|
|
|
|
&& indexOnlyVOBs == s.indexOnlyVOBs
|
|
|
|
|
&& totalFiles == s.totalFiles;
|
2011-06-05 17:58:02 +03:00
|
|
|
}
|
2022-09-29 14:47:34 +02:00
|
|
|
|
|
|
|
|
} // ClearCase::Internal
|