1/*
2 SPDX-FileCopyrightText: 1997 Torben Weis <weis@stud.uni-frankfurt.de>
3 SPDX-FileCopyrightText: 1999 Dirk Mueller <mueller@kde.org>
4 Portions SPDX-FileCopyrightText: 1999 Preston Brown <pbrown@kde.org>
5 SPDX-FileCopyrightText: 2007 Pino Toscano <pino@kde.org>
6 SPDX-FileCopyrightText: 2023 Harald Sitter <sitter@kde.org>
7
8 SPDX-License-Identifier: LGPL-2.0-or-later
9*/
10
11#pragma once
12
13#include <QString>
14
15#include <KService>
16
17#include "kiocore_export.h"
18
19namespace KIO
20{
21
22/**
23 * Core class for open with style dialog handling. This only implements core functionality. For an actual open with
24 * implementation see KOpenWithDialog. For a way to trigger open with dialogs see OpenUrlJob and OpenWithHandlerInterface.
25 */
26class KIOCORE_EXPORT OpenWith
27{
28public:
29 struct [[nodiscard]] AcceptResult {
30 /// Whether the accept was successful (if not error is set)
31 bool accept;
32 /// The error message if the acccept failed
33 QString error;
34 /// Whether the sycoca needs rebuilding (e.g. call KBuildSycocaProgressDialog::rebuildKSycoca)
35 bool rebuildSycoca = false;
36 };
37 /**
38 * Accept an openwith request with the provided arguments as context.
39 * This function may have side effects to do with accepting, such as setting the default application for the
40 * mimetype if @p remember is true.
41 * @returns an AcceptResult
42 */
43 static AcceptResult accept(KService::Ptr &service,
44 const QString &typedExec,
45 bool remember,
46 const QString &mimeType,
47 bool openInTerminal,
48 bool lingerTerminal,
49 bool saveNewApps);
50};
51
52} // namespace KIO
53

source code of kio/src/core/openwith.h