mirror of
https://github.com/arcan1s/netctl-gui.git
synced 2025-04-24 15:37:23 +00:00
add dbus interface proto
This commit is contained in:
parent
e8a7865e99
commit
447bcf8a0e
@ -9,6 +9,7 @@ Ver.1.3.0
|
|||||||
* gui:
|
* gui:
|
||||||
+ add 3rd party license information
|
+ add 3rd party license information
|
||||||
+ add system tray icon
|
+ add system tray icon
|
||||||
|
+ add dbus interface org.netctlgui.netctlgui
|
||||||
* update to library changes
|
* update to library changes
|
||||||
* rewrite tables to use toolTip
|
* rewrite tables to use toolTip
|
||||||
* library:
|
* library:
|
||||||
|
@ -16,13 +16,15 @@ link_directories (${PROJECT_LIBRARY}/src/lib)
|
|||||||
|
|
||||||
if (USE_QT5)
|
if (USE_QT5)
|
||||||
find_package(Qt5Core REQUIRED)
|
find_package(Qt5Core REQUIRED)
|
||||||
|
find_package(Qt5DBus REQUIRED)
|
||||||
find_package(Qt5Widgets REQUIRED)
|
find_package(Qt5Widgets REQUIRED)
|
||||||
find_package(Qt5LinguistTools REQUIRED)
|
find_package(Qt5LinguistTools REQUIRED)
|
||||||
add_definitions(${Qt5Core_DEFINITIONS})
|
add_definitions(${Qt5Core_DEFINITIONS})
|
||||||
|
add_definitions(${Qt5DBus_DEFINITIONS})
|
||||||
add_definitions(${Qt5Widgets_DEFINITIONS})
|
add_definitions(${Qt5Widgets_DEFINITIONS})
|
||||||
add_definitions(${Qt5LinguistTools_DEFINITIONS})
|
add_definitions(${Qt5LinguistTools_DEFINITIONS})
|
||||||
include_directories (${Qt5Core_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS})
|
include_directories (${Qt5Core_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS})
|
||||||
set (QT_NEEDED_LIBS ${Qt5Core_LIBRARIES} ${Qt5Widgets_LIBRARIES})
|
set (QT_NEEDED_LIBS ${Qt5Core_LIBRARIES} ${Qt5DBus_LIBRARIES} ${Qt5Widgets_LIBRARIES})
|
||||||
qt5_wrap_cpp (MOC_SOURCES ${HEADERS})
|
qt5_wrap_cpp (MOC_SOURCES ${HEADERS})
|
||||||
qt5_wrap_ui (UI_HEADERS ${FORMS})
|
qt5_wrap_ui (UI_HEADERS ${FORMS})
|
||||||
qt5_add_resources (QRC_SOURCES ${RESOURCES})
|
qt5_add_resources (QRC_SOURCES ${RESOURCES})
|
||||||
@ -37,9 +39,9 @@ if (USE_QT5)
|
|||||||
add_custom_target (translations COMMAND ${Qt5_LUPDATE_EXECUTABLE} ${HEADERS} ${SOURCES} ${UI_HEADERS} -ts ${TRANSLATIONS})
|
add_custom_target (translations COMMAND ${Qt5_LUPDATE_EXECUTABLE} ${HEADERS} ${SOURCES} ${UI_HEADERS} -ts ${TRANSLATIONS})
|
||||||
add_custom_command (TARGET translations COMMAND ${Qt5_LRELEASE_EXECUTABLE} ${TRANSLATIONS})
|
add_custom_command (TARGET translations COMMAND ${Qt5_LRELEASE_EXECUTABLE} ${TRANSLATIONS})
|
||||||
else ()
|
else ()
|
||||||
find_package (Qt4 REQUIRED)
|
find_package (Qt4 COMPONENTS QtCore QtDBus QtGui REQUIRED)
|
||||||
include (${QT_USE_FILE})
|
include (${QT_USE_FILE})
|
||||||
set (QT_NEEDED_LIBS ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY})
|
set (QT_NEEDED_LIBS ${QT_QTCORE_LIBRARY} ${QT_QTDBUS_LIBRARY} ${QT_QTGUI_LIBRARY})
|
||||||
qt4_wrap_cpp (MOC_SOURCES ${HEADERS})
|
qt4_wrap_cpp (MOC_SOURCES ${HEADERS})
|
||||||
qt4_wrap_ui (UI_HEADERS ${FORMS})
|
qt4_wrap_ui (UI_HEADERS ${FORMS})
|
||||||
qt4_add_resources (QRC_SOURCES ${RESOURCES})
|
qt4_add_resources (QRC_SOURCES ${RESOURCES})
|
||||||
|
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
|
||||||
|
#include <QDBusConnection>
|
||||||
|
#include <QDBusMessage>
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QTranslator>
|
#include <QTranslator>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
@ -30,6 +32,19 @@
|
|||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
bool restoreExistSession()
|
||||||
|
{
|
||||||
|
QDBusConnection bus = QDBusConnection::sessionBus();
|
||||||
|
QDBusMessage request = QDBusMessage::createMethodCall(DBUS_SERVICE,
|
||||||
|
DBUS_OBJECT_PATH,
|
||||||
|
DBUS_INTERFACE,
|
||||||
|
QString("RestoreWindow"));
|
||||||
|
QDBusMessage response = bus.call(request);
|
||||||
|
QList<QVariant> arguments = response.arguments();
|
||||||
|
return ((arguments.size()==1) && arguments[0].toBool());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
QChar isParametrEnable(const bool parametr)
|
QChar isParametrEnable(const bool parametr)
|
||||||
{
|
{
|
||||||
if (parametr)
|
if (parametr)
|
||||||
@ -41,6 +56,9 @@ QChar isParametrEnable(const bool parametr)
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
if (restoreExistSession())
|
||||||
|
return 0;
|
||||||
|
|
||||||
QApplication a(argc, argv);
|
QApplication a(argc, argv);
|
||||||
|
|
||||||
// config path
|
// config path
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include "mainwindow.h"
|
#include "mainwindow.h"
|
||||||
#include "ui_mainwindow.h"
|
#include "ui_mainwindow.h"
|
||||||
|
|
||||||
|
#include <QDBusConnection>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QDesktopServices>
|
#include <QDesktopServices>
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
@ -36,6 +37,7 @@
|
|||||||
#include "macvlanwidget.h"
|
#include "macvlanwidget.h"
|
||||||
#include "mobilewidget.h"
|
#include "mobilewidget.h"
|
||||||
#include "netctlautowindow.h"
|
#include "netctlautowindow.h"
|
||||||
|
#include "netctlguiadaptor.h"
|
||||||
#include "passwdwidget.h"
|
#include "passwdwidget.h"
|
||||||
#include "pppoewidget.h"
|
#include "pppoewidget.h"
|
||||||
#include "settingswindow.h"
|
#include "settingswindow.h"
|
||||||
@ -87,6 +89,7 @@ MainWindow::MainWindow(QWidget *parent,
|
|||||||
configuration[optionsDict.keys()[i]] = optionsDict[optionsDict.keys()[i]];
|
configuration[optionsDict.keys()[i]] = optionsDict[optionsDict.keys()[i]];
|
||||||
|
|
||||||
// backend
|
// backend
|
||||||
|
createDBusSession();
|
||||||
netctlCommand = new Netctl(debug, configuration);
|
netctlCommand = new Netctl(debug, configuration);
|
||||||
netctlProfile = new NetctlProfile(debug, configuration);
|
netctlProfile = new NetctlProfile(debug, configuration);
|
||||||
wpaCommand = new WpaSup(debug, configuration);
|
wpaCommand = new WpaSup(debug, configuration);
|
||||||
@ -346,6 +349,19 @@ void MainWindow::createActions()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MainWindow::createDBusSession()
|
||||||
|
{
|
||||||
|
if (debug) qDebug() << "[MainWindow]" << "[createDBusSession]";
|
||||||
|
|
||||||
|
new NetctlGuiAdaptor(this, debug);
|
||||||
|
QDBusConnection bus = QDBusConnection::sessionBus();
|
||||||
|
if (!bus.registerService(QString(DBUS_SERVICE)))
|
||||||
|
if (debug) qDebug() << "[MainWindow]" << "[createDBusSession]" << ":" << "Could not register service";
|
||||||
|
if (!bus.registerObject(QString(DBUS_OBJECT_PATH), this))
|
||||||
|
if (debug) qDebug() << "[MainWindow]" << "[createDBusSession]" << ":" << "Could not register object";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void MainWindow::keyPressEvent(QKeyEvent *pressedKey)
|
void MainWindow::keyPressEvent(QKeyEvent *pressedKey)
|
||||||
{
|
{
|
||||||
if (debug) qDebug() << "[MainWindow]" << "[keyPressEvent]";
|
if (debug) qDebug() << "[MainWindow]" << "[keyPressEvent]";
|
||||||
|
@ -142,6 +142,7 @@ private:
|
|||||||
bool checkExternalApps(const QString apps);
|
bool checkExternalApps(const QString apps);
|
||||||
QString checkStatus(const bool statusBool, const bool nullFalse = false);
|
QString checkStatus(const bool statusBool, const bool nullFalse = false);
|
||||||
void createActions();
|
void createActions();
|
||||||
|
void createDBusSession();
|
||||||
void keyPressEvent(QKeyEvent *pressedKey);
|
void keyPressEvent(QKeyEvent *pressedKey);
|
||||||
void setIconsToTabs();
|
void setIconsToTabs();
|
||||||
bool debug;
|
bool debug;
|
||||||
|
53
sources/gui/src/netctlguiadaptor.cpp
Normal file
53
sources/gui/src/netctlguiadaptor.cpp
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
* This file is part of netctl-gui *
|
||||||
|
* *
|
||||||
|
* netctl-gui 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. *
|
||||||
|
* *
|
||||||
|
* netctl-gui 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 netctl-gui. If not, see http://www.gnu.org/licenses/ *
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
#include "mainwindow.h"
|
||||||
|
#include "netctlguiadaptor.h"
|
||||||
|
|
||||||
|
|
||||||
|
NetctlGuiAdaptor::NetctlGuiAdaptor(MainWindow *parent, const bool debugCmd)
|
||||||
|
: QDBusAbstractAdaptor(parent),
|
||||||
|
debug(debugCmd),
|
||||||
|
mainWindow(parent)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NetctlGuiAdaptor::~NetctlGuiAdaptor()
|
||||||
|
{
|
||||||
|
if (debug) qDebug() << "[NetctlGuiAdaptor]" << "[~NetctlGuiAdaptor]";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QString NetctlGuiAdaptor::Information()
|
||||||
|
{
|
||||||
|
if (debug) qDebug() << "[NetctlGuiAdaptor]" << "[RestoreWindow]";
|
||||||
|
|
||||||
|
return mainWindow->getInformation();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool NetctlGuiAdaptor::RestoreWindow()
|
||||||
|
{
|
||||||
|
if (debug) qDebug() << "[NetctlGuiAdaptor]" << "[RestoreWindow]";
|
||||||
|
|
||||||
|
mainWindow->show();
|
||||||
|
return true;
|
||||||
|
}
|
46
sources/gui/src/netctlguiadaptor.h
Normal file
46
sources/gui/src/netctlguiadaptor.h
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
* This file is part of netctl-gui *
|
||||||
|
* *
|
||||||
|
* netctl-gui 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. *
|
||||||
|
* *
|
||||||
|
* netctl-gui 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 netctl-gui. If not, see http://www.gnu.org/licenses/ *
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#ifndef NETCTLGUIADAPTOR_H
|
||||||
|
#define NETCTLGUIADAPTOR_H
|
||||||
|
|
||||||
|
#include <QDBusAbstractAdaptor>
|
||||||
|
|
||||||
|
|
||||||
|
class MainWindow;
|
||||||
|
|
||||||
|
class NetctlGuiAdaptor : public QDBusAbstractAdaptor
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_CLASSINFO("D-Bus Interface", "org.netctlgui.netctlgui")
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit NetctlGuiAdaptor(MainWindow *parent = 0,
|
||||||
|
const bool debugCmd = false);
|
||||||
|
~NetctlGuiAdaptor();
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
QString Information();
|
||||||
|
bool RestoreWindow();
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool debug;
|
||||||
|
MainWindow *mainWindow;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* NETCTLGUIADAPTOR_H */
|
@ -28,6 +28,7 @@ class MainWindow;
|
|||||||
class TrayIcon : public QSystemTrayIcon
|
class TrayIcon : public QSystemTrayIcon
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit TrayIcon(QObject *parent = 0,
|
explicit TrayIcon(QObject *parent = 0,
|
||||||
const bool debugCmd = false);
|
const bool debugCmd = false);
|
||||||
|
@ -16,7 +16,7 @@ if (USE_QT5)
|
|||||||
set (QT_NEEDED_LIBS ${Qt5Core_LIBRARIES})
|
set (QT_NEEDED_LIBS ${Qt5Core_LIBRARIES})
|
||||||
qt5_wrap_cpp (MOC_SOURCES ${HEADERS})
|
qt5_wrap_cpp (MOC_SOURCES ${HEADERS})
|
||||||
else ()
|
else ()
|
||||||
find_package (Qt4 REQUIRED)
|
find_package (Qt4 COMPONENTS QtCore REQUIRED)
|
||||||
include (${QT_USE_FILE})
|
include (${QT_USE_FILE})
|
||||||
set (QT_NEEDED_LIBS ${QT_QTCORE_LIBRARY})
|
set (QT_NEEDED_LIBS ${QT_QTCORE_LIBRARY})
|
||||||
qt4_wrap_cpp (MOC_SOURCES ${HEADERS})
|
qt4_wrap_cpp (MOC_SOURCES ${HEADERS})
|
||||||
|
@ -27,4 +27,8 @@
|
|||||||
#define PROJECT_BUILD_PLASMOID "@BUILD_PLASMOID@"
|
#define PROJECT_BUILD_PLASMOID "@BUILD_PLASMOID@"
|
||||||
#define PROJECT_USE_QT5 "@USE_QT5@"
|
#define PROJECT_USE_QT5 "@USE_QT5@"
|
||||||
|
|
||||||
|
#define DBUS_SERVICE "org.netctlgui.netctlgui"
|
||||||
|
#define DBUS_OBJECT_PATH "/"
|
||||||
|
#define DBUS_INTERFACE "org.netctlgui.netctlgui"
|
||||||
|
|
||||||
#endif /* VERSION_H */
|
#endif /* VERSION_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user