add debug information

fix reading files
This commit is contained in:
arcan1s 2014-07-21 11:58:42 +04:00
parent 6cba836d98
commit 0070f910cc
9 changed files with 206 additions and 39 deletions

View File

@ -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

View File

@ -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() {

View File

@ -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

View File

@ -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;
} }

View File

@ -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);

View File

@ -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("");
} }

View File

@ -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++)

View File

@ -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);

View File

@ -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;