mirror of
https://github.com/arcan1s/netctl-gui.git
synced 2025-04-24 15:37:23 +00:00
add debug information
fix reading files
This commit is contained in:
parent
6cba836d98
commit
0070f910cc
@ -1,6 +1,7 @@
|
|||||||
Ver.1.2.0:
|
Ver.1.2.0:
|
||||||
+ [all] added icons
|
+ [all] added icons
|
||||||
+ [all] added support of netctl-auto
|
+ [all] added support of netctl-auto
|
||||||
|
+ [dataengine] added debug information (NETCTLGUI_DEBUG=yes)
|
||||||
+ [gui] added support of macvlan
|
+ [gui] added support of macvlan
|
||||||
+ [gui] added ability to remove profile
|
+ [gui] added ability to remove profile
|
||||||
+ [gui] added support of hidden wifi network
|
+ [gui] added support of hidden wifi network
|
||||||
@ -16,6 +17,7 @@ Ver.1.2.0:
|
|||||||
+ [lib] added doxygen documentation
|
+ [lib] added doxygen documentation
|
||||||
+ [plasmoid] added dataengine configuration
|
+ [plasmoid] added dataengine configuration
|
||||||
+ [plasmoid] added about window
|
+ [plasmoid] added about window
|
||||||
|
+ [plasmoid] added debug information (NETCTLGUI_DEBUG=yes)
|
||||||
- [gui] fix possible segfaults with null arrays (#5)
|
- [gui] fix possible segfaults with null arrays (#5)
|
||||||
* [all] changes in the project architecture
|
* [all] changes in the project architecture
|
||||||
* [all] refactoring
|
* [all] refactoring
|
||||||
|
2
PKGBUILD
2
PKGBUILD
@ -15,7 +15,7 @@ optdepends=('kdebase-runtime: sudo support'
|
|||||||
'wpa_supplicant: wifi support')
|
'wpa_supplicant: wifi support')
|
||||||
source=("https://github.com/arcan1s/netctl-gui/releases/download/V.${pkgver}/${pkgbase}-${pkgver}-src.tar.xz")
|
source=("https://github.com/arcan1s/netctl-gui/releases/download/V.${pkgver}/${pkgbase}-${pkgver}-src.tar.xz")
|
||||||
install="${pkgbase}.install"
|
install="${pkgbase}.install"
|
||||||
md5sums=('45eebb959b9a760240e5b7db5bdfbf48')
|
md5sums=('6299c02a0991b54434baa5b96aeba67b')
|
||||||
|
|
||||||
|
|
||||||
prepare() {
|
prepare() {
|
||||||
|
@ -17,4 +17,3 @@ NETDIR=/sys/class/net/
|
|||||||
EXTIPCMD=wget -qO- http://ifconfig.me/ip
|
EXTIPCMD=wget -qO- http://ifconfig.me/ip
|
||||||
# 'true' - check external IP
|
# 'true' - check external IP
|
||||||
EXTIP=false
|
EXTIP=false
|
||||||
|
|
||||||
|
@ -20,9 +20,11 @@
|
|||||||
#include <KGlobal>
|
#include <KGlobal>
|
||||||
#include <KStandardDirs>
|
#include <KStandardDirs>
|
||||||
#include <Plasma/DataContainer>
|
#include <Plasma/DataContainer>
|
||||||
|
#include <QDebug>
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
|
#include <QProcessEnvironment>
|
||||||
#include <QTextCodec>
|
#include <QTextCodec>
|
||||||
|
|
||||||
|
|
||||||
@ -31,6 +33,14 @@ Netctl::Netctl(QObject *parent, const QVariantList &args)
|
|||||||
{
|
{
|
||||||
Q_UNUSED(args)
|
Q_UNUSED(args)
|
||||||
|
|
||||||
|
// debug
|
||||||
|
QProcessEnvironment environment = QProcessEnvironment::systemEnvironment();
|
||||||
|
QString debugEnv = environment.value(QString("NETCTLGUI_DEBUG"), QString("no"));
|
||||||
|
if (debugEnv == QString("yes"))
|
||||||
|
debug = true;
|
||||||
|
else
|
||||||
|
debug = false;
|
||||||
|
|
||||||
setMinimumPollingInterval(333);
|
setMinimumPollingInterval(333);
|
||||||
readConfiguration();
|
readConfiguration();
|
||||||
}
|
}
|
||||||
@ -38,8 +48,9 @@ Netctl::Netctl(QObject *parent, const QVariantList &args)
|
|||||||
|
|
||||||
QStringList Netctl::sources() const
|
QStringList Netctl::sources() const
|
||||||
{
|
{
|
||||||
QStringList sources;
|
if (debug) qDebug() << "[DE]" << "[sources]";
|
||||||
|
|
||||||
|
QStringList sources;
|
||||||
sources.append(QString("currentProfile"));
|
sources.append(QString("currentProfile"));
|
||||||
sources.append(QString("extIp"));
|
sources.append(QString("extIp"));
|
||||||
sources.append(QString("interfaces"));
|
sources.append(QString("interfaces"));
|
||||||
@ -54,6 +65,8 @@ QStringList Netctl::sources() const
|
|||||||
|
|
||||||
void Netctl::readConfiguration()
|
void Netctl::readConfiguration()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[DE]" << "[readConfiguration]";
|
||||||
|
|
||||||
// default configuration
|
// default configuration
|
||||||
QMap<QString, QString> rawConfig;
|
QMap<QString, QString> rawConfig;
|
||||||
rawConfig[QString("CMD")] = QString("/usr/bin/netctl");
|
rawConfig[QString("CMD")] = QString("/usr/bin/netctl");
|
||||||
@ -64,6 +77,7 @@ void Netctl::readConfiguration()
|
|||||||
rawConfig[QString("NETCTLAUTOCMD")] = QString("/usr/bin/netctl-auto");
|
rawConfig[QString("NETCTLAUTOCMD")] = QString("/usr/bin/netctl-auto");
|
||||||
|
|
||||||
QString fileName = KGlobal::dirs()->findResource("config", "netctl.conf");
|
QString fileName = KGlobal::dirs()->findResource("config", "netctl.conf");
|
||||||
|
if (debug) qDebug() << "[DE]" << "[readConfiguration]" << ":" << "Configuration file" << fileName;
|
||||||
QFile confFile(fileName);
|
QFile confFile(fileName);
|
||||||
if (!confFile.open(QIODevice::ReadOnly)) {
|
if (!confFile.open(QIODevice::ReadOnly)) {
|
||||||
configuration = updateConfiguration(rawConfig);
|
configuration = updateConfiguration(rawConfig);
|
||||||
@ -73,24 +87,27 @@ void Netctl::readConfiguration()
|
|||||||
QStringList value;
|
QStringList value;
|
||||||
while (true) {
|
while (true) {
|
||||||
fileStr = QString(confFile.readLine()).trimmed();
|
fileStr = QString(confFile.readLine()).trimmed();
|
||||||
if (fileStr[0] == QChar('#')) continue;
|
if ((fileStr.isEmpty()) && (!confFile.atEnd())) continue;
|
||||||
if (fileStr[0] == QChar(';')) continue;
|
if ((fileStr[0] == QChar('#')) && (!confFile.atEnd())) continue;
|
||||||
if (!fileStr.contains(QChar('='))) continue;
|
if ((fileStr[0] == QChar(';')) && (!confFile.atEnd())) continue;
|
||||||
|
if ((!fileStr.contains(QChar('='))) && (!confFile.atEnd())) continue;
|
||||||
value.clear();
|
value.clear();
|
||||||
for (int i=1; i<fileStr.split(QChar('=')).count(); i++)
|
for (int i=1; i<fileStr.split(QChar('=')).count(); i++)
|
||||||
value.append(fileStr.split(QChar('='))[i]);
|
value.append(fileStr.split(QChar('='))[i]);
|
||||||
rawConfig[fileStr.split(QChar('='))[0]] = value.join(QChar('='));
|
rawConfig[fileStr.split(QChar('='))[0]] = value.join(QChar('='));
|
||||||
if (confFile.atEnd())
|
if (confFile.atEnd()) break;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
confFile.close();
|
confFile.close();
|
||||||
configuration = updateConfiguration(rawConfig);
|
configuration = updateConfiguration(rawConfig);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QMap<QString, QString> Netctl::updateConfiguration(const QMap<QString, QString> rawConfig)
|
QMap<QString, QString> Netctl::updateConfiguration(const QMap<QString, QString> rawConfig)
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[DE]" << "[updateConfiguration]";
|
||||||
|
|
||||||
QMap<QString, QString> config;
|
QMap<QString, QString> config;
|
||||||
QString key, value;
|
QString key, value;
|
||||||
// remove spaces and copy source map
|
// remove spaces and copy source map
|
||||||
@ -105,18 +122,29 @@ QMap<QString, QString> Netctl::updateConfiguration(const QMap<QString, QString>
|
|||||||
value.remove(QChar(' '));
|
value.remove(QChar(' '));
|
||||||
config[key] = value;
|
config[key] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int i=0; i<config.keys().count(); i++)
|
||||||
|
if (debug) qDebug() << "[DE]" << "[updateConfiguration]" << ":" <<
|
||||||
|
config.keys()[i] + QString("=") + config[config.keys()[i]];
|
||||||
|
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Netctl::sourceRequestEvent(const QString &name)
|
bool Netctl::sourceRequestEvent(const QString &name)
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[DE]" << "[sourceRequestEvent]";
|
||||||
|
if (debug) qDebug() << "[DE]" << "[sourceRequestEvent]" << ":" << "Source name" << name;
|
||||||
|
|
||||||
return updateSourceEvent(name);
|
return updateSourceEvent(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QString Netctl::getCurrentProfile(const QString cmd)
|
QString Netctl::getCurrentProfile(const QString cmd)
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[DE]" << "[getCurrentProfile]";
|
||||||
|
if (debug) qDebug() << "[DE]" << "[getCurrentProfile]" << ":" << "Cmd" << cmd;
|
||||||
|
|
||||||
QProcess command;
|
QProcess command;
|
||||||
QString profile = QString("");
|
QString profile = QString("");
|
||||||
command.start(cmd + QString(" list"));
|
command.start(cmd + QString(" list"));
|
||||||
@ -129,33 +157,46 @@ QString Netctl::getCurrentProfile(const QString cmd)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
profile.remove(0, 1);
|
profile.remove(0, 1);
|
||||||
|
|
||||||
return profile;
|
return profile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QString Netctl::getExtIp(const QString cmd)
|
QString Netctl::getExtIp(const QString cmd)
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[DE]" << "[getExtIp]";
|
||||||
|
if (debug) qDebug() << "[DE]" << "[getExtIp]" << ":" << "Cmd" << cmd;
|
||||||
|
|
||||||
QProcess command;
|
QProcess command;
|
||||||
QString extIp = QString("");
|
QString extIp = QString("");
|
||||||
command.start(cmd);
|
command.start(cmd);
|
||||||
command.waitForFinished(-1);
|
command.waitForFinished(-1);
|
||||||
QString cmdOutput = QTextCodec::codecForMib(106)->toUnicode(command.readAllStandardOutput());
|
QString cmdOutput = QTextCodec::codecForMib(106)->toUnicode(command.readAllStandardOutput());
|
||||||
extIp = cmdOutput.trimmed();
|
extIp = cmdOutput.trimmed();
|
||||||
|
|
||||||
return extIp;
|
return extIp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QStringList Netctl::getInterfaceList(const QString dir)
|
QStringList Netctl::getInterfaceList(const QString dir)
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[DE]" << "[getInterfaceList]";
|
||||||
|
if (debug) qDebug() << "[DE]" << "[getInterfaceList]" << ":" << "Directory" << dir;
|
||||||
|
|
||||||
QStringList interfaceList;
|
QStringList interfaceList;
|
||||||
if (QDir(dir).exists())
|
if (QDir(dir).exists())
|
||||||
interfaceList = QDir(dir).entryList(QDir::Dirs | QDir::NoDotAndDotDot);
|
interfaceList = QDir(dir).entryList(QDir::Dirs | QDir::NoDotAndDotDot);
|
||||||
|
|
||||||
return interfaceList;
|
return interfaceList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QString Netctl::getIntIp(const QString cmd, const QString dir)
|
QString Netctl::getIntIp(const QString cmd, const QString dir)
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[DE]" << "[getIntIp]";
|
||||||
|
if (debug) qDebug() << "[DE]" << "[getIntIp]" << ":" << "Cmd" << cmd;
|
||||||
|
if (debug) qDebug() << "[DE]" << "[getIntIp]" << ":" << "Directory" << dir;
|
||||||
|
|
||||||
QProcess command;
|
QProcess command;
|
||||||
QString intIp = QString("127.0.0.1/8");
|
QString intIp = QString("127.0.0.1/8");
|
||||||
QStringList interfaceList = getInterfaceList(dir);
|
QStringList interfaceList = getInterfaceList(dir);
|
||||||
@ -169,12 +210,16 @@ QString Netctl::getIntIp(const QString cmd, const QString dir)
|
|||||||
if (deviceInfo[j].split(QChar(' '), QString::SkipEmptyParts)[0] == QString("inet"))
|
if (deviceInfo[j].split(QChar(' '), QString::SkipEmptyParts)[0] == QString("inet"))
|
||||||
intIp = deviceInfo[j].split(QChar(' '), QString::SkipEmptyParts)[1];
|
intIp = deviceInfo[j].split(QChar(' '), QString::SkipEmptyParts)[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
return intIp;
|
return intIp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QStringList Netctl::getProfileList(const QString cmd)
|
QStringList Netctl::getProfileList(const QString cmd)
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[DE]" << "[getProfileList]";
|
||||||
|
if (debug) qDebug() << "[DE]" << "[getProfileList]" << ":" << "Cmd" << cmd;
|
||||||
|
|
||||||
QProcess command;
|
QProcess command;
|
||||||
command.start(cmd + QString(" list"));
|
command.start(cmd + QString(" list"));
|
||||||
command.waitForFinished(-1);
|
command.waitForFinished(-1);
|
||||||
@ -182,22 +227,31 @@ QStringList Netctl::getProfileList(const QString cmd)
|
|||||||
QStringList profileList = cmdOutput.split(QChar('\n'), QString::SkipEmptyParts);
|
QStringList profileList = cmdOutput.split(QChar('\n'), QString::SkipEmptyParts);
|
||||||
for (int i=0; i<profileList.count(); i++)
|
for (int i=0; i<profileList.count(); i++)
|
||||||
profileList[i].remove(0, 1);
|
profileList[i].remove(0, 1);
|
||||||
|
|
||||||
return profileList;
|
return profileList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Netctl::getProfileStatus(const QString cmd)
|
bool Netctl::getProfileStatus(const QString cmd)
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[DE]" << "[getProfileStatus]";
|
||||||
|
if (debug) qDebug() << "[DE]" << "[getProfileStatus]" << ":" << "Cmd" << cmd;
|
||||||
|
|
||||||
bool status = false;
|
bool status = false;
|
||||||
QString cmdOutput = getCurrentProfile(cmd);
|
QString cmdOutput = getCurrentProfile(cmd);
|
||||||
if (!cmdOutput.isEmpty())
|
if (!cmdOutput.isEmpty())
|
||||||
status = true;
|
status = true;
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QString Netctl::getProfileStringStatus(const QString cmdNetctl, const QString cmdNetctlAuto)
|
QString Netctl::getProfileStringStatus(const QString cmdNetctl, const QString cmdNetctlAuto)
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[DE]" << "[getProfileStringStatus]";
|
||||||
|
if (debug) qDebug() << "[DE]" << "[getProfileStringStatus]" << ":" << "Cmd" << cmdNetctl;
|
||||||
|
if (debug) qDebug() << "[DE]" << "[getProfileStringStatus]" << ":" << "Cmd" << cmdNetctlAuto;
|
||||||
|
|
||||||
QProcess command;
|
QProcess command;
|
||||||
QString status = QString("static");
|
QString status = QString("static");
|
||||||
// check netctl-auto
|
// check netctl-auto
|
||||||
@ -210,12 +264,16 @@ QString Netctl::getProfileStringStatus(const QString cmdNetctl, const QString cm
|
|||||||
if (command.exitCode() == 0)
|
if (command.exitCode() == 0)
|
||||||
status = QString("enabled");
|
status = QString("enabled");
|
||||||
}
|
}
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Netctl::updateSourceEvent(const QString &source)
|
bool Netctl::updateSourceEvent(const QString &source)
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[DE]" << "[updateSourceEvent]";
|
||||||
|
if (debug) qDebug() << "[DE]" << "[updateSourceEvent]" << ":" << "Source name" << source;
|
||||||
|
|
||||||
QString key = QString("value");
|
QString key = QString("value");
|
||||||
QString value = QString("");
|
QString value = QString("");
|
||||||
if (source == QString("currentProfile")) {
|
if (source == QString("currentProfile")) {
|
||||||
@ -251,6 +309,7 @@ bool Netctl::updateSourceEvent(const QString &source)
|
|||||||
configuration[QString("NETCTLAUTOCMD")]);
|
configuration[QString("NETCTLAUTOCMD")]);
|
||||||
}
|
}
|
||||||
setData(source, key, value);
|
setData(source, key, value);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,6 +43,7 @@ protected:
|
|||||||
private:
|
private:
|
||||||
bool isNetctlAutoRunning();
|
bool isNetctlAutoRunning();
|
||||||
// configuration
|
// configuration
|
||||||
|
bool debug;
|
||||||
QMap<QString, QString> configuration;
|
QMap<QString, QString> configuration;
|
||||||
void readConfiguration();
|
void readConfiguration();
|
||||||
QMap<QString, QString> updateConfiguration(const QMap<QString, QString> rawConfig);
|
QMap<QString, QString> updateConfiguration(const QMap<QString, QString> rawConfig);
|
||||||
|
@ -60,28 +60,28 @@ QString Language::defineLanguage(const QString configPath, const QString options
|
|||||||
|
|
||||||
QString Language::defineLanguageFromFile(const QString configPath)
|
QString Language::defineLanguageFromFile(const QString configPath)
|
||||||
{
|
{
|
||||||
QString language;
|
QMap<QString, QString> settings;
|
||||||
if (configPath.isEmpty())
|
if (configPath.isEmpty())
|
||||||
return language;
|
return QString("");
|
||||||
QFile configFile(configPath);
|
QFile configFile(configPath);
|
||||||
QString fileStr;
|
QString fileStr;
|
||||||
if (!configFile.open(QIODevice::ReadOnly))
|
if (!configFile.open(QIODevice::ReadOnly))
|
||||||
return language;
|
return QString("");
|
||||||
while (true) {
|
while (true) {
|
||||||
fileStr = QString(configFile.readLine());
|
fileStr = QString(configFile.readLine()).trimmed();
|
||||||
if (fileStr.isEmpty()) continue;
|
if ((fileStr.isEmpty()) && (!configFile.atEnd())) continue;
|
||||||
if (fileStr[0] == QChar('#')) continue;
|
if ((fileStr[0] == QChar('#')) && (!configFile.atEnd())) continue;
|
||||||
if (fileStr[0] == QChar(';')) continue;
|
if ((fileStr[0] == QChar(';')) && (!configFile.atEnd())) continue;
|
||||||
if (fileStr.contains(QString("LANGUAGE=")))
|
if ((!fileStr.contains(QChar('='))) && (!configFile.atEnd())) continue;
|
||||||
language = fileStr.split(QChar('='))[1]
|
settings[fileStr.split(QChar('='))[0]] = fileStr.split(QChar('='))[1];
|
||||||
.remove(QChar(' '))
|
if (configFile.atEnd()) break;
|
||||||
.trimmed();
|
|
||||||
if (configFile.atEnd())
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
configFile.close();
|
configFile.close();
|
||||||
|
|
||||||
return language;
|
if (settings.contains(QString("LANGUAGE")))
|
||||||
|
return settings[QString("LANGUAGE")];
|
||||||
|
else
|
||||||
|
return QString("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -358,13 +358,12 @@ QMap<QString, QString> SettingsWindow::getSettings()
|
|||||||
return settings;
|
return settings;
|
||||||
while (true) {
|
while (true) {
|
||||||
fileStr = QString(configFile.readLine()).trimmed();
|
fileStr = QString(configFile.readLine()).trimmed();
|
||||||
if (fileStr.isEmpty()) continue;
|
if ((fileStr.isEmpty()) && (!configFile.atEnd())) continue;
|
||||||
if (fileStr[0] == QChar('#')) continue;
|
if ((fileStr[0] == QChar('#')) && (!configFile.atEnd())) continue;
|
||||||
if (fileStr[0] == QChar(';')) continue;
|
if ((fileStr[0] == QChar(';')) && (!configFile.atEnd())) continue;
|
||||||
if (!fileStr.contains(QChar('='))) continue;
|
if ((!fileStr.contains(QChar('='))) && (!configFile.atEnd())) continue;
|
||||||
settings[fileStr.split(QChar('='))[0]] = fileStr.split(QChar('='))[1];
|
settings[fileStr.split(QChar('='))[0]] = fileStr.split(QChar('='))[1];
|
||||||
if (configFile.atEnd())
|
if (configFile.atEnd()) break;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
configFile.close();
|
configFile.close();
|
||||||
for (int i=0; i<settings.keys().count(); i++)
|
for (int i=0; i<settings.keys().count(); i++)
|
||||||
|
@ -27,8 +27,10 @@
|
|||||||
#include <KUrl>
|
#include <KUrl>
|
||||||
#include <plasma/theme.h>
|
#include <plasma/theme.h>
|
||||||
|
|
||||||
|
#include <QDebug>
|
||||||
#include <QGraphicsLinearLayout>
|
#include <QGraphicsLinearLayout>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
|
#include <QProcessEnvironment>
|
||||||
|
|
||||||
#include <version.h>
|
#include <version.h>
|
||||||
|
|
||||||
@ -36,6 +38,14 @@
|
|||||||
Netctl::Netctl(QObject *parent, const QVariantList &args)
|
Netctl::Netctl(QObject *parent, const QVariantList &args)
|
||||||
: Plasma::Applet(parent, args)
|
: Plasma::Applet(parent, args)
|
||||||
{
|
{
|
||||||
|
// debug
|
||||||
|
QProcessEnvironment environment = QProcessEnvironment::systemEnvironment();
|
||||||
|
QString debugEnv = environment.value(QString("NETCTLGUI_DEBUG"), QString("no"));
|
||||||
|
if (debugEnv == QString("yes"))
|
||||||
|
debug = true;
|
||||||
|
else
|
||||||
|
debug = false;
|
||||||
|
|
||||||
setBackgroundHints(DefaultBackground);
|
setBackgroundHints(DefaultBackground);
|
||||||
setHasConfigurationInterface(true);
|
setHasConfigurationInterface(true);
|
||||||
// text format init
|
// text format init
|
||||||
@ -46,6 +56,8 @@ Netctl::Netctl(QObject *parent, const QVariantList &args)
|
|||||||
|
|
||||||
Netctl::~Netctl()
|
Netctl::~Netctl()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[~Netctl]";
|
||||||
|
|
||||||
// delete startProfileMenu;
|
// delete startProfileMenu;
|
||||||
// delete switchToProfileMenu;
|
// delete switchToProfileMenu;
|
||||||
// delete iconWidget;
|
// delete iconWidget;
|
||||||
@ -56,6 +68,8 @@ Netctl::~Netctl()
|
|||||||
|
|
||||||
void Netctl::init()
|
void Netctl::init()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[init]";
|
||||||
|
|
||||||
info[QString("name")] = QString("N\\A");
|
info[QString("name")] = QString("N\\A");
|
||||||
info[QString("status")] = QString("N\\A");
|
info[QString("status")] = QString("N\\A");
|
||||||
info[QString("intIp")] = QString("N\\A");
|
info[QString("intIp")] = QString("N\\A");
|
||||||
@ -88,6 +102,8 @@ void Netctl::init()
|
|||||||
|
|
||||||
QMap<QString, QString> Netctl::readDataEngineConfiguration()
|
QMap<QString, QString> Netctl::readDataEngineConfiguration()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[readDataEngineConfiguration]";
|
||||||
|
|
||||||
QMap<QString, QString> rawConfig;
|
QMap<QString, QString> rawConfig;
|
||||||
rawConfig[QString("CMD")] = QString("/usr/bin/netctl");
|
rawConfig[QString("CMD")] = QString("/usr/bin/netctl");
|
||||||
rawConfig[QString("EXTIP")] = QString("false");
|
rawConfig[QString("EXTIP")] = QString("false");
|
||||||
@ -97,32 +113,37 @@ QMap<QString, QString> Netctl::readDataEngineConfiguration()
|
|||||||
rawConfig[QString("NETCTLAUTOCMD")] = QString("/usr/bin/netctl-auto");
|
rawConfig[QString("NETCTLAUTOCMD")] = QString("/usr/bin/netctl-auto");
|
||||||
|
|
||||||
QString fileName = KGlobal::dirs()->findResource("config", "netctl.conf");
|
QString fileName = KGlobal::dirs()->findResource("config", "netctl.conf");
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[readDataEngineConfiguration]" << ":" << "Configuration file" << fileName;
|
||||||
QFile confFile(fileName);
|
QFile confFile(fileName);
|
||||||
if (!confFile.open(QIODevice::ReadOnly))
|
if (!confFile.open(QIODevice::ReadOnly))
|
||||||
return updateConfiguration(rawConfig);
|
return updateDataEngineConfiguration(rawConfig);
|
||||||
QString fileStr;
|
QString fileStr;
|
||||||
QStringList value;
|
QStringList value;
|
||||||
while (true) {
|
while (true) {
|
||||||
fileStr = QString(confFile.readLine()).trimmed();
|
fileStr = QString(confFile.readLine()).trimmed();
|
||||||
if (fileStr[0] == QChar('#')) continue;
|
if ((fileStr.isEmpty()) && (!confFile.atEnd())) continue;
|
||||||
if (fileStr[0] == QChar(';')) continue;
|
if ((fileStr[0] == QChar('#')) && (!confFile.atEnd())) continue;
|
||||||
if (!fileStr.contains(QChar('='))) continue;
|
if ((fileStr[0] == QChar(';')) && (!confFile.atEnd())) continue;
|
||||||
|
if ((!fileStr.contains(QChar('='))) && (!confFile.atEnd())) continue;
|
||||||
value.clear();
|
value.clear();
|
||||||
for (int i=1; i<fileStr.split(QChar('=')).count(); i++)
|
for (int i=1; i<fileStr.split(QChar('=')).count(); i++)
|
||||||
value.append(fileStr.split(QChar('='))[i]);
|
value.append(fileStr.split(QChar('='))[i]);
|
||||||
rawConfig[fileStr.split(QChar('='))[0]] = value.join(QChar('='));
|
rawConfig[fileStr.split(QChar('='))[0]] = value.join(QChar('='));
|
||||||
if (confFile.atEnd())
|
if (confFile.atEnd()) break;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
confFile.close();
|
confFile.close();
|
||||||
return updateConfiguration(rawConfig);
|
|
||||||
|
return updateDataEngineConfiguration(rawConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Netctl::writeDataEngineConfiguration(const QMap<QString, QString> settings)
|
void Netctl::writeDataEngineConfiguration(const QMap<QString, QString> settings)
|
||||||
{
|
{
|
||||||
QMap<QString, QString> config = updateConfiguration(settings);
|
if (debug) qDebug() << "[PLASMOID]" << "[writeDataEngineConfiguration]";
|
||||||
|
|
||||||
|
QMap<QString, QString> config = updateDataEngineConfiguration(settings);
|
||||||
QString fileName = KGlobal::dirs()->locateLocal("config", "netctl.conf");
|
QString fileName = KGlobal::dirs()->locateLocal("config", "netctl.conf");
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[writeDataEngineConfiguration]" << ":" << "Configuration file" << fileName;
|
||||||
QFile confFile(fileName);
|
QFile confFile(fileName);
|
||||||
if (!confFile.open(QIODevice::WriteOnly))
|
if (!confFile.open(QIODevice::WriteOnly))
|
||||||
return;
|
return;
|
||||||
@ -134,8 +155,10 @@ void Netctl::writeDataEngineConfiguration(const QMap<QString, QString> settings)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QMap<QString, QString> Netctl::updateConfiguration(const QMap<QString, QString> rawConfig)
|
QMap<QString, QString> Netctl::updateDataEngineConfiguration(const QMap<QString, QString> rawConfig)
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[updateDataEngineConfiguration]";
|
||||||
|
|
||||||
QMap<QString, QString> config;
|
QMap<QString, QString> config;
|
||||||
QString key, value;
|
QString key, value;
|
||||||
// remove spaces and copy source map
|
// remove spaces and copy source map
|
||||||
@ -150,12 +173,20 @@ QMap<QString, QString> Netctl::updateConfiguration(const QMap<QString, QString>
|
|||||||
value.remove(QChar(' '));
|
value.remove(QChar(' '));
|
||||||
config[key] = value;
|
config[key] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int i=0; i<config.keys().count(); i++)
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[updateDataEngineConfiguration]" << ":" <<
|
||||||
|
config.keys()[i] + QString("=") + config[config.keys()[i]];
|
||||||
|
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Netctl::updateInterface(bool setShown)
|
void Netctl::updateInterface(bool setShown)
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[updateInterface]";
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[updateInterface]" << ":" << "State" << setShown;
|
||||||
|
|
||||||
if (setShown) {
|
if (setShown) {
|
||||||
textLabel->show();
|
textLabel->show();
|
||||||
fullSpaceLayout->updateGeometry();
|
fullSpaceLayout->updateGeometry();
|
||||||
@ -172,6 +203,8 @@ void Netctl::updateInterface(bool setShown)
|
|||||||
// context menu
|
// context menu
|
||||||
void Netctl::enableProfileSlot()
|
void Netctl::enableProfileSlot()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[enableProfileSlot]";
|
||||||
|
|
||||||
QProcess command;
|
QProcess command;
|
||||||
QString commandLine, enableStatus;
|
QString commandLine, enableStatus;
|
||||||
if (info[QString("status")].contains(QString("enabled"))) {
|
if (info[QString("status")].contains(QString("enabled"))) {
|
||||||
@ -187,12 +220,16 @@ void Netctl::enableProfileSlot()
|
|||||||
enableStatus + info[QString("name")];
|
enableStatus + info[QString("name")];
|
||||||
else
|
else
|
||||||
commandLine = paths[QString("netctl")] + enableStatus + info[QString("name")];
|
commandLine = paths[QString("netctl")] + enableStatus + info[QString("name")];
|
||||||
|
|
||||||
command.startDetached(commandLine);
|
command.startDetached(commandLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Netctl::startProfileSlot(QAction *profile)
|
void Netctl::startProfileSlot(QAction *profile)
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[startProfileSlot]";
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[startProfileSlot]" << ":" << "Profile" << profile->text().remove(QChar('&'));
|
||||||
|
|
||||||
bool ready = true;
|
bool ready = true;
|
||||||
QProcess command;
|
QProcess command;
|
||||||
QString commandLine;
|
QString commandLine;
|
||||||
@ -223,6 +260,8 @@ void Netctl::startProfileSlot(QAction *profile)
|
|||||||
|
|
||||||
void Netctl::stopProfileSlot()
|
void Netctl::stopProfileSlot()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[stopProfileSlot]";
|
||||||
|
|
||||||
QProcess command;
|
QProcess command;
|
||||||
QString commandLine;
|
QString commandLine;
|
||||||
sendNotification(QString("Info"), i18n("Stop profile %1", info[QString("name")]));
|
sendNotification(QString("Info"), i18n("Stop profile %1", info[QString("name")]));
|
||||||
@ -231,24 +270,31 @@ void Netctl::stopProfileSlot()
|
|||||||
QString(" stop ") + info[QString("name")];
|
QString(" stop ") + info[QString("name")];
|
||||||
else
|
else
|
||||||
commandLine = paths[QString("netctl")] + QString(" stop ") + info[QString("name")];
|
commandLine = paths[QString("netctl")] + QString(" stop ") + info[QString("name")];
|
||||||
|
|
||||||
command.startDetached(commandLine);
|
command.startDetached(commandLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Netctl::switchToProfileSlot(QAction *profile)
|
void Netctl::switchToProfileSlot(QAction *profile)
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[switchToProfileSlot]";
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[switchToProfileSlot]" << ":" << "Profile" << profile->text().remove(QChar('&'));
|
||||||
|
|
||||||
QProcess command;
|
QProcess command;
|
||||||
QString commandLine;
|
QString commandLine;
|
||||||
commandLine = QString("");
|
commandLine = QString("");
|
||||||
sendNotification(QString("Info"), i18n("Switch to profile %1", profile->text().remove(QChar('&'))));
|
sendNotification(QString("Info"), i18n("Switch to profile %1", profile->text().remove(QChar('&'))));
|
||||||
commandLine = paths[QString("netctl-auto")] + QString(" switch-to ") +
|
commandLine = paths[QString("netctl-auto")] + QString(" switch-to ") +
|
||||||
profile->text().remove(QChar('&'));
|
profile->text().remove(QChar('&'));
|
||||||
|
|
||||||
command.startDetached(commandLine);
|
command.startDetached(commandLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Netctl::restartProfileSlot()
|
void Netctl::restartProfileSlot()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[restartProfileSlot]";
|
||||||
|
|
||||||
QProcess command;
|
QProcess command;
|
||||||
QString commandLine;
|
QString commandLine;
|
||||||
sendNotification(QString("Info"), i18n("Restart profile %1", info[QString("name")]));
|
sendNotification(QString("Info"), i18n("Restart profile %1", info[QString("name")]));
|
||||||
@ -257,12 +303,15 @@ void Netctl::restartProfileSlot()
|
|||||||
QString(" restart ") + info[QString("name")];
|
QString(" restart ") + info[QString("name")];
|
||||||
else
|
else
|
||||||
commandLine = paths[QString("netctl")] + QString(" restart ") + info[QString("name")];
|
commandLine = paths[QString("netctl")] + QString(" restart ") + info[QString("name")];
|
||||||
|
|
||||||
command.startDetached(commandLine);
|
command.startDetached(commandLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QList<QAction*> Netctl::contextualActions()
|
QList<QAction*> Netctl::contextualActions()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[contextualActions]";
|
||||||
|
|
||||||
if (status)
|
if (status)
|
||||||
contextMenu[QString("title")]->setIcon(QIcon(paths[QString("active")]));
|
contextMenu[QString("title")]->setIcon(QIcon(paths[QString("active")]));
|
||||||
else
|
else
|
||||||
@ -325,6 +374,8 @@ QList<QAction*> Netctl::contextualActions()
|
|||||||
|
|
||||||
void Netctl::createActions()
|
void Netctl::createActions()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[createActions]";
|
||||||
|
|
||||||
menuActions.clear();
|
menuActions.clear();
|
||||||
|
|
||||||
contextMenu[QString("title")] = new QAction(QString("netctl-gui"), this);
|
contextMenu[QString("title")] = new QAction(QString("netctl-gui"), this);
|
||||||
@ -370,6 +421,10 @@ void Netctl::createActions()
|
|||||||
// events
|
// events
|
||||||
void Netctl::sendNotification(const QString eventId, const QString message)
|
void Netctl::sendNotification(const QString eventId, const QString message)
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[sendNotification]";
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[sendNotification]" << ":" << "Event" << eventId;
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[sendNotification]" << ":" << "Message" << message;
|
||||||
|
|
||||||
KNotification *notification = new KNotification(eventId);
|
KNotification *notification = new KNotification(eventId);
|
||||||
notification->setComponentData(KComponentData("plasma_applet_netctl"));
|
notification->setComponentData(KComponentData("plasma_applet_netctl"));
|
||||||
notification->setTitle(QString("Netctl ::: ") + eventId);
|
notification->setTitle(QString("Netctl ::: ") + eventId);
|
||||||
@ -381,16 +436,22 @@ void Netctl::sendNotification(const QString eventId, const QString message)
|
|||||||
|
|
||||||
void Netctl::showGui()
|
void Netctl::showGui()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[showGui]";
|
||||||
|
|
||||||
sendNotification(QString("Info"), i18n("Start GUI"));
|
sendNotification(QString("Info"), i18n("Start GUI"));
|
||||||
QProcess command;
|
QProcess command;
|
||||||
|
|
||||||
command.startDetached(paths[QString("gui")]);
|
command.startDetached(paths[QString("gui")]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Netctl::showWifi()
|
void Netctl::showWifi()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[showWifi]";
|
||||||
|
|
||||||
sendNotification(QString("Info"), i18n("Start WiFi menu"));
|
sendNotification(QString("Info"), i18n("Start WiFi menu"));
|
||||||
QProcess command;
|
QProcess command;
|
||||||
|
|
||||||
command.startDetached(paths[QString("wifi")]);
|
command.startDetached(paths[QString("wifi")]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -398,6 +459,8 @@ void Netctl::showWifi()
|
|||||||
// data engine interaction
|
// data engine interaction
|
||||||
void Netctl::connectToEngine()
|
void Netctl::connectToEngine()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[connectToEngine]";
|
||||||
|
|
||||||
netctlEngine->connectSource(QString("profiles"), this, autoUpdateInterval);
|
netctlEngine->connectSource(QString("profiles"), this, autoUpdateInterval);
|
||||||
netctlEngine->connectSource(QString("statusBool"), this, autoUpdateInterval);
|
netctlEngine->connectSource(QString("statusBool"), this, autoUpdateInterval);
|
||||||
netctlEngine->connectSource(QString("currentProfile"), this, autoUpdateInterval);
|
netctlEngine->connectSource(QString("currentProfile"), this, autoUpdateInterval);
|
||||||
@ -417,6 +480,9 @@ void Netctl::connectToEngine()
|
|||||||
|
|
||||||
void Netctl::dataUpdated(const QString &sourceName, const Plasma::DataEngine::Data &data)
|
void Netctl::dataUpdated(const QString &sourceName, const Plasma::DataEngine::Data &data)
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[dataUpdated]";
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[dataUpdated]" << ":" << "Source" << sourceName;
|
||||||
|
|
||||||
if (data.isEmpty())
|
if (data.isEmpty())
|
||||||
return;
|
return;
|
||||||
QString value = data[QString("value")].toString();
|
QString value = data[QString("value")].toString();
|
||||||
@ -474,6 +540,8 @@ void Netctl::dataUpdated(const QString &sourceName, const Plasma::DataEngine::Da
|
|||||||
|
|
||||||
void Netctl::disconnectFromEngine()
|
void Netctl::disconnectFromEngine()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[disconnectFromEngine]";
|
||||||
|
|
||||||
netctlEngine->disconnectSource(QString("profiles"), this);
|
netctlEngine->disconnectSource(QString("profiles"), this);
|
||||||
netctlEngine->disconnectSource(QString("statusBool"), this);
|
netctlEngine->disconnectSource(QString("statusBool"), this);
|
||||||
netctlEngine->disconnectSource(QString("currentProfile"), this);
|
netctlEngine->disconnectSource(QString("currentProfile"), this);
|
||||||
@ -493,6 +561,8 @@ void Netctl::disconnectFromEngine()
|
|||||||
// configuration interface
|
// configuration interface
|
||||||
void Netctl::selectActiveIcon()
|
void Netctl::selectActiveIcon()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[selectActiveIcon]";
|
||||||
|
|
||||||
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/share/icons"), "*");
|
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/share/icons"), "*");
|
||||||
if (!url.isEmpty())
|
if (!url.isEmpty())
|
||||||
uiAppConfig.lineEdit_activeIcon->setText(url.path());
|
uiAppConfig.lineEdit_activeIcon->setText(url.path());
|
||||||
@ -501,6 +571,8 @@ void Netctl::selectActiveIcon()
|
|||||||
|
|
||||||
void Netctl::selectGuiExe()
|
void Netctl::selectGuiExe()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[selectGuiExe]";
|
||||||
|
|
||||||
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
||||||
if (!url.isEmpty())
|
if (!url.isEmpty())
|
||||||
uiWidConfig.lineEdit_gui->setText(url.path());
|
uiWidConfig.lineEdit_gui->setText(url.path());
|
||||||
@ -509,6 +581,8 @@ void Netctl::selectGuiExe()
|
|||||||
|
|
||||||
void Netctl::selectInactiveIcon()
|
void Netctl::selectInactiveIcon()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[selectInactiveIcon]";
|
||||||
|
|
||||||
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/share/icons"), "*");
|
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/share/icons"), "*");
|
||||||
if (!url.isEmpty())
|
if (!url.isEmpty())
|
||||||
uiAppConfig.lineEdit_inactiveIcon->setText(url.path());
|
uiAppConfig.lineEdit_inactiveIcon->setText(url.path());
|
||||||
@ -517,6 +591,8 @@ void Netctl::selectInactiveIcon()
|
|||||||
|
|
||||||
void Netctl::selectNetctlExe()
|
void Netctl::selectNetctlExe()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[selectNetctlExe]";
|
||||||
|
|
||||||
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
||||||
if (!url.isEmpty())
|
if (!url.isEmpty())
|
||||||
uiWidConfig.lineEdit_netctl->setText(url.path());
|
uiWidConfig.lineEdit_netctl->setText(url.path());
|
||||||
@ -525,6 +601,8 @@ void Netctl::selectNetctlExe()
|
|||||||
|
|
||||||
void Netctl::selectNetctlAutoExe()
|
void Netctl::selectNetctlAutoExe()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[selectNetctlAutoExe]";
|
||||||
|
|
||||||
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
||||||
if (!url.isEmpty())
|
if (!url.isEmpty())
|
||||||
uiWidConfig.lineEdit_netctlAuto->setText(url.path());
|
uiWidConfig.lineEdit_netctlAuto->setText(url.path());
|
||||||
@ -533,6 +611,8 @@ void Netctl::selectNetctlAutoExe()
|
|||||||
|
|
||||||
void Netctl::selectSudoExe()
|
void Netctl::selectSudoExe()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[selectSudoExe]";
|
||||||
|
|
||||||
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
||||||
if (!url.isEmpty())
|
if (!url.isEmpty())
|
||||||
uiWidConfig.lineEdit_sudo->setText(url.path());
|
uiWidConfig.lineEdit_sudo->setText(url.path());
|
||||||
@ -541,6 +621,8 @@ void Netctl::selectSudoExe()
|
|||||||
|
|
||||||
void Netctl::selectWifiExe()
|
void Netctl::selectWifiExe()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[selectWifiExe]";
|
||||||
|
|
||||||
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
||||||
if (!url.isEmpty())
|
if (!url.isEmpty())
|
||||||
uiWidConfig.lineEdit_wifi->setText(url.path());
|
uiWidConfig.lineEdit_wifi->setText(url.path());
|
||||||
@ -549,6 +631,8 @@ void Netctl::selectWifiExe()
|
|||||||
|
|
||||||
void Netctl::selectDataEngineExternalIpExe()
|
void Netctl::selectDataEngineExternalIpExe()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[selectDataEngineExternalIpExe]";
|
||||||
|
|
||||||
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
||||||
if (!url.isEmpty())
|
if (!url.isEmpty())
|
||||||
uiDEConfig.lineEdit_extIp->setText(url.path());
|
uiDEConfig.lineEdit_extIp->setText(url.path());
|
||||||
@ -557,6 +641,8 @@ void Netctl::selectDataEngineExternalIpExe()
|
|||||||
|
|
||||||
void Netctl::selectDataEngineInterfacesDirectory()
|
void Netctl::selectDataEngineInterfacesDirectory()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[selectDataEngineInterfacesDirectory]";
|
||||||
|
|
||||||
KUrl url = KFileDialog::getExistingDirectoryUrl(KUrl("/sys"));
|
KUrl url = KFileDialog::getExistingDirectoryUrl(KUrl("/sys"));
|
||||||
if (!url.isEmpty())
|
if (!url.isEmpty())
|
||||||
uiDEConfig.lineEdit_interface->setText(url.path());
|
uiDEConfig.lineEdit_interface->setText(url.path());
|
||||||
@ -565,6 +651,8 @@ void Netctl::selectDataEngineInterfacesDirectory()
|
|||||||
|
|
||||||
void Netctl::selectDataEngineIpExe()
|
void Netctl::selectDataEngineIpExe()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[selectDataEngineIpExe]";
|
||||||
|
|
||||||
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
||||||
if (!url.isEmpty())
|
if (!url.isEmpty())
|
||||||
uiDEConfig.lineEdit_ip->setText(url.path());
|
uiDEConfig.lineEdit_ip->setText(url.path());
|
||||||
@ -573,6 +661,8 @@ void Netctl::selectDataEngineIpExe()
|
|||||||
|
|
||||||
void Netctl::selectDataEngineNetctlExe()
|
void Netctl::selectDataEngineNetctlExe()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[selectDataEngineNetctlExe]";
|
||||||
|
|
||||||
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
||||||
if (!url.isEmpty())
|
if (!url.isEmpty())
|
||||||
uiDEConfig.lineEdit_netctl->setText(url.path());
|
uiDEConfig.lineEdit_netctl->setText(url.path());
|
||||||
@ -581,6 +671,8 @@ void Netctl::selectDataEngineNetctlExe()
|
|||||||
|
|
||||||
void Netctl::selectDataEngineNetctlAutoExe()
|
void Netctl::selectDataEngineNetctlAutoExe()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[selectDataEngineNetctlAutoExe]";
|
||||||
|
|
||||||
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
KUrl url = KFileDialog::getOpenUrl(KUrl("/usr/bin"), "*");
|
||||||
if (!url.isEmpty())
|
if (!url.isEmpty())
|
||||||
uiDEConfig.lineEdit_netctlAuto->setText(url.path());
|
uiDEConfig.lineEdit_netctlAuto->setText(url.path());
|
||||||
@ -589,6 +681,8 @@ void Netctl::selectDataEngineNetctlAutoExe()
|
|||||||
|
|
||||||
void Netctl::createConfigurationInterface(KConfigDialog *parent)
|
void Netctl::createConfigurationInterface(KConfigDialog *parent)
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[createConfigurationInterface]";
|
||||||
|
|
||||||
QWidget *configWidget = new QWidget;
|
QWidget *configWidget = new QWidget;
|
||||||
uiWidConfig.setupUi(configWidget);
|
uiWidConfig.setupUi(configWidget);
|
||||||
QWidget *appWidget = new QWidget;
|
QWidget *appWidget = new QWidget;
|
||||||
@ -706,6 +800,8 @@ void Netctl::createConfigurationInterface(KConfigDialog *parent)
|
|||||||
|
|
||||||
void Netctl::configAccepted()
|
void Netctl::configAccepted()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[configAccepted]";
|
||||||
|
|
||||||
disconnectFromEngine();
|
disconnectFromEngine();
|
||||||
KConfigGroup cg = config();
|
KConfigGroup cg = config();
|
||||||
|
|
||||||
@ -764,6 +860,8 @@ void Netctl::configAccepted()
|
|||||||
|
|
||||||
void Netctl::configChanged()
|
void Netctl::configChanged()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[configChanged]";
|
||||||
|
|
||||||
KConfigGroup cg = config();
|
KConfigGroup cg = config();
|
||||||
|
|
||||||
autoUpdateInterval = cg.readEntry("autoUpdateInterval", 1000);
|
autoUpdateInterval = cg.readEntry("autoUpdateInterval", 1000);
|
||||||
@ -773,7 +871,7 @@ void Netctl::configChanged()
|
|||||||
paths[QString("sudo")] = cg.readEntry("sudoPath", "/usr/bin/kdesu");
|
paths[QString("sudo")] = cg.readEntry("sudoPath", "/usr/bin/kdesu");
|
||||||
paths[QString("wifi")] = cg.readEntry("wifiPath", "/usr/bin/netctl-gui -t 3");
|
paths[QString("wifi")] = cg.readEntry("wifiPath", "/usr/bin/netctl-gui -t 3");
|
||||||
useSudo = cg.readEntry("useSudo", true);
|
useSudo = cg.readEntry("useSudo", true);
|
||||||
useWifi = cg.readEntry("useWifi", true);
|
useWifi = cg.readEntry("useWifi", false);
|
||||||
bigInterface[QString("main")] = cg.readEntry("showBigInterface", true);
|
bigInterface[QString("main")] = cg.readEntry("showBigInterface", true);
|
||||||
bigInterface[QString("extIp")] = cg.readEntry("showExtIp", false);
|
bigInterface[QString("extIp")] = cg.readEntry("showExtIp", false);
|
||||||
bigInterface[QString("netDev")] = cg.readEntry("showNetDev", true);
|
bigInterface[QString("netDev")] = cg.readEntry("showNetDev", true);
|
||||||
@ -802,6 +900,8 @@ void Netctl::configChanged()
|
|||||||
|
|
||||||
void Netctl::setBigInterface()
|
void Netctl::setBigInterface()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[setBigInterface]";
|
||||||
|
|
||||||
if (uiWidConfig.checkBox_showBigInterface->checkState() == 0) {
|
if (uiWidConfig.checkBox_showBigInterface->checkState() == 0) {
|
||||||
uiWidConfig.checkBox_showNetDev->setDisabled(true);
|
uiWidConfig.checkBox_showNetDev->setDisabled(true);
|
||||||
uiWidConfig.checkBox_showExtIp->setDisabled(true);
|
uiWidConfig.checkBox_showExtIp->setDisabled(true);
|
||||||
@ -817,6 +917,8 @@ void Netctl::setBigInterface()
|
|||||||
|
|
||||||
void Netctl::setDataEngineExternalIp()
|
void Netctl::setDataEngineExternalIp()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[setDataEngineExternalIp]";
|
||||||
|
|
||||||
if (uiDEConfig.checkBox_extIp->checkState() == 0) {
|
if (uiDEConfig.checkBox_extIp->checkState() == 0) {
|
||||||
uiDEConfig.lineEdit_extIp->setDisabled(true);
|
uiDEConfig.lineEdit_extIp->setDisabled(true);
|
||||||
uiDEConfig.pushButton_extIp->setDisabled(true);
|
uiDEConfig.pushButton_extIp->setDisabled(true);
|
||||||
@ -830,6 +932,8 @@ void Netctl::setDataEngineExternalIp()
|
|||||||
|
|
||||||
void Netctl::setSudo()
|
void Netctl::setSudo()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[setSudo]";
|
||||||
|
|
||||||
if (uiWidConfig.checkBox_sudo->checkState() == 0) {
|
if (uiWidConfig.checkBox_sudo->checkState() == 0) {
|
||||||
uiWidConfig.lineEdit_sudo->setDisabled(true);
|
uiWidConfig.lineEdit_sudo->setDisabled(true);
|
||||||
uiWidConfig.pushButton_sudo->setDisabled(true);
|
uiWidConfig.pushButton_sudo->setDisabled(true);
|
||||||
@ -843,6 +947,8 @@ void Netctl::setSudo()
|
|||||||
|
|
||||||
void Netctl::setWifi()
|
void Netctl::setWifi()
|
||||||
{
|
{
|
||||||
|
if (debug) qDebug() << "[PLASMOID]" << "[setWifi]";
|
||||||
|
|
||||||
if (uiWidConfig.checkBox_wifi->checkState() == 0) {
|
if (uiWidConfig.checkBox_wifi->checkState() == 0) {
|
||||||
uiWidConfig.lineEdit_wifi->setDisabled(true);
|
uiWidConfig.lineEdit_wifi->setDisabled(true);
|
||||||
uiWidConfig.pushButton_wifi->setDisabled(true);
|
uiWidConfig.pushButton_wifi->setDisabled(true);
|
||||||
|
@ -43,7 +43,7 @@ public:
|
|||||||
void init();
|
void init();
|
||||||
QMap<QString, QString> readDataEngineConfiguration();
|
QMap<QString, QString> readDataEngineConfiguration();
|
||||||
void writeDataEngineConfiguration(const QMap<QString, QString> settings);
|
void writeDataEngineConfiguration(const QMap<QString, QString> settings);
|
||||||
QMap<QString, QString> updateConfiguration(const QMap<QString, QString> rawConfig);
|
QMap<QString, QString> updateDataEngineConfiguration(const QMap<QString, QString> rawConfig);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
// events
|
// events
|
||||||
@ -114,6 +114,7 @@ private:
|
|||||||
Ui::ConfigWindow uiWidConfig;
|
Ui::ConfigWindow uiWidConfig;
|
||||||
Ui::About uiAboutConfig;
|
Ui::About uiAboutConfig;
|
||||||
// configuration
|
// configuration
|
||||||
|
bool debug;
|
||||||
int autoUpdateInterval;
|
int autoUpdateInterval;
|
||||||
QMap<QString, bool> bigInterface;
|
QMap<QString, bool> bigInterface;
|
||||||
QStringList formatLine;
|
QStringList formatLine;
|
||||||
|
Loading…
Reference in New Issue
Block a user