File indexing completed on 2024-04-14 04:53:13

0001 /* This file is part of the KDE project
0002     SPDX-FileCopyrightText: 2000 Simon Hausmann <hausmann@kde.org>
0003     SPDX-FileCopyrightText: 2000, 2006 David Faure <faure@kde.org>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #include "KonqMainWindowAdaptor.h"
0009 #include "KonqViewAdaptor.h"
0010 #include "konqview.h"
0011 
0012 #include "konqdebug.h"
0013 #include <kstartupinfo.h>
0014 #include <kwindowsystem_version.h>
0015 
0016 KonqMainWindowAdaptor::KonqMainWindowAdaptor(KonqMainWindow *mainWindow)
0017     : QDBusAbstractAdaptor(mainWindow), m_pMainWindow(mainWindow)
0018 {
0019 }
0020 
0021 KonqMainWindowAdaptor::~KonqMainWindowAdaptor()
0022 {
0023 }
0024 
0025 void KonqMainWindowAdaptor::openUrl(const QString &url, bool tempFile)
0026 {
0027     m_pMainWindow->openFilteredUrl(url, false, tempFile);
0028 }
0029 
0030 void KonqMainWindowAdaptor::newTab(const QString &url, bool tempFile)
0031 {
0032     m_pMainWindow->openFilteredUrl(url, true, tempFile);
0033 }
0034 
0035 void KonqMainWindowAdaptor::newTabASN(const QString &url, const QByteArray &startup_id, bool tempFile)
0036 {
0037     m_pMainWindow->setAttribute(Qt::WA_NativeWindow, true);
0038     KStartupInfo::setNewStartupId(m_pMainWindow->windowHandle(), startup_id);
0039     m_pMainWindow->openFilteredUrl(url, true, tempFile);
0040 }
0041 
0042 void KonqMainWindowAdaptor::newTabASNWithMimeType(const QString &url, const QString &mimetype, const QByteArray &startup_id, bool tempFile)
0043 {
0044     m_pMainWindow->setAttribute(Qt::WA_NativeWindow, true);
0045     KStartupInfo::setNewStartupId(m_pMainWindow->windowHandle(), startup_id);
0046     m_pMainWindow->openFilteredUrl(url, mimetype, true, tempFile);
0047 }
0048 
0049 void KonqMainWindowAdaptor::reload()
0050 {
0051     m_pMainWindow->slotReload();
0052 }
0053 
0054 QDBusObjectPath KonqMainWindowAdaptor::currentView()
0055 {
0056     qCDebug(KONQUEROR_LOG);
0057     KonqView *view = m_pMainWindow->currentView();
0058     if (!view) {
0059         return QDBusObjectPath();
0060     }
0061 
0062     return QDBusObjectPath(view->dbusObjectPath());
0063 }
0064 
0065 QDBusObjectPath KonqMainWindowAdaptor::currentPart()
0066 {
0067     KonqView *view = m_pMainWindow->currentView();
0068     if (!view) {
0069         return QDBusObjectPath();
0070     }
0071 
0072     return QDBusObjectPath(view->partObjectPath());
0073 }
0074 
0075 QDBusObjectPath KonqMainWindowAdaptor::view(int viewNumber)
0076 {
0077     KonqMainWindow::MapViews viewMap = m_pMainWindow->viewMap();
0078     KonqMainWindow::MapViews::const_iterator it = viewMap.constBegin();
0079     for (int i = 0; it != viewMap.constEnd() && i < viewNumber; ++i) {
0080         ++it;
0081     }
0082     if (it == viewMap.constEnd()) {
0083         return QDBusObjectPath();
0084     }
0085     return QDBusObjectPath((*it)->dbusObjectPath());
0086 }
0087 
0088 QDBusObjectPath KonqMainWindowAdaptor::part(int partNumber)
0089 {
0090     KonqMainWindow::MapViews viewMap = m_pMainWindow->viewMap();
0091     KonqMainWindow::MapViews::const_iterator it = viewMap.constBegin();
0092     for (int i = 0; it != viewMap.constEnd() && i < partNumber; ++i) {
0093         ++it;
0094     }
0095     if (it == viewMap.constEnd()) {
0096         return QDBusObjectPath();
0097     }
0098     return QDBusObjectPath((*it)->partObjectPath());
0099 }
0100 
0101 void KonqMainWindowAdaptor::splitViewHorizontally()
0102 {
0103     m_pMainWindow->slotSplitViewHorizontal();
0104 }
0105 
0106 void KonqMainWindowAdaptor::splitViewVertically()
0107 {
0108     m_pMainWindow->slotSplitViewVertical();
0109 }
0110