diff options
author | Marcus Tillmanns <[email protected]> | 2023-02-23 12:47:39 +0100 |
---|---|---|
committer | Marcus Tillmanns <[email protected]> | 2023-02-24 10:19:33 +0000 |
commit | 682ef157d8561cb9648be8efcf45bdc8d0e47ea7 (patch) | |
tree | 43b46db310635710df45113b443e2d89deeedbb3 /src/libs/utils/terminalhooks.cpp | |
parent | d5a9e28a968d13f9c437033d647b5da8eaf09dc9 (diff) |
Terminal: Add Terminal plugin
Adds a new Terminal plugin that provides a Terminal pane inside
Qt Creator.
Fixes: QTCREATORBUG-8511
Change-Id: I7eacb3efa2463d7df9f383ae3fc33254fb9019a9
Reviewed-by: <[email protected]>
Reviewed-by: Qt CI Bot <[email protected]>
Reviewed-by: hjk <[email protected]>
Diffstat (limited to 'src/libs/utils/terminalhooks.cpp')
-rw-r--r-- | src/libs/utils/terminalhooks.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/libs/utils/terminalhooks.cpp b/src/libs/utils/terminalhooks.cpp new file mode 100644 index 00000000000..d0b48075683 --- /dev/null +++ b/src/libs/utils/terminalhooks.cpp @@ -0,0 +1,48 @@ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0 + +#include "terminalhooks.h" + +#include "filepath.h" +#include "terminalprocess_p.h" + +namespace Utils::Terminal { + +struct HooksPrivate +{ + HooksPrivate() + : m_openTerminalHook([](const OpenTerminalParameters ¶meters) { + DeviceFileHooks::instance().openTerminal(parameters.workingDirectory.value_or( + FilePath{}), + parameters.environment.value_or(Environment{})); + }) + , m_createTerminalProcessInterfaceHook( + []() -> ProcessInterface * { return new Internal::TerminalImpl(); }) + {} + + Hooks::OpenTerminalHook m_openTerminalHook; + Hooks::CreateTerminalProcessInterfaceHook m_createTerminalProcessInterfaceHook; +}; + +Hooks &Hooks::instance() +{ + static Hooks manager; + return manager; +} + +Hooks::Hooks() + : d(new HooksPrivate()) +{} + +Hooks::~Hooks() = default; + +Hooks::OpenTerminalHook &Hooks::openTerminalHook() +{ + return d->m_openTerminalHook; +} +Hooks::CreateTerminalProcessInterfaceHook &Hooks::createTerminalProcessInterfaceHook() +{ + return d->m_createTerminalProcessInterfaceHook; +} + +} // namespace Utils::Terminal |