thedesk/desktop-portal/main.cpp
2023-06-10 00:46:43 +10:00

54 lines
2 KiB
C++

/****************************************
*
* INSERT-PROJECT-NAME-HERE - INSERT-GENERIC-NAME-HERE
* Copyright (C) 2021 Victor Tran
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* *************************************/
#include <tapplication.h>
#include "interfaces/accessinterface.h"
#include "interfaces/accountinterface.h"
#include "interfaces/filechooserinterface.h"
#include "interfaces/notificationinterface.h"
#include "interfaces/screenshotinterface.h"
#include "interfaces/settingsinterface.h"
#include <tsettings.h>
#include <QDBusConnection>
int main(int argc, char* argv[]) {
// Turn off flatpak forwarding for ourselves
qputenv("TD_PLATFORM_NO_FLATPAK_FORWARD", "1");
tApplication a(argc, argv);
a.setQuitOnLastWindowClosed(false);
QDBusConnection::sessionBus().registerService("org.freedesktop.impl.portal.desktop.thedesk");
tSettings::registerDefaults("theSuite", "theDesk.platform", "/usr/share/defaults/thedesk-platform.conf");
QObject* rootDbusObject = new QObject();
new FileChooserInterface(rootDbusObject);
new SettingsInterface(rootDbusObject);
new AccessInterface(rootDbusObject);
new AccountInterface(rootDbusObject);
new ScreenshotInterface(rootDbusObject);
new NotificationInterface(rootDbusObject);
QDBusConnection::sessionBus().registerObject("/org/freedesktop/portal/desktop", rootDbusObject, QDBusConnection::ExportAdaptors);
return a.exec();
}