rewrited plasmoid

This commit is contained in:
arcan1s 2014-08-05 12:57:27 +04:00
parent dc81a44034
commit 7ed3e4e01b
7 changed files with 269 additions and 217 deletions

View File

@ -63,6 +63,10 @@ Additional information
TODO (wish list)
----------------
* refactoring of library (using QtNetwork module instead of some system calls)
* refactoring of GUI according to library changes
* rewrite changelog to more comfortable format
Links
-----

View File

@ -411,7 +411,6 @@ void Netctl::setProfileList(int exitCode, QProcess::ExitStatus exitStatus)
profileList[i].remove(0, 2);
setData(QString("profiles"), QString("value"), profileList.join(QChar(',')));
qDebug() << profileList;
}

View File

@ -20,7 +20,7 @@
<string notr="true">Configuration Window</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="8" column="0">
<item row="9" column="0">
<spacer name="verticalSpacer_appearance">
<property name="orientation">
<enum>Qt::Vertical</enum>
@ -33,7 +33,7 @@
</property>
</spacer>
</item>
<item row="7" column="0">
<item row="8" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_inactiveIcon">
<item>
<widget class="QLabel" name="label_inactiveIcon">
@ -66,7 +66,7 @@
</item>
</layout>
</item>
<item row="2" column="0">
<item row="3" column="0">
<layout class="QHBoxLayout" name="layout_fontColor">
<item>
<widget class="QLabel" name="label_fontColor">
@ -115,7 +115,7 @@
</item>
</layout>
</item>
<item row="5" column="0">
<item row="6" column="0">
<widget class="Line" name="line_appearance">
<property name="lineWidth">
<number>5</number>
@ -128,7 +128,7 @@
</property>
</widget>
</item>
<item row="1" column="0">
<item row="2" column="0">
<layout class="QHBoxLayout" name="layout_fontSize">
<item>
<widget class="QLabel" name="label_fontSize">
@ -189,7 +189,7 @@
</item>
</layout>
</item>
<item row="3" column="0">
<item row="4" column="0">
<layout class="QHBoxLayout" name="layout_fontWeight">
<item>
<widget class="QLabel" name="label_fontWeight">
@ -253,7 +253,7 @@
</item>
</layout>
</item>
<item row="4" column="0">
<item row="5" column="0">
<layout class="QHBoxLayout" name="layout_fontStyle">
<item>
<widget class="QLabel" name="label_fontStyle">
@ -300,19 +300,19 @@
</property>
<item>
<property name="text">
<string>normal</string>
<string notr="true">normal</string>
</property>
</item>
<item>
<property name="text">
<string>italic</string>
<string notr="true">italic</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item row="0" column="0">
<item row="1" column="0">
<layout class="QHBoxLayout" name="layout_font">
<item>
<widget class="QLabel" name="label_font">
@ -361,7 +361,7 @@
</item>
</layout>
</item>
<item row="6" column="0">
<item row="7" column="0">
<layout class="QHBoxLayout" name="layout_activeIcon">
<item>
<widget class="QLabel" name="label_activeIcon">
@ -394,6 +394,75 @@
</item>
</layout>
</item>
<item row="0" column="0">
<layout class="QHBoxLayout" name="layout_textAlign">
<item>
<widget class="QLabel" name="label_textAlign">
<property name="minimumSize">
<size>
<width>80</width>
<height>23</height>
</size>
</property>
<property name="text">
<string>Text align</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_textAlign">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QComboBox" name="comboBox_textAlign">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>23</height>
</size>
</property>
<property name="toolTip">
<string>Set text align</string>
</property>
<item>
<property name="text">
<string notr="true">center</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">right</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">left</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">justify</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<customwidgets>

