File indexing completed on 2024-04-28 03:52:41
0001 /* 0002 This file is part of the KDE libraries 0003 SPDX-FileCopyrightText: 2000, 2006 David Faure <faure@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.0-only 0006 */ 0007 0008 #include "keditbookmarks_p.h" 0009 0010 #include <QGuiApplication> 0011 #include <QObject> 0012 #include <QProcess> 0013 #include <QStandardPaths> 0014 0015 #include "kbookmarksettings_p.h" 0016 0017 void KEditBookmarks::setBrowserMode(bool browserMode) 0018 { 0019 m_browserMode = browserMode; 0020 } 0021 0022 KEditBookmarks::OpenResult KEditBookmarks::openForFile(const QString &file) 0023 { 0024 QStringList args; 0025 args << QStringLiteral("--customcaption") << QGuiApplication::applicationDisplayName(); 0026 0027 if (!m_browserMode) { 0028 args << QStringLiteral("--nobrowser"); 0029 } 0030 0031 args << file; 0032 return startKEditBookmarks(args); 0033 } 0034 0035 KEditBookmarks::OpenResult KEditBookmarks::openForFileAtAddress(const QString &file, const QString &address) 0036 { 0037 QStringList args; 0038 args << QStringLiteral("--customcaption") << QGuiApplication::applicationDisplayName(); 0039 0040 if (!m_browserMode) { 0041 args << QStringLiteral("--nobrowser"); 0042 } 0043 0044 args << QStringLiteral("--address") << address; 0045 0046 args << file; 0047 return startKEditBookmarks(args); 0048 } 0049 0050 KEditBookmarks::OpenResult KEditBookmarks::startKEditBookmarks(const QStringList &args) 0051 { 0052 const QString exec = QStandardPaths::findExecutable(QStringLiteral(KEDITBOOKMARKS_BINARY)); 0053 if (!exec.isEmpty()) { 0054 bool success = QProcess::startDetached(exec, args); 0055 0056 if (!success) { 0057 OpenResult result; 0058 result.m_sucess = false; 0059 result.m_errorMessage = QObject::tr("keditbookmarks could not be started"); 0060 return result; 0061 } 0062 0063 } else { 0064 OpenResult result; 0065 result.m_sucess = false; 0066 result.m_errorMessage = QObject::tr("The keditbookmarks executable was not found"); 0067 return result; 0068 } 0069 0070 OpenResult result; 0071 result.m_sucess = true; 0072 return result; 0073 }