File indexing completed on 2024-04-21 03:57:45
0001 /* 0002 SPDX-FileCopyrightText: 2013 Christoph Cullmann <cullmann@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include <ktexteditor/application.h> 0008 #include <ktexteditor/mainwindow.h> 0009 #include <ktexteditor/plugin.h> 0010 0011 #include "kateglobal.h" 0012 0013 namespace KTextEditor 0014 { 0015 Application::Application(QObject *parent) 0016 : QObject(parent) 0017 , d(nullptr) 0018 { 0019 } 0020 0021 Application::~Application() = default; 0022 0023 bool Application::quit() 0024 { 0025 // dispatch to parent 0026 bool success = false; 0027 QMetaObject::invokeMethod(parent(), "quit", Qt::DirectConnection, Q_RETURN_ARG(bool, success)); 0028 0029 return success; 0030 } 0031 0032 QList<KTextEditor::MainWindow *> Application::mainWindows() 0033 { 0034 // dispatch to parent 0035 QList<KTextEditor::MainWindow *> mainWindow; 0036 QMetaObject::invokeMethod(parent(), "mainWindows", Qt::DirectConnection, Q_RETURN_ARG(QList<KTextEditor::MainWindow *>, mainWindow)); 0037 return mainWindow; 0038 } 0039 0040 KTextEditor::MainWindow *Application::activeMainWindow() 0041 { 0042 // dispatch to parent 0043 KTextEditor::MainWindow *window = nullptr; 0044 QMetaObject::invokeMethod(parent(), "activeMainWindow", Qt::DirectConnection, Q_RETURN_ARG(KTextEditor::MainWindow *, window)); 0045 0046 // always return some kind of window to not need to check for valid pointer 0047 return window ? window : KTextEditor::EditorPrivate::self()->dummyMainWindow(); 0048 } 0049 0050 QList<KTextEditor::Document *> Application::documents() 0051 { 0052 // dispatch to parent 0053 QList<KTextEditor::Document *> documents; 0054 QMetaObject::invokeMethod(parent(), "documents", Qt::DirectConnection, Q_RETURN_ARG(QList<KTextEditor::Document *>, documents)); 0055 return documents; 0056 } 0057 0058 KTextEditor::Document *Application::findUrl(const QUrl &url) 0059 { 0060 // dispatch to parent 0061 KTextEditor::Document *document = nullptr; 0062 QMetaObject::invokeMethod(parent(), "findUrl", Qt::DirectConnection, Q_RETURN_ARG(KTextEditor::Document *, document), Q_ARG(QUrl, url)); 0063 return document; 0064 } 0065 0066 KTextEditor::Document *Application::openUrl(const QUrl &url, const QString &encoding) 0067 { 0068 // dispatch to parent 0069 KTextEditor::Document *document = nullptr; 0070 QMetaObject::invokeMethod(parent(), 0071 "openUrl", 0072 Qt::DirectConnection, 0073 Q_RETURN_ARG(KTextEditor::Document *, document), 0074 Q_ARG(QUrl, url), 0075 Q_ARG(QString, encoding)); 0076 return document; 0077 } 0078 0079 bool Application::closeDocument(KTextEditor::Document *document) 0080 { 0081 // dispatch to parent 0082 bool success = false; 0083 QMetaObject::invokeMethod(parent(), "closeDocument", Qt::DirectConnection, Q_RETURN_ARG(bool, success), Q_ARG(KTextEditor::Document *, document)); 0084 return success; 0085 } 0086 0087 bool Application::closeDocuments(const QList<KTextEditor::Document *> &documents) 0088 { 0089 // dispatch to parent 0090 bool success = false; 0091 QMetaObject::invokeMethod(parent(), "closeDocuments", Qt::DirectConnection, Q_RETURN_ARG(bool, success), Q_ARG(QList<KTextEditor::Document *>, documents)); 0092 return success; 0093 } 0094 0095 KTextEditor::Plugin *Application::plugin(const QString &name) 0096 { 0097 // dispatch to parent 0098 Plugin *plugin = nullptr; 0099 QMetaObject::invokeMethod(parent(), "plugin", Qt::DirectConnection, Q_RETURN_ARG(KTextEditor::Plugin *, plugin), Q_ARG(QString, name)); 0100 return plugin; 0101 } 0102 0103 } // namespace KTextEditor