View File

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>480</width>
<height>337</height>
<height>335</height>
</rect>
</property>
<property name="minimumSize">
@ -86,72 +86,6 @@
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_ip">
<item>
<widget class="QLabel" name="label_ip">
<property name="minimumSize">
<size>
<width>150</width>
<height>23</height>
</size>
</property>
<property name="text">
<string>Path to ip</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_ip"/>
</item>
<item>
<widget class="QPushButton" name="pushButton_ip">
<property name="minimumSize">
<size>
<width>100</width>
<height>23</height>
</size>
</property>
<property name="text">
<string>Browse</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_interface">
<item>
<widget class="QLabel" name="label_interface">
<property name="minimumSize">
<size>
<width>150</width>
<height>23</height>
</size>
</property>
<property name="text">
<string>Path to interface list</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_interface"/>
</item>
<item>
<widget class="QPushButton" name="pushButton_interface">
<property name="minimumSize">
<size>
<width>100</width>
<height>23</height>
</size>
</property>
<property name="text">
<string>Browse</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_extIp">
<item>
@ -163,7 +97,7 @@
</size>
</property>
<property name="text">
<string>Check external IP</string>
<string>Check external IPv4</string>
</property>
<property name="checked">
<bool>true</bool>
@ -188,6 +122,42 @@
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_extIp6">
<item>
<widget class="QCheckBox" name="checkBox_extIp6">
<property name="minimumSize">
<size>
<width>150</width>
<height>23</height>
</size>
</property>
<property name="text">
<string>Check external IPv6</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_extIp6"/>
</item>
<item>
<widget class="QPushButton" name="pushButton_extIp6">
<property name="minimumSize">
<size>
<width>100</width>
<height>23</height>
</size>
</property>
<property name="text">
<string>Browse</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_dataengine">
<property name="orientation">
@ -204,7 +174,6 @@
</layout>
</widget>
<tabstops>
<tabstop>lineEdit_ip</tabstop>
<tabstop>lineEdit_netctl</tabstop>
<tabstop>pushButton_netctl</tabstop>
<tabstop>checkBox_extIp</tabstop>

View File

