use DBus Interface to show ukui-search window

This commit is contained in:
baijunjie@kylinos.cn 2021-08-09 21:00:15 +08:00
parent cc3cd423f9
commit 8ab2857b1b
4 changed files with 58 additions and 2 deletions

View File

@ -30,11 +30,13 @@ include(view/view.pri)
SOURCES += \
main.cpp \
mainwindow.cpp
mainwindow.cpp \
ukui-search-dubs-service.cpp
HEADERS += \
mainwindow.h \
mainwindow.h \ \
ukui-search-dbus-service.h
# Default rules for deployment.

View File

@ -38,6 +38,7 @@
#include "qt-local-peer.h"
#include "libsearch.h"
#include "global-settings.h"
#include "ukui-search-dbus-service.h"
using namespace Zeeker;
@ -263,6 +264,7 @@ int main(int argc, char *argv[]) {
//set main window to the center of screen
MainWindow *w = new MainWindow;
UkuiSearchDbusServices dbusService(w);
qApp->setWindowIcon(QIcon::fromTheme("kylin-search"));
centerToScreen(w);

View File

@ -0,0 +1,28 @@
#ifndef UKUISEARCHDBUSSERVICE_H
#define UKUISEARCHDBUSSERVICE_H
#include <QDBusConnection>
#include <QObject>
#include "mainwindow.h"
namespace Zeeker {
class UkuiSearchDbusServices: public QObject{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface","org.ukui.search.service")
public:
explicit UkuiSearchDbusServices(MainWindow *m);
~UkuiSearchDbusServices();
public Q_SLOTS:
void showWindow();
private:
MainWindow *m_mainWindow;
};
}
#endif // UKUISEARCHDBUSSERVICE_H

View File

@ -0,0 +1,24 @@
#include "ukui-search-dbus-service.h"
using namespace Zeeker;
void UkuiSearchDbusServices::showWindow(){
m_mainWindow->bootOptionsFilter("-s");
}
UkuiSearchDbusServices::UkuiSearchDbusServices(MainWindow *m)
{
m_mainWindow = m;
//注册服务
QDBusConnection sessionBus = QDBusConnection::sessionBus();
if(!sessionBus.registerService("org.ukui.search.service")){
qCritical() << "QDbus register service failed reason:" << sessionBus.lastError();
exit(1);
}
if(!sessionBus.registerObject("/", this, QDBusConnection::ExportAllSlots)){
qCritical() << "QDbus register object failed reason:" << sessionBus.lastError();
exit(2);
}
}
UkuiSearchDbusServices::~UkuiSearchDbusServices(){
}