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