1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
// Copyright (C) 2016 AudioCodes Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "clearcasesettings.h"
#include <utils/environment.h>
#include <utils/qtcsettings.h>
using namespace Utils;
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";
enum { defaultTimeOutS = 30, defaultHistoryCount = 50 };
static QString defaultCommand()
{
return QLatin1String("cleartool" QTC_HOST_EXE_SUFFIX);
}
ClearCaseSettings::ClearCaseSettings() :
ccCommand(defaultCommand()),
diffArgs(QLatin1String(defaultDiffArgs)),
historyCount(defaultHistoryCount),
timeOutS(defaultTimeOutS)
{ }
void ClearCaseSettings::fromSettings(QtcSettings *settings)
{
settings->beginGroup(groupC);
ccCommand = settings->value(commandKeyC, defaultCommand()).toString();
ccBinaryPath = Utils::Environment::systemEnvironment().searchInPath(ccCommand);
timeOutS = settings->value(timeOutKeyC, defaultTimeOutS).toInt();
autoCheckOut = settings->value(autoCheckOutKeyC, false).toBool();
noComment = settings->value(noCommentKeyC, false).toBool();
keepFileUndoCheckout = settings->value(keepFileUndoCheckoutKeyC, true).toBool();
const QString sDiffType = settings->value(diffTypeKeyC,
QLatin1String("Graphical")).toString();
switch (sDiffType[0].toUpper().toLatin1()) {
case 'G': diffType = GraphicalDiff; break;
case 'E': diffType = ExternalDiff; break;
}
diffArgs = settings->value(diffArgsKeyC, QLatin1String(defaultDiffArgs)).toString();
autoAssignActivityName = settings->value(autoAssignActivityKeyC, true).toBool();
historyCount = settings->value(historyCountKeyC, int(defaultHistoryCount)).toInt();
disableIndexer = settings->value(disableIndexerKeyC, false).toBool();
indexOnlyVOBs = settings->value(indexOnlyVOBsC, QString()).toString();
extDiffAvailable = !Utils::Environment::systemEnvironment().searchInPath(QLatin1String("diff")).isEmpty();
settings->beginGroup(totalFilesKeyC);
const KeyList views = settings->childKeys();
for (const Key &view : views)
totalFiles[view] = settings->value(view).toInt();
settings->endGroup();
settings->endGroup();
}
void ClearCaseSettings::toSettings(QtcSettings *settings) const
{
using FilesConstIt = QHash<Key, int>::ConstIterator;
settings->beginGroup(groupC);
settings->setValue(commandKeyC, ccCommand);
settings->setValue(autoCheckOutKeyC, autoCheckOut);
settings->setValue(noCommentKeyC, noComment);
settings->setValue(keepFileUndoCheckoutKeyC, keepFileUndoCheckout);
settings->setValue(timeOutKeyC, timeOutS);
QString sDiffType;
switch (diffType) {
case ExternalDiff: sDiffType = QLatin1String("External"); break;
default: sDiffType = QLatin1String("Graphical"); break;
}
settings->setValue(diffArgsKeyC, diffArgs);
settings->setValue(diffTypeKeyC, sDiffType);
settings->setValue(autoAssignActivityKeyC, autoAssignActivityName);
settings->setValue(historyCountKeyC, historyCount);
settings->setValue(disableIndexerKeyC, disableIndexer);
settings->setValue(indexOnlyVOBsC, indexOnlyVOBs);
settings->beginGroup(totalFilesKeyC);
const FilesConstIt fcend = totalFiles.constEnd();
for (FilesConstIt it = totalFiles.constBegin(); it != fcend; ++it)
settings->setValue(it.key(), it.value());
settings->endGroup();
settings->endGroup();
}
bool ClearCaseSettings::equals(const ClearCaseSettings &s) const
{
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
&& autoAssignActivityName == s.autoAssignActivityName
&& disableIndexer == s.disableIndexer
&& indexOnlyVOBs == s.indexOnlyVOBs
&& totalFiles == s.totalFiles;
}
} // ClearCase::Internal
|