diff --git a/sources/dataengine/dataengine.cppcheck b/sources/dataengine/dataengine.cppcheck
deleted file mode 100644
index 075652f..0000000
--- a/sources/dataengine/dataengine.cppcheck
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
- qt
-
-
diff --git a/sources/dataengine/netctl.conf b/sources/dataengine/netctl.conf
index 40aa930..41b7eaa 100644
--- a/sources/dataengine/netctl.conf
+++ b/sources/dataengine/netctl.conf
@@ -1,17 +1,9 @@
-# Configuration file for netctl data engine
-
-## Commands
-# command
+[Netctl commands]
NETCTLCMD=/usr/bin/netctl
-# netctl-auto command
NETCTLAUTOCMD=/usr/bin/netctl-auto
-## External IP
-# external IPv4 check command
+[External IP]
EXTIP4CMD=curl ip4.telize.com
-# 'true' - check external IPv4
EXTIP4=false
-# external IPv6 check command
EXTIP6CMD=curl ip6.telize.com
-# 'true' - check external IPv6
EXTIP6=false
diff --git a/sources/dataengine/netctl.cpp b/sources/dataengine/netctl.cpp
index 0ff6816..1bb1efd 100644
--- a/sources/dataengine/netctl.cpp
+++ b/sources/dataengine/netctl.cpp
@@ -23,6 +23,7 @@
#include
#include
#include
+#include
#include
#include
@@ -87,15 +88,6 @@ void Netctl::readConfiguration()
{
if (debug) qDebug() << PDEBUG;
- // default configuration
- QMap rawConfig;
- rawConfig[QString("EXTIP4")] = QString("false");
- rawConfig[QString("EXTIP4CMD")] = QString("curl ip4.telize.com");
- rawConfig[QString("EXTIP6")] = QString("false");
- rawConfig[QString("EXTIP6CMD")] = QString("curl ip6.telize.com");
- rawConfig[QString("NETCTLCMD")] = QString("/usr/bin/netctl");
- rawConfig[QString("NETCTLAUTOCMD")] = QString("/usr/bin/netctl-auto");
-
QString fileName;
#ifdef BUILD_KDE4
fileName = KGlobal::dirs()->findResource("config", "netctl.conf");
@@ -103,59 +95,22 @@ void Netctl::readConfiguration()
fileName = QStandardPaths::locate(QStandardPaths::ConfigLocation, QString("netctl.conf"));
#endif /* BUILD_KDE4 */
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << fileName;
- QFile configFile(fileName);
- if (!configFile.open(QIODevice::ReadOnly)) {
- configuration = updateConfiguration(rawConfig);
- return;
- }
- QString fileStr;
- QStringList value;
- while (true) {
- fileStr = QString(configFile.readLine()).trimmed();
- if ((fileStr.isEmpty()) && (!configFile.atEnd())) continue;
- if ((fileStr[0] == QChar('#')) && (!configFile.atEnd())) continue;
- if ((fileStr[0] == QChar(';')) && (!configFile.atEnd())) continue;
- if (fileStr.contains(QChar('='))) {
- value.clear();
- for (int i=1; i Netctl::updateConfiguration(const QMap rawConfig)
-{
- if (debug) qDebug() << PDEBUG;
-
- QMap config;
- QString key, value;
- // remove spaces and copy source map
- for (int i=0; i configuration;
void readConfiguration();
- QMap updateConfiguration(const QMap rawConfig);
};
diff --git a/sources/gui/src/gui.cppcheck b/sources/gui/src/gui.cppcheck
deleted file mode 100644
index 075652f..0000000
--- a/sources/gui/src/gui.cppcheck
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
- qt
-
-
diff --git a/sources/plasmoid-kde4/netctl.cpp b/sources/plasmoid-kde4/netctl.cpp
index a9689d0..ccd340f 100644
--- a/sources/plasmoid-kde4/netctl.cpp
+++ b/sources/plasmoid-kde4/netctl.cpp
@@ -28,6 +28,7 @@
#include
#include
#include
+#include
#include
@@ -150,80 +151,47 @@ QMap Netctl::readDataEngineConfiguration()
{
if (debug) qDebug() << PDEBUG;
- QMap rawConfig;
- rawConfig[QString("EXTIP4")] = QString("false");
- rawConfig[QString("EXTIP4CMD")] = QString("curl ip4.telize.com");
- rawConfig[QString("EXTIP6")] = QString("false");
- rawConfig[QString("EXTIP6CMD")] = QString("curl ip6.telize.com");
- rawConfig[QString("NETCTLCMD")] = QString("/usr/bin/netctl");
- rawConfig[QString("NETCTLAUTOCMD")] = QString("/usr/bin/netctl-auto");
-
- QString fileName = KGlobal::dirs()->findResource("config", "netctl.conf");
+ QMap configuration;
+ QString fileName;
+ fileName = KGlobal::dirs()->findResource("config", "netctl.conf");
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << fileName;
- QFile configFile(fileName);
- if (!configFile.open(QIODevice::ReadOnly))
- return updateDataEngineConfiguration(rawConfig);
- QString fileStr;
- QStringList value;
- while (true) {
- fileStr = QString(configFile.readLine()).trimmed();
- if ((fileStr.isEmpty()) && (!configFile.atEnd())) continue;
- if ((fileStr[0] == QChar('#')) && (!configFile.atEnd())) continue;
- if ((fileStr[0] == QChar(';')) && (!configFile.atEnd())) continue;
- if (fileStr.contains(QChar('='))) {
- value.clear();
- for (int i=1; i settings)
+void Netctl::writeDataEngineConfiguration(const QMap configuration)
{
if (debug) qDebug() << PDEBUG;
- QMap config = updateDataEngineConfiguration(settings);
QString fileName = KGlobal::dirs()->locateLocal("config", "netctl.conf");
- if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << fileName;
- QFile configFile(fileName);
- if (!configFile.open(QIODevice::WriteOnly)) return;
- for (int i=0; i Netctl::updateDataEngineConfiguration(const QMap rawConfig)
-{
- if (debug) qDebug() << PDEBUG;
+ settings.beginGroup(QString("External IP"));
+ settings.setValue(QString("EXTIP4"), configuration[QString("EXTIP4")]);
+ settings.setValue(QString("EXTIP4CMD"), configuration[QString("EXTIP4CMD")]);
+ settings.setValue(QString("EXTIP6"), configuration[QString("EXTIP6")]);
+ settings.setValue(QString("EXTIP6CMD"), configuration[QString("EXTIP6CMD")]);
+ settings.endGroup();
- QMap config;
- QString key, value;
- // remove spaces and copy source map
- for (int i=0; i readDataEngineConfiguration();
- void writeDataEngineConfiguration(const QMap settings);
- QMap updateDataEngineConfiguration(const QMap rawConfig);
+ void writeDataEngineConfiguration(const QMap configuration);
public slots:
// events
diff --git a/sources/plasmoid-kde4/plasmoid.cppcheck b/sources/plasmoid-kde4/plasmoid.cppcheck
deleted file mode 100644
index 075652f..0000000
--- a/sources/plasmoid-kde4/plasmoid.cppcheck
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
- qt
-
-
diff --git a/sources/plasmoid-kf5/plasmoid/contents/config/config.qml b/sources/plasmoid-kf5/plasmoid/contents/config/config.qml
index 6d931c9..e2efe75 100644
--- a/sources/plasmoid-kf5/plasmoid/contents/config/config.qml
+++ b/sources/plasmoid-kf5/plasmoid/contents/config/config.qml
@@ -33,6 +33,12 @@ ConfigModel {
source: "appearance.qml"
}
+ ConfigCategory {
+ name: i18n("DataEngine")
+ icon: "/usr/share/pixmaps/netctl-gui-widget.png"
+ source: "dataengine.qml"
+ }
+
ConfigCategory {
name: i18n("About")
icon: "help-about"
diff --git a/sources/plasmoid-kf5/plasmoid/contents/ui/dataengine.qml b/sources/plasmoid-kf5/plasmoid/contents/ui/dataengine.qml
new file mode 100644
index 0000000..54537f1
--- /dev/null
+++ b/sources/plasmoid-kf5/plasmoid/contents/ui/dataengine.qml
@@ -0,0 +1,144 @@
+/***************************************************************************
+ * 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/ *
+ ***************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Controls 1.0 as QtControls
+import QtQuick.Dialogs 1.1 as QtDialogs
+import QtQuick.Layouts 1.0 as QtLayouts
+
+import org.kde.plasma.private.netctl 1.0
+
+
+Item {
+ id: dataenginePage
+ width: childrenRect.width
+ height: childrenRect.height
+
+ property variant cfg_dataengine: NetctlAdds.readDataEngineConfiguration()
+
+ QtLayouts.ColumnLayout {
+ QtLayouts.RowLayout {
+ QtControls.Label {
+ text: i18n("Path to netctl")
+ }
+ QtControls.TextField {
+ id: netctlPath
+ QtLayouts.Layout.fillWidth: true
+ text: cfg_dataengine["NETCTLCMD"]
+ }
+ QtControls.Button {
+ text: i18n("Browse")
+ onClicked: netctlFileDialog.visible = true
+ }
+
+ QtDialogs.FileDialog {
+ id: netctlFileDialog
+ title: i18n("Select a path")
+ folder: "/usr/bin"
+ nameFilters: [ "All files (*)" ]
+ selectExisting: true
+ onAccepted: netctlPath.text = netctlFileDialog.fileUrl
+ }
+ }
+
+ QtLayouts.RowLayout {
+ QtControls.Label {
+ text: i18n("Path to netctl-auto")
+ }
+ QtControls.TextField {
+ id: netctlAutoPath
+ QtLayouts.Layout.fillWidth: true
+ text: cfg_dataengine["NETCTLAUTOCMD"]
+ }
+ QtControls.Button {
+ text: i18n("Browse")
+ onClicked: netctlAutoFileDialog.visible = true
+ }
+
+ QtDialogs.FileDialog {
+ id: netctlAutoFileDialog
+ title: i18n("Select a path")
+ folder: "/usr/bin"
+ nameFilters: [ "All files (*)" ]
+ selectExisting: true
+ onAccepted: netctlAutoPath.text = netctlAutoFileDialog.fileUrl
+ }
+ }
+
+ QtLayouts.RowLayout {
+ QtControls.CheckBox {
+ id: extIp4
+ text: i18n("Check external IPv4")
+ checked: cfg_dataengine["EXTIP4"] == "true"
+ }
+ QtControls.TextField {
+ id: extIp4Path
+ enabled: extIp4.checked
+ QtLayouts.Layout.fillWidth: true
+ text: cfg_dataengine["EXTIP4CMD"]
+ }
+ QtControls.Button {
+ enabled: extIp4.checked
+ text: i18n("Browse")
+ onClicked: extIp4FileDialog.visible = true
+ }
+
+ QtDialogs.FileDialog {
+ id: extIp4FileDialog
+ title: i18n("Select a path")
+ folder: "/usr/bin"
+ nameFilters: [ "All files (*)" ]
+ selectExisting: true
+ onAccepted: extIp4Path.text = extIp4FileDialog.fileUrl
+ }
+ }
+
+ QtLayouts.RowLayout {
+ QtControls.CheckBox {
+ id: extIp6
+ text: i18n("Check external IPv6")
+ checked: cfg_dataengine["EXTIP6"] == "true"
+ }
+ QtControls.TextField {
+ id: extIp6Path
+ enabled: extIp6.checked
+ QtLayouts.Layout.fillWidth: true
+ text: cfg_dataengine["EXTIP6CMD"]
+ }
+ QtControls.Button {
+ enabled: extIp6.checked
+ text: i18n("Browse")
+ onClicked: extIp6FileDialog.visible = true
+ }
+
+ QtDialogs.FileDialog {
+ id: extIp6FileDialog
+ title: i18n("Select a path")
+ folder: "/usr/bin"
+ nameFilters: [ "All files (*)" ]
+ selectExisting: true
+ onAccepted: extIp6Path.text = extIp6FileDialog.fileUrl
+ }
+ }
+ }
+
+ Component.onDestruction: {
+ cfg_dataengine["EXTIP4"] = extIp4.checked ? "true" : "false"
+ cfg_dataengine["EXTIP6"] = extIp6.checked ? "true" : "false"
+ NetctlAdds.writeDataEngineConfiguration(cfg_dataengine)
+ }
+}
diff --git a/sources/plasmoid-kf5/plugin/CMakeLists.txt b/sources/plasmoid-kf5/plugin/CMakeLists.txt
index bea8154..b2b37fa 100644
--- a/sources/plasmoid-kf5/plugin/CMakeLists.txt
+++ b/sources/plasmoid-kf5/plugin/CMakeLists.txt
@@ -7,6 +7,7 @@ include_directories (${CMAKE_SOURCE_DIR}
${Kf5_INCLUDE})
file (GLOB SUBPROJECT_SOURCE *.cpp)
+file (GLOB SUBPROJECT_NOTIFY *.notifyrc)
add_library (${PLUGIN_NAME} SHARED ${SUBPROJECT_SOURCE})
target_link_libraries (${PLUGIN_NAME} ${Qt5Core_LIBRARIES} ${Qt5DBus_LIBRARIES} ${Qt5Qml_LIBRARIES} ${I18n_LIBRARIES} ${Plasma_LIBRARIES}
@@ -14,3 +15,4 @@ target_link_libraries (${PLUGIN_NAME} ${Qt5Core_LIBRARIES} ${Qt5DBus_LIBRARIES}
install (TARGETS ${PLUGIN_NAME} DESTINATION ${QML_INSTALL_DIR}/org/kde/plasma/private/netctl)
install (FILES qmldir DESTINATION ${QML_INSTALL_DIR}/org/kde/plasma/private/netctl)
+install (FILES ${SUBPROJECT_NOTIFY} DESTINATION ${KNOTIFYRC_INSTALL_DIR})
diff --git a/sources/plasmoid-kf5/plugin/netctladds.cpp b/sources/plasmoid-kf5/plugin/netctladds.cpp
index 70b370a..734e5f1 100644
--- a/sources/plasmoid-kf5/plugin/netctladds.cpp
+++ b/sources/plasmoid-kf5/plugin/netctladds.cpp
@@ -22,6 +22,8 @@
#include
#include
#include
+#include
+#include
#include
@@ -135,6 +137,14 @@ QString NetctlAdds::getInfo(const QString current, const QString status)
}
+bool NetctlAdds::isDebugEnabled()
+{
+ if (debug) qDebug() << PDEBUG;
+
+ return debug;
+}
+
+
QString NetctlAdds::parsePattern(const QString pattern, const QMap dict)
{
if (debug) qDebug() << PDEBUG;
@@ -293,3 +303,51 @@ void NetctlAdds::switchToProfileSlot(QString profile, const bool useHelper,
command.startDetached(commandLine);
}
}
+
+
+QMap NetctlAdds::readDataEngineConfiguration()
+{
+ if (debug) qDebug() << PDEBUG;
+
+ QMap configuration;
+ QString fileName = QStandardPaths::locate(QStandardPaths::ConfigLocation, QString("netctl.conf"));
+
+ if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << fileName;
+ QSettings settings(fileName, QSettings::IniFormat);
+ settings.beginGroup(QString("Netctl commands"));
+ configuration[QString("NETCTLCMD")] = settings.value(QString("NETCTLCMD"), QString("/usr/bin/netctl"));
+ configuration[QString("NETCTLAUTOCMD")] = settings.value(QString("NETCTLAUTOCMD"), QString("/usr/bin/netctl-auto"));
+ settings.endGroup();
+ settings.beginGroup(QString("External IP"));
+ configuration[QString("EXTIP4")] = settings.value(QString("EXTIP4"), QString("false"));
+ configuration[QString("EXTIP4CMD")] = settings.value(QString("EXTIP4CMD"), QString("curl ip4.telize.com"));
+ configuration[QString("EXTIP6")] = settings.value(QString("EXTIP6"), QString("false"));
+ configuration[QString("EXTIP6CMD")] = settings.value(QString("EXTIP6CMD"), QString("curl ip6.telize.com"));
+ settings.endGroup();
+
+ return configuration;
+}
+
+
+void NetctlAdds::writeDataEngineConfiguration(const QMap configuration)
+{
+ if (debug) qDebug() << PDEBUG;
+
+ QString fileName = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + QString("/netctl.conf");
+ QSettings settings(fileName, QSettings::IniFormat);
+ if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << settings.fileName();
+
+ settings.beginGroup(QString("Netctl commands"));
+ settings.setValue(QString("NETCTLCMD"), configuration[QString("NETCTLCMD")].toString());
+ settings.setValue(QString("NETCTLAUTOCMD"), configuration[QString("NETCTLAUTOCMD")].toString());
+ settings.endGroup();
+
+ settings.beginGroup(QString("External IP"));
+ settings.setValue(QString("EXTIP4"), configuration[QString("EXTIP4")].toString());
+ settings.setValue(QString("EXTIP4CMD"), configuration[QString("EXTIP4CMD")].toString());
+ settings.setValue(QString("EXTIP6"), configuration[QString("EXTIP6")].toString());
+ settings.setValue(QString("EXTIP6CMD"), configuration[QString("EXTIP6CMD")].toString());
+ settings.endGroup();
+
+ settings.sync();
+}
diff --git a/sources/plasmoid-kf5/plugin/netctladds.h b/sources/plasmoid-kf5/plugin/netctladds.h
index b960fb8..d0e6083 100644
--- a/sources/plasmoid-kf5/plugin/netctladds.h
+++ b/sources/plasmoid-kf5/plugin/netctladds.h
@@ -34,6 +34,7 @@ public:
Q_INVOKABLE QString getAboutText(const QString type = "header");
Q_INVOKABLE QString getInfo(const QString current, const QString status);
+ Q_INVOKABLE bool isDebugEnabled();
Q_INVOKABLE QString parsePattern(const QString pattern, const QMap dict);
Q_INVOKABLE void runCmd(const QString cmd);
Q_INVOKABLE void sendNotification(const QString eventId, const QString message);
@@ -60,6 +61,9 @@ public:
Q_INVOKABLE void switchToProfileSlot(QString profile,
const bool useHelper = true,
const QString cmd = QString("/usr/bin/netctl-auto"));
+ // dataengine
+ Q_INVOKABLE QMap readDataEngineConfiguration();
+ Q_INVOKABLE void writeDataEngineConfiguration(const QMap configuration);
private:
bool debug = false;
diff --git a/sources/plasmoid-kf5/plasma_applet_netctl.notifyrc b/sources/plasmoid-kf5/plugin/plasma-applet-org.kde.plasma.netctl.notifyrc
similarity index 100%
rename from sources/plasmoid-kf5/plasma_applet_netctl.notifyrc
rename to sources/plasmoid-kf5/plugin/plasma-applet-org.kde.plasma.netctl.notifyrc