aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/vcsbase/vcsenums.h
blob: 69f85f2e5d1899fc0349c9a4600e51de18016f41 (plain)
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
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0

#pragma once

#include "vcsbase_global.h"

namespace VcsBase {

enum class RunFlags {
    None                   = 0,         // Empty.
    // QtcProcess related
    MergeOutputChannels    = (1 <<  0), // See QProcess::ProcessChannelMode::MergedChannels.
    ForceCLocale           = (1 <<  1), // Force C-locale, sets LANG and LANGUAGE env vars to "C".
    UseEventLoop           = (1 <<  2), // Use event loop when executed in UI thread with
                                        // runBlocking().
    // Decorator related
    SuppressStdErr         = (1 <<  3), // Suppress standard error output.
    SuppressFailMessage    = (1 <<  4), // No message about command failure.
    SuppressCommandLogging = (1 <<  5), // No starting command log entry.
    ShowSuccessMessage     = (1 <<  6), // Show message about successful completion of command.
    ShowStdOut             = (1 <<  7), // Show standard output.
    ProgressiveOutput      = (1 <<  8), // Emit stdOutText() and stdErrText() signals.
    ExpectRepoChanges      = (1 <<  9), // Expect changes in repository by the command.
    NoOutput               = SuppressStdErr | SuppressFailMessage | SuppressCommandLogging
};

inline void operator|=(RunFlags &p, RunFlags r)
{
    p = RunFlags(int(p) | int(r));
}

inline RunFlags operator|(RunFlags p, RunFlags r)
{
    return RunFlags(int(p) | int(r));
}

inline void operator&=(RunFlags &p, RunFlags r)
{
    p = RunFlags(int(p) & int(r));
}

// Note, that it returns bool, not RunFlags.
// It's only meant for testing whether a specific bit is set.
inline bool operator&(RunFlags p, RunFlags r)
{
    return bool(int(p) & int(r));
}

} // namespace VcsBase