@ -102,8 +102,10 @@ void Netctl::init()
info[QString("name")] = QString("N\\A");
info[QString("status")] = QString("N\\A");
info[QString("intIp")] = QString("N\\A");
info[QString("intIp6")] = QString("N\\A");
info[QString("extIp")] = QString("N\\A");
info[QString("interfaces")] = QString("lo");
info[QString("extIp6")] = QString("N\\A");
info[QString("interfaces")] = QString("N\\A");
netctlEngine = dataEngine(QString("netctl"));
createActions();
@ -124,6 +126,48 @@ void Netctl::init()
}
QString Netctl::parsePattern(const QString rawLine)
{
if (debug) qDebug() << "[PLASMOID]" << "[parsePattern]";
QString line = rawLine;
if (line.contains(QString("$current"))) {
if (debug) qDebug() << "[PLASMOID]" << "[parsePattern]" << "Found $current";
line = line.split(QString("$current"))[0] + info[QString("name")] + line.split(QString("$current"))[1];
}
if (line.contains(QString("$extip4"))) {
if (debug) qDebug() << "[PLASMOID]" << "[parsePattern]" << "Found $extip4";
line = line.split(QString("$extip4"))[0] + info[QString("extIp")] + line.split(QString("$extip4"))[1];
}
if (line.contains(QString("$extip6"))) {
if (debug) qDebug() << "[PLASMOID]" << "[parsePattern]" << "Found $extip6";
line = line.split(QString("$extip6"))[0] + info[QString("extIp6")] + line.split(QString("$extip6"))[1];
}
if (line.contains(QString("$interfaces"))) {
if (debug) qDebug() << "[PLASMOID]" << "[parsePattern]" << "Found $interfaces";
line = line.split(QString("$interfaces"))[0] + info[QString("interfaces")] + line.split(QString("$interfaces"))[1];
}
if (line.contains(QString("$intip4"))) {
if (debug) qDebug() << "[PLASMOID]" << "[parsePattern]" << "Found $intip4";
line = line.split(QString("$intip4"))[0] + info[QString("intIp")] + line.split(QString("$intip4"))[1];
}
if (line.contains(QString("$intip6"))) {
if (debug) qDebug() << "[PLASMOID]" << "[parsePattern]" << "Found $intip6";
line = line.split(QString("$intip6"))[0] + info[QString("intIp6")] + line.split(QString("$intip6"))[1];
}
if (line.contains(QString("$profiles"))) {
if (debug) qDebug() << "[PLASMOID]" << "[parsePattern]" << "Found $profiles";
line = line.split(QString("$profiles"))[0] + profileList.join(QChar(',')) + line.split(QString("$profiles"))[1];
}
if (line.contains(QString("$status"))) {
if (debug) qDebug() << "[PLASMOID]" << "[parsePattern]" << "Found $status";
line = line.split(QString("$status"))[0] + info[QString("status")] + line.split(QString("$status"))[1];
}
return line;
}
QMap<QString, QString> Netctl::readDataEngineConfiguration()
{
if (debug) qDebug() << "[PLASMOID]" << "[readDataEngineConfiguration]";
@ -131,9 +175,9 @@ QMap<QString, QString> Netctl::readDataEngineConfiguration()
QMap<QString, QString> rawConfig;
rawConfig[QString("CMD")] = QString("/usr/bin/netctl");
rawConfig[QString("EXTIP")] = QString("false");
rawConfig[QString("EXTIPCMD")] = QString("wget -qO- http://ifconfig.me/ip");
rawConfig[QString("IPCMD")] = QString("/usr/bin/ip");
rawConfig[QString("NETDIR")] = QString("/sys/class/net/");
rawConfig[QString("EXTIPCMD")] = QString("curl ip4.telize.com");
rawConfig[QString("EXTIP6")] = QString("false");
rawConfig[QString("EXTIP6CMD")] = QString("curl ip6.telize.com");
rawConfig[QString("NETCTLAUTOCMD")] = QString("/usr/bin/netctl-auto");
QString fileName = KGlobal::dirs()->findResource("config", "netctl.conf");
@ -193,7 +237,7 @@ QMap<QString, QString> Netctl::updateDataEngineConfiguration(const QMap<QString,
key.remove(QChar(' '));
if ((key != QString("CMD")) &&
(key != QString("EXTIPCMD")) &&
(key != QString("IPCMD")) &&
(key != QString("EXTIP6CMD")) &&
(key != QString("NETCTLAUTOCMD")))
value.remove(QChar(' '));
config[key] = value;
@ -308,7 +352,6 @@ void Netctl::switchToProfileSlot(QAction *profile)
sendNotification(QString("Info"), i18n("Switch to profile %1", profile->text().remove(QChar('&'))));
commandLine = paths[QString("netctlAuto")] + QString(" switch-to ") +
profile->text().remove(QChar('&'));
qDebug() << commandLine;
command.startDetached(commandLine);
}
@ -471,20 +514,16 @@ void Netctl::connectToEngine()
{
if (debug) qDebug() << "[PLASMOID]" << "[connectToEngine]";
netctlEngine->connectSource(QString("currentProfile"), this, autoUpdateInterval);
netctlEngine->connectSource(QString("extIp"), this, autoUpdateInterval);
netctlEngine->connectSource(QString("extIp6"), this, autoUpdateInterval);
netctlEngine->connectSource(QString("interfaces"), this, autoUpdateInterval);
netctlEngine->connectSource(QString("intIp"), this, autoUpdateInterval);
netctlEngine->connectSource(QString("intIp6"), this, autoUpdateInterval);
netctlEngine->connectSource(QString("profiles"), this, autoUpdateInterval);
netctlEngine->connectSource(QString("statusBool"), this, autoUpdateInterval);
netctlEngine->connectSource(QString("currentProfile"), this, autoUpdateInterval);
netctlEngine->connectSource(QString("statusString"), this, autoUpdateInterval);
updateInterface(false);
if (bigInterface[QString("main")]) {
if (bigInterface[QString("extIp")])
netctlEngine->connectSource(QString("extIp"), this, autoUpdateInterval);
if (bigInterface[QString("intIp")])
netctlEngine->connectSource(QString("intIp"), this, autoUpdateInterval);
if (bigInterface[QString("netDev")])
netctlEngine->connectSource(QString("interfaces"), this, autoUpdateInterval);
updateInterface(true);
}
updateInterface(bigInterface);
}
@ -503,26 +542,24 @@ void Netctl::dataUpdated(const QString &sourceName, const Plasma::DataEngine::Da
info[QString("name")] = value;
// update text
QStringList text;
text.append(info[QString("name")] + QString(" ") + info[QString("status")]);
if (bigInterface[QString("intIp")])
text.append(info[QString("intIp")]);
if (bigInterface[QString("extIp")])
text.append(info[QString("extIp")]);
if (bigInterface[QString("netDev")])
text.append(info[QString("interfaces")]);
if (bigInterface[QString("main")])
textLabel->setText(formatLine[0] + text.join(QString("<br>")) + formatLine[1]);
if (bigInterface)
textLabel->setText(formatLine[0] + parsePattern(textPattern) + formatLine[1]);
}
else if (sourceName == QString("extIp")) {
info[QString("extIp")] = value;
}
else if (sourceName == QString("intIp")) {
info[QString("intIp")] = value;
else if (sourceName == QString("extIp6")) {
info[QString("extIp6")] = value;
}
else if (sourceName == QString("interfaces")) {
info[QString("interfaces")] = value;
}
else if (sourceName == QString("intIp")) {
info[QString("intIp")] = value;
}
else if (sourceName == QString("intIp6")) {
info[QString("intIp6")] = value;
}
else if (sourceName == QString("profiles")) {
profileList = value.split(QChar(','));
}
@ -551,18 +588,15 @@ void Netctl::disconnectFromEngine()
{
if (debug) qDebug() << "[PLASMOID]" << "[disconnectFromEngine]";
netctlEngine->disconnectSource(QString("currentProfile"), this);
netctlEngine->disconnectSource(QString("extIp"), this);
netctlEngine->disconnectSource(QString("extIp6"), this);
netctlEngine->disconnectSource(QString("interfaces"), this);
netctlEngine->disconnectSource(QString("intIp"), this);
netctlEngine->disconnectSource(QString("intIp6"), this);
netctlEngine->disconnectSource(QString("profiles"), this);
netctlEngine->disconnectSource(QString("statusBool"), this);
netctlEngine->disconnectSource(QString("currentProfile"), this);
netctlEngine->disconnectSource(QString("statusString"), this);
if (bigInterface[QString("main")]) {
if (bigInterface[QString("extIp")])
netctlEngine->disconnectSource(QString("extIp"), this);
if (bigInterface[QString("intIp")])
netctlEngine->disconnectSource(QString("intIp"), this);
if (bigInterface[QString("netDev")])
netctlEngine->disconnectSource(QString("interfaces"), this);
}
updateInterface(false);
}
@ -572,10 +606,8 @@ void Netctl::selectAbstractSomething()
{
if (debug) qDebug() << "[PLASMOID]" << "[selectAbstractSomething]";
bool isDir = false;
QString path = QString("/usr/bin");
QLineEdit *lineEdit = uiWidConfig.lineEdit_gui;
KUrl url;
if (sender() == uiAppConfig.pushButton_activeIcon) {
path = QString("/usr/share/icons");
lineEdit = uiAppConfig.lineEdit_activeIcon;
@ -596,22 +628,14 @@ void Netctl::selectAbstractSomething()
lineEdit = uiWidConfig.lineEdit_wifi;
else if (sender() == uiDEConfig.pushButton_extIp)
lineEdit = uiDEConfig.lineEdit_extIp;
else if (sender() == uiDEConfig.pushButton_interface) {
path = QString("/sys");
lineEdit = uiDEConfig.lineEdit_interface;
isDir = true;
}
else if (sender() == uiDEConfig.pushButton_ip)
lineEdit = uiDEConfig.lineEdit_ip;
else if (sender() == uiDEConfig.pushButton_extIp6)
lineEdit = uiDEConfig.lineEdit_extIp6;
else if (sender() == uiDEConfig.pushButton_netctl)
lineEdit = uiDEConfig.lineEdit_netctl;
else if (sender() == uiDEConfig.pushButton_netctlAuto)
lineEdit = uiDEConfig.lineEdit_netctlAuto;
if (isDir)
url = KFileDialog::getExistingDirectoryUrl(path);
else
url = KFileDialog::getOpenUrl(KUrl(path), "*");
KUrl url = KFileDialog::getOpenUrl(KUrl(path), "*");
lineEdit->setText(url.path());
}
@ -645,53 +669,46 @@ void Netctl::createConfigurationInterface(KConfigDialog *parent)
uiWidConfig.checkBox_wifi->setCheckState(Qt::Unchecked);
uiWidConfig.lineEdit_wifi->setText(paths[QString("wifi")]);
setWifi();
if (bigInterface[QString("main")])
if (bigInterface)
uiWidConfig.checkBox_showBigInterface->setCheckState(Qt::Checked);
else
uiWidConfig.checkBox_showBigInterface->setCheckState(Qt::Unchecked);
if (bigInterface[QString("netDev")])
uiWidConfig.checkBox_showNetDev->setCheckState(Qt::Checked);
else
uiWidConfig.checkBox_showNetDev->setCheckState(Qt::Unchecked);
if (bigInterface[QString("extIp")])
uiWidConfig.checkBox_showExtIp->setCheckState(Qt::Checked);
else
uiWidConfig.checkBox_showExtIp->setCheckState(Qt::Unchecked);
if (bigInterface[QString("intIp")])
uiWidConfig.checkBox_showIntIp->setCheckState(Qt::Checked);
else
uiWidConfig.checkBox_showIntIp->setCheckState(Qt::Unchecked);
QString pattern = textPattern;
uiWidConfig.textEdit->setPlainText(pattern.replace(QString("<br>"), QString("\n")));
setBigInterface();
KConfigGroup cg = config();
QString textAlign = cg.readEntry("textAlign", "center");
QString fontFamily = cg.readEntry("fontFamily", "Terminus");
int fontSize = cg.readEntry("fontSize", 10);
QString fontColor = cg.readEntry("fontColor", "#000000");
int fontWeight = cg.readEntry("fontWeight", 400);
QString fontStyle = cg.readEntry("fontStyle", "normal");
QFont font = QFont(fontFamily, 12, 400, FALSE);
uiAppConfig.comboBox_textAlign->setCurrentIndex(uiAppConfig.comboBox_textAlign->findText(textAlign));
uiAppConfig.fontComboBox_font->setCurrentFont(font);
uiAppConfig.spinBox_fontSize->setValue(fontSize);
uiAppConfig.kcolorcombo_fontColor->setColor(fontColor);
uiAppConfig.spinBox_fontWeight->setValue(fontWeight);
if (fontStyle == "normal")
uiAppConfig.comboBox_fontStyle->setCurrentIndex(0);
else if (fontStyle == "italic")
uiAppConfig.comboBox_fontStyle->setCurrentIndex(1);
uiAppConfig.comboBox_fontStyle->setCurrentIndex(uiAppConfig.comboBox_fontStyle->findText(fontStyle));
uiAppConfig.lineEdit_activeIcon->setText(paths[QString("active")]);
uiAppConfig.lineEdit_inactiveIcon->setText(paths[QString("inactive")]);
QMap<QString, QString> deSettings = readDataEngineConfiguration();
uiDEConfig.lineEdit_netctl->setText(deSettings[QString("CMD")]);
uiDEConfig.lineEdit_netctlAuto->setText(deSettings[QString("NETCTLAUTOCMD")]);
uiDEConfig.lineEdit_ip->setText(deSettings[QString("IPCMD")]);
uiDEConfig.lineEdit_interface->setText(deSettings[QString("NETDIR")]);
if (deSettings[QString("EXTIP")] == QString("true"))
uiDEConfig.checkBox_extIp->setCheckState(Qt::Checked);
else
uiDEConfig.checkBox_extIp->setCheckState(Qt::Unchecked);
uiDEConfig.lineEdit_extIp->setText(deSettings[QString("EXTIPCMD")]);
setDataEngineExternalIp();
if (deSettings[QString("EXTIP6")] == QString("true"))
uiDEConfig.checkBox_extIp6->setCheckState(Qt::Checked);
else
uiDEConfig.checkBox_extIp6->setCheckState(Qt::Unchecked);
uiDEConfig.lineEdit_extIp6->setText(deSettings[QString("EXTIP6CMD")]);
setDataEngineExternalIp6();
uiAboutConfig.label_name->setText(QString(NAME));
uiAboutConfig.label_version->setText(i18n("Version %1\n(build date %2)", QString(VERSION), QString(BUILD_DATE)));
@ -717,6 +734,7 @@ void Netctl::createConfigurationInterface(KConfigDialog *parent)
connect(uiWidConfig.checkBox_sudo, SIGNAL(stateChanged(int)), this, SLOT(setSudo()));
connect(uiWidConfig.checkBox_wifi, SIGNAL(stateChanged(int)), this, SLOT(setWifi()));
connect(uiDEConfig.checkBox_extIp, SIGNAL(stateChanged(int)), this, SLOT(setDataEngineExternalIp()));
connect(uiDEConfig.checkBox_extIp6, SIGNAL(stateChanged(int)), this, SLOT(setDataEngineExternalIp6()));
connect(uiWidConfig.pushButton_gui, SIGNAL(clicked()), this, SLOT(selectAbstractSomething()));
connect(uiWidConfig.pushButton_netctl, SIGNAL(clicked()), this, SLOT(selectAbstractSomething()));
@ -726,8 +744,7 @@ void Netctl::createConfigurationInterface(KConfigDialog *parent)
connect(uiAppConfig.pushButton_activeIcon, SIGNAL(clicked()), this, SLOT(selectAbstractSomething()));
connect(uiAppConfig.pushButton_inactiveIcon, SIGNAL(clicked()), this, SLOT(selectAbstractSomething()));
connect(uiDEConfig.pushButton_extIp, SIGNAL(clicked()), this, SLOT(selectAbstractSomething()));
connect(uiDEConfig.pushButton_interface, SIGNAL(clicked()), this, SLOT(selectAbstractSomething()));
connect(uiDEConfig.pushButton_ip, SIGNAL(clicked()), this, SLOT(selectAbstractSomething()));
connect(uiDEConfig.pushButton_extIp6, SIGNAL(clicked()), this, SLOT(selectAbstractSomething()));
connect(uiDEConfig.pushButton_netctl, SIGNAL(clicked()), this, SLOT(selectAbstractSomething()));
connect(uiDEConfig.pushButton_netctlAuto, SIGNAL(clicked()), this, SLOT(selectAbstractSomething()));
@ -761,19 +778,11 @@ void Netctl::configAccepted()
cg.writeEntry("showBigInterface", false);
else
cg.writeEntry("showBigInterface", true);
if (uiWidConfig.checkBox_showNetDev->checkState() == 0)
cg.writeEntry("showNetDev", false);
else
cg.writeEntry("showNetDev", true);
if (uiWidConfig.checkBox_showExtIp->checkState() == 0)
cg.writeEntry("showExtIp", false);
else
cg.writeEntry("showExtIp", true);
if (uiWidConfig.checkBox_showIntIp->checkState() == 0)
cg.writeEntry("showIntIp", false);
else
cg.writeEntry("showIntIp", true);
QString pattern = uiWidConfig.textEdit->toPlainText();
pattern.replace(QString("\n"), QString("<br>"));
cg.writeEntry("textPattern", pattern);
cg.writeEntry("textAlign", uiAppConfig.comboBox_textAlign->currentText());
cg.writeEntry("fontFamily", uiAppConfig.fontComboBox_font->currentFont().family());
cg.writeEntry("fontSize", uiAppConfig.spinBox_fontSize->value());
cg.writeEntry("fontColor", uiAppConfig.kcolorcombo_fontColor->color().name());
@ -785,13 +794,16 @@ void Netctl::configAccepted()
QMap<QString, QString> deSettings;
deSettings[QString("CMD")] = uiDEConfig.lineEdit_netctl->text();
deSettings[QString("NETCTLAUTOCMD")] = uiDEConfig.lineEdit_netctlAuto->text();
deSettings[QString("IPCMD")] = uiDEConfig.lineEdit_ip->text();
deSettings[QString("NETDIR")] = uiDEConfig.lineEdit_interface->text();
if (uiDEConfig.checkBox_extIp->checkState() == 0)
deSettings[QString("EXTIP")] = QString("false");
else
deSettings[QString("EXTIP")] = QString("true");
deSettings[QString("EXTIPCMD")] = uiDEConfig.lineEdit_extIp->text();
if (uiDEConfig.checkBox_extIp6->checkState() == 0)
deSettings[QString("EXTIP6")] = QString("false");
else
deSettings[QString("EXTIP6")] = QString("true");
deSettings[QString("EXTIP6CMD")] = uiDEConfig.lineEdit_extIp6->text();
writeDataEngineConfiguration(deSettings);
}
@ -810,11 +822,10 @@ void Netctl::configChanged()
paths[QString("wifi")] = cg.readEntry("wifiPath", "/usr/bin/netctl-gui -t 3");
useSudo = cg.readEntry("useSudo", true);
useWifi = cg.readEntry("useWifi", false);
bigInterface[QString("main")] = cg.readEntry("showBigInterface", true);
bigInterface[QString("extIp")] = cg.readEntry("showExtIp", false);
bigInterface[QString("netDev")] = cg.readEntry("showNetDev", true);
bigInterface[QString("intIp")] = cg.readEntry("showIntIp", true);
bigInterface = cg.readEntry("showBigInterface", true);
textPattern = cg.readEntry("textPattern", "$current $status<br>IPv4: $intip4<br>IPv6: $intip6");
QString textAlign = cg.readEntry("textAlign", "center");
QString fontFamily = cg.readEntry("fontFamily", "Terminus");
int fontSize = cg.readEntry("fontSize", 10);
QString fontColor = cg.readEntry("fontColor", "#000000");
@ -825,13 +836,17 @@ void Netctl::configChanged()
paths[QString("inactive")] = cg.readEntry("inactiveIconPath",
"/usr/share/icons/hicolor/64x64/apps/netctl-offline.png");
formatLine[0] = ("<p align=\"center\"><span style=\" font-family:'" + fontFamily + \
"'; font-style:" + fontStyle + \
"; font-size:" + QString::number(fontSize) + \
"pt; font-weight:" + QString::number(fontWeight) + \
"; color:" + fontColor + \
";\">");
formatLine[1] = ("</span></p>");
formatLine[0] = QString("<html><head><meta name=\"qrichtext\" content=\"1\" />\
<style type=\"text/css\">p, li { white-space: pre-wrap; }</style>\
</head><body style=\"font-family:'%2'; font-size:%3pt; font-weight:%4; font-style:%5; color:%6;\"><p align=%1>")
.arg(textAlign)
.arg(fontFamily)
.arg(QString::number(fontSize))
.arg(QString::number(fontWeight))
.arg(fontStyle)
.arg(fontColor);
formatLine[1] = QString("</p></body></html>");
connectToEngine();
}
@ -840,16 +855,10 @@ void Netctl::setBigInterface()
{
if (debug) qDebug() << "[PLASMOID]" << "[setBigInterface]";
if (uiWidConfig.checkBox_showBigInterface->checkState() == 0) {
uiWidConfig.checkBox_showNetDev->setDisabled(true);
uiWidConfig.checkBox_showExtIp->setDisabled(true);
uiWidConfig.checkBox_showIntIp->setDisabled(true);
}
else if (uiWidConfig.checkBox_showBigInterface->checkState() == 2) {
uiWidConfig.checkBox_showNetDev->setEnabled(true);
uiWidConfig.checkBox_showExtIp->setEnabled(true);
uiWidConfig.checkBox_showIntIp->setEnabled(true);
}
if (uiWidConfig.checkBox_showBigInterface->checkState() == 0)
uiWidConfig.textEdit->setDisabled(true);
else if (uiWidConfig.checkBox_showBigInterface->checkState() == 2)
uiWidConfig.textEdit->setDisabled(false);
}
@ -868,6 +877,21 @@ void Netctl::setDataEngineExternalIp()
}
void Netctl::setDataEngineExternalIp6()
{
if (debug) qDebug() << "[PLASMOID]" << "[setDataEngineExternalIp6]";
if (uiDEConfig.checkBox_extIp6->checkState() == 0) {
uiDEConfig.lineEdit_extIp6->setDisabled(true);
uiDEConfig.pushButton_extIp6->setDisabled(true);
}
else if (uiDEConfig.checkBox_extIp6->checkState() == 2) {
uiDEConfig.lineEdit_extIp6->setEnabled(true);
uiDEConfig.pushButton_extIp6->setEnabled(true);
}
}
void Netctl::setSudo()
{
if (debug) qDebug() << "[PLASMOID]" << "[setSudo]";

View File

@ -55,6 +55,7 @@ public:
Netctl(QObject *parent, const QVariantList &args);
~Netctl();
void init();
QString parsePattern(const QString rawLine);
QMap<QString, QString> readDataEngineConfiguration();
void writeDataEngineConfiguration(const QMap<QString, QString> settings);
QMap<QString, QString> updateDataEngineConfiguration(const QMap<QString, QString> rawConfig);
@ -71,6 +72,7 @@ public slots:
void configChanged();
void setBigInterface();
void setDataEngineExternalIp();
void setDataEngineExternalIp6();
void setSudo();
void setWifi();
@ -117,9 +119,10 @@ private:
Ui::ConfigWindow uiWidConfig;
Ui::About uiAboutConfig;
// configuration
bool debug;
int autoUpdateInterval;
QMap<QString, bool> bigInterface;
bool bigInterface;
bool debug;
QString textPattern;
QStringList formatLine;
QMap<QString, QString> paths;
bool useSudo, useWifi;

View File

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>480</width>
<height>337</height>
<height>335</height>
</rect>
</property>
<property name="minimumSize">
@ -260,32 +260,16 @@
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_showNetDev">
<property name="text">
<string>Show network devices</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_showExtIp">
<property name="text">
<string>Show external IP</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_showIntIp">
<property name="text">
<string>Show internal IP</string>
</property>
<property name="checked">
<bool>true</bool>
<widget class="QPlainTextEdit" name="textEdit">
<property name="toolTip">
<string>$current - current profile name
$extip - external IPv4
$extip6 - external IPv6
$interfaces - list of the network interfaces
$intip - internal IPv4
$intip6 - internal IPv6
$profiles - list of the netctl profiles
$status - current profile status (static/enabled)</string>
</property>
</widget>
</item>