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 }