Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
d59345c0e4 | |||
4c1685164c | |||
d515e4a51f | |||
2778f654ef | |||
92ec04cae1 | |||
501151828d | |||
4a788aa05f | |||
2cf91930f8 | |||
4bb5d4925d | |||
10d44f786e | |||
c69ff2165e | |||
4d455d93e8 | |||
046ae119a3 | |||
b958d0b78b |
1
.gitignore
vendored
@ -14,6 +14,7 @@
|
||||
|
||||
# Source archive
|
||||
*.tar.xz
|
||||
*.tar.gz
|
||||
|
||||
# Build directory
|
||||
build/
|
||||
|
@ -1,3 +1,8 @@
|
||||
Ver.1.0.5:
|
||||
+ [plasmoid] added "Start WiFi menu" function
|
||||
* [plasmoid] refactoring
|
||||
* [plasmoid] edited icon
|
||||
|
||||
Ver.1.0.4:
|
||||
+ [gui] added Qt5 gui (by default)
|
||||
+ [plasmoid] added notifications
|
||||
|
39
PKGBUILD-qt4
Normal file
@ -0,0 +1,39 @@
|
||||
# Maintainer: Evgeniy "arcanis" Alexeev <arcanis.arch at gmail dot com>
|
||||
|
||||
pkgname=netctl-gui-qt4
|
||||
_pkgname=netctl-gui
|
||||
pkgver=1.0.5
|
||||
pkgrel=1
|
||||
pkgdesc="Qt4 graphical front-end for netctl. A part of netctl-gui"
|
||||
arch=('i686' 'x86_64')
|
||||
url="http://arcanis.name/projects/netctl-gui"
|
||||
license=('GPLv3')
|
||||
depends=('netctl' 'qt4')
|
||||
makedepends=('automoc4' 'cmake' 'desktop-file-utils')
|
||||
optdepends=('kdebase-runtime: sudo support'
|
||||
'kdeplasma-applets-netctl-gui: KDE widget'
|
||||
'sudo: sudo support'
|
||||
'wpa_supplicant: wifi support')
|
||||
provides=('netctl-gui')
|
||||
conflicts=('netctl-gui')
|
||||
source=("https://github.com/arcan1s/netctl-gui/releases/download/V.${pkgver}/${_pkgname}-${pkgver}-src.tar.xz")
|
||||
install="${_pkgname}.install"
|
||||
md5sums=('1ed6e64f06865f129710101ca83624f7')
|
||||
|
||||
_cmakekeys="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DUSE_QT5:BOOL=0 -DBUILD_DATAENGINE:BOOL=0 -DBUILD_PLASMOID:BOOL=0"
|
||||
|
||||
prepare() {
|
||||
rm -rf "${srcdir}/build"
|
||||
mkdir "${srcdir}/build"
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "${srcdir}/build"
|
||||
cmake ${_cmakekeys} "../${_pkgname}"
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build"
|
||||
make DESTDIR="${pkgdir}" install
|
||||
}
|
@ -1,35 +1,23 @@
|
||||
# Maintainer: Evgeniy "arcanis" Alexeev <arcanis.arch at gmail dot com>
|
||||
|
||||
# comment out needed line if you dont need this component
|
||||
#_use_qt5=0
|
||||
#_build_gui=0
|
||||
#_build_plasmoid=0
|
||||
|
||||
pkgname=netctl-gui
|
||||
pkgver=1.0.4
|
||||
pkgrel=1
|
||||
pkgdesc="Qt4/Qt5 GUI for netctl. Provides a plasmoid for KDE4"
|
||||
pkgver=1.0.5
|
||||
pkgrel=4
|
||||
pkgdesc="Qt5 graphical front-end for netctl. A part of netctl-gui"
|
||||
arch=('i686' 'x86_64')
|
||||
url="http://arcanis.name/projects/netctl-gui"
|
||||
license=('GPLv3')
|
||||
depends=('netctl' 'qt5-base')
|
||||
depends=('netctl' 'qt5-base' 'xdg-utils')
|
||||
makedepends=('automoc4' 'cmake' 'qt5-tools')
|
||||
optdepends=('kdebase-runtime: sudo support'
|
||||
'kdeplasma-applets-netctl-gui: KDE widget'
|
||||
'sudo: sudo support'
|
||||
'wpa_supplicant: wifi support')
|
||||
source=("https://github.com/arcan1s/netctl-gui/releases/download/V.${pkgver}/${pkgname}-${pkgver}-src.tar.xz")
|
||||
install="${pkgname}.install"
|
||||
md5sums=('1e790c31d135b91c7ec80791508e6e92')
|
||||
md5sums=('1ed6e64f06865f129710101ca83624f7')
|
||||
|
||||
# flags
|
||||
_cmakekeys="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release"
|
||||
if [[ ${_use_qt5} == 0 ]]; then
|
||||
_cmakekeys=${_cmakekeys}" -DUSE_QT5:BOOL=0"
|
||||
depends=('netctl' 'qt4')
|
||||
makedepends=('automoc4' 'cmake' 'desktop-file-utils' 'xdg-utils')
|
||||
fi
|
||||
[[ ${_build_gui} == 0 ]] && _cmakekeys=${_cmakekeys}" -DBUILD_GUI:BOOL=0"
|
||||
[[ ${_build_plasmoid} == 0 ]] && _cmakekeys=${_cmakekeys}" -DBUILD_DATAENGINE:BOOL=0 -DBUILD_PLASMOID:BOOL=0" || depends+=('kdebase-workspace')
|
||||
_cmakekeys="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_DATAENGINE:BOOL=0 -DBUILD_PLASMOID:BOOL=0"
|
||||
|
||||
prepare() {
|
||||
rm -rf "${srcdir}/build"
|
37
PKGBUILD-widget
Normal file
@ -0,0 +1,37 @@
|
||||
# Maintainer: Evgeniy "arcanis" Alexeev <arcanis.arch at gmail dot com>
|
||||
|
||||
pkgname=kdeplasma-applets-netctl-gui
|
||||
_pkgname=netctl-gui
|
||||
pkgver=1.0.5
|
||||
pkgrel=1
|
||||
pkgdesc="A plasmoid, which interacts with netctl. A part of netctl-gui"
|
||||
arch=('i686' 'x86_64')
|
||||
url="http://arcanis.name/projects/netctl-gui"
|
||||
license=('GPLv3')
|
||||
depends=('netctl' 'kdebase-workspace')
|
||||
makedepends=('automoc4' 'cmake')
|
||||
optdepends=('kdebase-runtime: sudo support'
|
||||
'netctl-gui: graphical front-end'
|
||||
'netctl-gui-qt4: graphical front-end'
|
||||
'sudo: sudo support')
|
||||
source=("https://github.com/arcan1s/netctl-gui/releases/download/V.${pkgver}/${_pkgname}-${pkgver}-src.tar.xz")
|
||||
install="${_pkgname}.install"
|
||||
md5sums=('1ed6e64f06865f129710101ca83624f7')
|
||||
|
||||
_cmakekeys="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_GUI:BOOL=0"
|
||||
|
||||
prepare() {
|
||||
rm -rf "${srcdir}/build"
|
||||
mkdir "${srcdir}/build"
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "${srcdir}/build"
|
||||
cmake ${_cmakekeys} "../${_pkgname}"
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build"
|
||||
make DESTDIR="${pkgdir}" install
|
||||
}
|
25
README.md
@ -3,7 +3,7 @@ Netctl GUI
|
||||
|
||||
Information
|
||||
-----------
|
||||
Graphical interface for netctl. Now it may work with profiles and may create new profiles. Also it may create a connection to WiFi. Moreover, it provides a widget and DataEngine for KDE.
|
||||
Qt4/Qt5 graphical interface for netctl. It may work with profiles and may create new profiles. Also it may create a connection to WiFi. Moreover, it provides a widget and DataEngine for KDE.
|
||||
|
||||
**NOTE** LOOKING FOR TRANSLATORS!
|
||||
|
||||
@ -25,7 +25,7 @@ Instruction
|
||||
Dependencies
|
||||
------------
|
||||
* netctl
|
||||
* qt4
|
||||
* qt5-base (if Qt5 is used) or qt4 (if Qt4 is used)
|
||||
|
||||
Optional dependencies
|
||||
---------------------
|
||||
@ -37,6 +37,7 @@ Make dependencies
|
||||
-----------------
|
||||
* automoc4
|
||||
* cmake
|
||||
* qt5-tools (if Qt5 is used)
|
||||
|
||||
Installation
|
||||
------------
|
||||
@ -49,21 +50,12 @@ Installation
|
||||
make
|
||||
sudo make install
|
||||
|
||||
If you want install it without KDE widget just run:
|
||||
Available cmake flags:
|
||||
|
||||
cd /path/to/extracted/archive
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_DATAENGINE:BOOL=0 -DBUILD_PLASMOID:BOOL=0 ../
|
||||
make
|
||||
sudo make install
|
||||
|
||||
If you want install it without GUI run:
|
||||
|
||||
cd /path/to/extracted/archive
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_GUI:BOOL=0 ../
|
||||
make
|
||||
sudo make install
|
||||
* `-DBUILD_DATAENGINE:BOOL=0` - do not build DataEngine
|
||||
* `-DBUILD_GUI:BOOL=0` - do not build GUI
|
||||
* `-DBUILD_PLASMOID:BOOL=0` - do not build Plasmoid
|
||||
* `-DUSE_QT5:BOOL=0` - use Qt4 instead of Qt5 for GUI
|
||||
|
||||
Additional information
|
||||
======================
|
||||
@ -71,4 +63,5 @@ Additional information
|
||||
Links
|
||||
-----
|
||||
* [Homepage](http://arcanis.name/projects/netctl-gui)
|
||||
* Page on [kde-apps](http://kde-apps.org/content/show.php?content=164490)
|
||||
* Archlinux [AUR](https://aur.archlinux.org/packages/netctl-gui) package
|
||||
|
@ -3,21 +3,23 @@
|
||||
ARCHIVE="netctl-gui"
|
||||
SRCDIR="sources"
|
||||
FILES="AUTHORS CHANGELOG COPYING README.md"
|
||||
IGNORELIST="gui/resources/translations/english.qm gui/resources/translations/russian.qm"
|
||||
IGNORELIST="build gui/resources/translations/english.qm gui/resources/translations/russian.qm dataengine/dataengine.cppcheck gui/src/gui.cppcheck plasmoid/plasmoid.cppcheck"
|
||||
VERSION=$(grep -m1 PROJECT_VERSION_MAJOR sources/CMakeLists.txt | awk '{print $3}' | cut -c 1).\
|
||||
$(grep -m1 PROJECT_VERSION_MINOR sources/CMakeLists.txt | awk '{print $3}' | cut -c 1).\
|
||||
$(grep -m1 PROJECT_VERSION_PATCH sources/CMakeLists.txt | awk '{print $3}' | cut -c 1)
|
||||
|
||||
# create archive
|
||||
[[ -e ${ARCHIVE}-${VERSION}-src.tar.xz ]] && rm -f "${ARCHIVE}-${VERSION}-src.tar.xz"
|
||||
[[ -d ${ARCHIVE} ]] && rm -rf "${ARCHIVE}"
|
||||
cp -r "${SRCDIR}" "${ARCHIVE}"
|
||||
for FILE in ${FILES[*]}; do cp -r "$FILE" "${ARCHIVE}"; done
|
||||
for FILE in ${IGNORELIST[*]}; do rm -f "${ARCHIVE}/${FILE}"; done
|
||||
tar cvJf "${ARCHIVE}-${VERSION}-src.tar.xz" "${ARCHIVE}" > /dev/null
|
||||
for FILE in ${IGNORELIST[*]}; do rm -rf "${ARCHIVE}/${FILE}"; done
|
||||
tar cJf "${ARCHIVE}-${VERSION}-src.tar.xz" "${ARCHIVE}"
|
||||
rm -rf "${ARCHIVE}"
|
||||
|
||||
# update md5sum
|
||||
MD5SUMS=$(md5sum ${ARCHIVE}-${VERSION}-src.tar.xz | awk '{print $1}')
|
||||
sed -i "/md5sums=('[0-9A-Fa-f]*/s/[^'][^)]*/md5sums=('${MD5SUMS}'/" PKGBUILD
|
||||
sed -i "s/pkgver=[0-9.]*/pkgver=${VERSION}/" PKGBUILD
|
||||
sed -i "/md5sums=('[0-9A-Fa-f]*/s/[^'][^)]*/md5sums=('${MD5SUMS}'/" PKGBUILD-qt4
|
||||
sed -i "s/pkgver=[0-9.]*/pkgver=${VERSION}/" PKGBUILD-qt4
|
||||
sed -i "/md5sums=('[0-9A-Fa-f]*/s/[^'][^)]*/md5sums=('${MD5SUMS}'/" PKGBUILD-qt5
|
||||
sed -i "s/pkgver=[0-9.]*/pkgver=${VERSION}/" PKGBUILD-qt5
|
||||
sed -i "/md5sums=('[0-9A-Fa-f]*/s/[^'][^)]*/md5sums=('${MD5SUMS}'/" PKGBUILD-widget
|
||||
sed -i "s/pkgver=[0-9.]*/pkgver=${VERSION}/" PKGBUILD-widget
|
||||
|
Before Width: | Height: | Size: 147 KiB |
Before Width: | Height: | Size: 133 KiB |
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 51 KiB |
BIN
screenshots/gui_main.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
screenshots/gui_profile.png
Normal file
After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 105 KiB |
BIN
screenshots/gui_wifi.png
Normal file
After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 46 KiB |
BIN
screenshots/plasmoid_conf_01.png
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
screenshots/plasmoid_conf_02.png
Normal file
After Width: | Height: | Size: 47 KiB |
@ -8,7 +8,7 @@ cmake_policy (SET CMP0015 NEW)
|
||||
project (netctl-gui)
|
||||
set (PROJECT_VERSION_MAJOR 1)
|
||||
set (PROJECT_VERSION_MINOR 0)
|
||||
set (PROJECT_VERSION_PATCH 4)
|
||||
set (PROJECT_VERSION_PATCH 5)
|
||||
set (PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
|
||||
configure_file (${CMAKE_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h)
|
||||
|
||||
|
6
sources/dataengine/dataengine.cppcheck
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="1">
|
||||
<libraries>
|
||||
<library>qt</library>
|
||||
</libraries>
|
||||
</project>
|
@ -18,9 +18,12 @@
|
||||
#include "netctl.h"
|
||||
|
||||
#include <Plasma/DataContainer>
|
||||
#include <KDE/KGlobal>
|
||||
#include <KDE/KStandardDirs>
|
||||
#include <QDir>
|
||||
#include <QFile>
|
||||
#include <QProcess>
|
||||
#include <QTextCodec>
|
||||
|
||||
|
||||
Netctl::Netctl(QObject *parent, const QVariantList &args)
|
||||
@ -49,40 +52,60 @@ QStringList Netctl::sources() const
|
||||
}
|
||||
|
||||
|
||||
bool Netctl::readConfiguration()
|
||||
void Netctl::readConfiguration()
|
||||
{
|
||||
// default configuration
|
||||
configuration[QString("CMD")] = QString("/usr/bin/netctl");
|
||||
configuration[QString("EXTIP")] = QString("false");
|
||||
configuration[QString("EXTIPCMD")] = QString("wget -qO- http://ifconfig.me/ip");
|
||||
configuration[QString("IPCMD")] = QString("/usr/bin/ip");
|
||||
configuration[QString("NETDIR")] = QString("/sys/class/net/");
|
||||
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/");
|
||||
|
||||
QString fileStr;
|
||||
// FIXME: define configuration file
|
||||
QFile confFile(QString(getenv("HOME")) + QString("/.kde4/share/config/netctl.conf"));
|
||||
bool exists = confFile.open(QIODevice::ReadOnly);
|
||||
if (!exists) {
|
||||
confFile.setFileName("/usr/share/config/netctl.conf");
|
||||
exists = confFile.open(QIODevice::ReadOnly);
|
||||
if (!exists)
|
||||
return false;
|
||||
QString fileName = KGlobal::dirs()->findResource("config", "netctl.conf");
|
||||
QFile confFile(fileName);
|
||||
bool ok = confFile.open(QIODevice::ReadOnly);
|
||||
if (!ok) {
|
||||
configuration = updateConfiguration(rawConfig);
|
||||
return;
|
||||
}
|
||||
|
||||
QString fileStr;
|
||||
QStringList value;
|
||||
while (true) {
|
||||
fileStr = QString(confFile.readLine());
|
||||
if (fileStr[0] != '#') {
|
||||
if (fileStr.contains(QString("=")))
|
||||
configuration[fileStr.split(QString("="))[0]] = fileStr.split(QString("="))[1]
|
||||
.remove(QString(" "))
|
||||
.trimmed();
|
||||
fileStr = QString(confFile.readLine()).trimmed();
|
||||
if (fileStr[0] == QChar('#')) continue;
|
||||
if (fileStr[0] == QChar(';')) continue;
|
||||
if (fileStr.contains(QChar('='))) {
|
||||
value.clear();
|
||||
for (int i=1; i<fileStr.split(QChar('=')).count(); i++)
|
||||
value.append(fileStr.split(QChar('='))[i]);
|
||||
rawConfig[fileStr.split(QChar('='))[0]] = value.join(QChar('='));
|
||||
}
|
||||
if (confFile.atEnd())
|
||||
break;
|
||||
}
|
||||
|
||||
confFile.close();
|
||||
return true;
|
||||
configuration = updateConfiguration(rawConfig);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
QMap<QString, QString> Netctl::updateConfiguration(const QMap<QString, QString> rawConfig)
|
||||
{
|
||||
QMap<QString, QString> config;
|
||||
QString key, value;
|
||||
// remove spaces and copy source map
|
||||
for (int i=0; i<rawConfig.keys().count(); i++) {
|
||||
key = rawConfig.keys()[i];
|
||||
value = rawConfig[key];
|
||||
key.remove(QChar(' '));
|
||||
if ((key != QString("CMD")) &&
|
||||
(key != QString("EXTIPCMD")) &&
|
||||
(key != QString("IPCMD")))
|
||||
value.remove(QChar(' '));
|
||||
config[key] = value;
|
||||
}
|
||||
return config;
|
||||
}
|
||||
|
||||
|
||||
@ -92,122 +115,136 @@ bool Netctl::sourceRequestEvent(const QString &name)
|
||||
}
|
||||
|
||||
|
||||
bool Netctl::updateSourceEvent(const QString &source)
|
||||
QString Netctl::getCurrentProfile(const QString cmd)
|
||||
{
|
||||
QProcess command;
|
||||
QString cmdOutput = QString("");
|
||||
QString value = QString("");
|
||||
|
||||
if (source == QString("currentProfile")) {
|
||||
command.start(configuration[QString("CMD")] + QString(" list"));
|
||||
command.waitForFinished(-1);
|
||||
cmdOutput = command.readAllStandardOutput();
|
||||
if (!cmdOutput.isEmpty()) {
|
||||
QStringList profileList = cmdOutput.split(QString("\n"), QString::SkipEmptyParts);
|
||||
for (int i=0; i<profileList.count(); i++)
|
||||
if (profileList[i].split(QString(" "), QString::SkipEmptyParts).count() == 2) {
|
||||
value = profileList[i].split(QString(" "), QString::SkipEmptyParts)[1];
|
||||
break;
|
||||
}
|
||||
QString profile = QString("");
|
||||
command.start(cmd + QString(" list"));
|
||||
command.waitForFinished(-1);
|
||||
QString cmdOutput = QTextCodec::codecForMib(106)->toUnicode(command.readAllStandardOutput());
|
||||
QStringList profileList = cmdOutput.split(QChar('\n'), QString::SkipEmptyParts);
|
||||
for (int i=0; i<profileList.count(); i++)
|
||||
if (profileList[i][0] == QChar('*')) {
|
||||
profile = profileList[i];
|
||||
break;
|
||||
}
|
||||
setData(source, QString("value"), value);
|
||||
profile.remove(0, 1);
|
||||
return profile;
|
||||
}
|
||||
|
||||
|
||||
QString Netctl::getExtIp(const QString cmd)
|
||||
{
|
||||
QProcess command;
|
||||
QString extIp = QString("");
|
||||
command.start(cmd);
|
||||
command.waitForFinished(-1);
|
||||
QString cmdOutput = QTextCodec::codecForMib(106)->toUnicode(command.readAllStandardOutput());
|
||||
extIp = cmdOutput.trimmed();
|
||||
return extIp;
|
||||
}
|
||||
|
||||
|
||||
QStringList Netctl::getInterfaceList(const QString dir)
|
||||
{
|
||||
QStringList interfaceList;
|
||||
if (QDir(dir).exists())
|
||||
interfaceList = QDir(dir).entryList(QDir::Dirs | QDir::NoDotAndDotDot);
|
||||
return interfaceList;
|
||||
}
|
||||
|
||||
|
||||
QString Netctl::getIntIp(const QString cmd, const QString dir)
|
||||
{
|
||||
QProcess command;
|
||||
QString intIp = QString("127.0.0.1/8");
|
||||
QStringList interfaceList = getInterfaceList(dir);
|
||||
for (int i=0; i<interfaceList.count(); i++)
|
||||
if (interfaceList[i] != QString("lo")) {
|
||||
command.start(cmd + QString(" addr show ") + interfaceList[i]);
|
||||
command.waitForFinished(-1);
|
||||
QString cmdOutput = QTextCodec::codecForMib(106)->toUnicode(command.readAllStandardOutput());
|
||||
QStringList deviceInfo = cmdOutput.split(QChar('\n'), QString::SkipEmptyParts);
|
||||
for (int j=0; j<deviceInfo.count(); j++)
|
||||
if (deviceInfo[j].split(QChar(' '), QString::SkipEmptyParts)[0] == QString("inet"))
|
||||
intIp = deviceInfo[j].split(QChar(' '), QString::SkipEmptyParts)[1];
|
||||
}
|
||||
return intIp;
|
||||
}
|
||||
|
||||
|
||||
QStringList Netctl::getProfileList(const QString cmd)
|
||||
{
|
||||
QProcess command;
|
||||
command.start(cmd + QString(" list"));
|
||||
command.waitForFinished(-1);
|
||||
QString cmdOutput = QTextCodec::codecForMib(106)->toUnicode(command.readAllStandardOutput());
|
||||
QStringList profileList = cmdOutput.split(QChar('\n'), QString::SkipEmptyParts);
|
||||
for (int i=0; i<profileList.count(); i++)
|
||||
profileList[i].remove(0, 1);
|
||||
return profileList;
|
||||
}
|
||||
|
||||
|
||||
bool Netctl::getProfileStatus(const QString cmd)
|
||||
{
|
||||
bool status = false;
|
||||
QString cmdOutput = getCurrentProfile(cmd);
|
||||
if (!cmdOutput.isEmpty())
|
||||
status = true;
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
QString Netctl::getProfileStringStatus(const QString cmd)
|
||||
{
|
||||
QProcess command;
|
||||
QString status = QString("static");
|
||||
QString profile = getCurrentProfile(cmd);
|
||||
command.start(cmd + QString(" status ") + profile);
|
||||
command.waitForFinished(-1);
|
||||
QString cmdOutput = QTextCodec::codecForMib(106)->toUnicode(command.readAllStandardOutput());
|
||||
QStringList profileStatus = cmdOutput.split(QChar('\n'), QString::SkipEmptyParts);
|
||||
for (int i=0; i<profileStatus.count(); i++)
|
||||
if (profileStatus[i].split(QChar(' '), QString::SkipEmptyParts)[0] == QString("Loaded:")) {
|
||||
if (profileStatus[i].contains(QString("enabled")))
|
||||
status = QString("enabled");
|
||||
break;
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
bool Netctl::updateSourceEvent(const QString &source)
|
||||
{
|
||||
QString key = QString("value");
|
||||
QString value = QString("");
|
||||
if (source == QString("currentProfile")) {
|
||||
value = getCurrentProfile(configuration[QString("CMD")]);
|
||||
}
|
||||
else if (source == QString("extIp")) {
|
||||
if (configuration[QString("EXTIP")] == QString("true")) {
|
||||
command.start(configuration[QString("EXTIPCMD")]);
|
||||
command.waitForFinished(-1);
|
||||
cmdOutput = command.readAllStandardOutput();
|
||||
if (!cmdOutput.isEmpty())
|
||||
value = cmdOutput.split(QString("\n"), QString::SkipEmptyParts)[0];
|
||||
}
|
||||
setData(source, QString("value"), value);
|
||||
if (configuration[QString("EXTIP")] == QString("true"))
|
||||
value = getExtIp(configuration[QString("EXTIPCMD")]);
|
||||
}
|
||||
else if (source == QString("interfaces")) {
|
||||
if (QDir(configuration[QString("NETDIR")]).exists())
|
||||
value = QDir(configuration[QString("NETDIR")]).entryList(QDir::Dirs | QDir::NoDotAndDotDot).join(QString(","));
|
||||
setData(source, QString("value"), value);
|
||||
value = getInterfaceList(configuration[QString("NETDIR")]).join(QChar(','));
|
||||
}
|
||||
else if (source == QString("intIp")) {
|
||||
if (QDir(configuration[QString("NETDIR")]).exists()) {
|
||||
value = QString("127.0.0.1/8");
|
||||
QStringList netDevices = QDir(configuration[QString("NETDIR")]).entryList(QDir::Dirs | QDir::NoDotAndDotDot);
|
||||
for (int i=0; i<netDevices.count(); i++)
|
||||
if (netDevices[i] != QString("lo")) {
|
||||
cmdOutput = QString("");
|
||||
command.start(configuration[QString("IPCMD")] + QString(" addr show ") + netDevices[i]);
|
||||
command.waitForFinished(-1);
|
||||
cmdOutput = command.readAllStandardOutput();
|
||||
if (!cmdOutput.isEmpty()) {
|
||||
QStringList deviceInfo = cmdOutput.split(QString("\n"), QString::SkipEmptyParts);
|
||||
for (int j=0; j<deviceInfo.count(); j++)
|
||||
if (deviceInfo[j].split(QString(" "), QString::SkipEmptyParts)[0] == QString("inet"))
|
||||
value = deviceInfo[j].split(QString(" "), QString::SkipEmptyParts)[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
setData(source, QString("value"), value);
|
||||
value = getIntIp(configuration[QString("IPCMD")], configuration[QString("NETDIR")]);
|
||||
}
|
||||
else if (source == QString("profiles")) {
|
||||
command.start(configuration[QString("CMD")] + QString(" list"));
|
||||
command.waitForFinished(-1);
|
||||
cmdOutput = command.readAllStandardOutput();
|
||||
QStringList list;
|
||||
if (!cmdOutput.isEmpty()) {
|
||||
QStringList profileList = cmdOutput.split(QString("\n"), QString::SkipEmptyParts);
|
||||
for (int i=0; i<profileList.count(); i++)
|
||||
if (profileList[i].split(QString(" "), QString::SkipEmptyParts).count() == 1)
|
||||
list.append(profileList[i].split(QString(" "), QString::SkipEmptyParts)[0]);
|
||||
else if (profileList[i].split(QString(" "), QString::SkipEmptyParts).count() == 2)
|
||||
list.append(profileList[i].split(QString(" "), QString::SkipEmptyParts)[1]);
|
||||
}
|
||||
value = list.join(QString(","));
|
||||
setData(source, QString("value"), value);
|
||||
value = getProfileList(configuration[QString("CMD")]).join(QChar(','));
|
||||
}
|
||||
else if (source == QString("statusBool")) {
|
||||
command.start(configuration[QString("CMD")] + QString(" list"));
|
||||
command.waitForFinished(-1);
|
||||
cmdOutput = command.readAllStandardOutput();
|
||||
value = QString("false");
|
||||
if (!cmdOutput.isEmpty()) {
|
||||
QStringList profileList = cmdOutput.split(QString("\n"), QString::SkipEmptyParts);
|
||||
for (int i=0; i<profileList.count(); i++)
|
||||
if (profileList[i].split(QString(" "), QString::SkipEmptyParts).count() == 2) {
|
||||
value = QString("true");
|
||||
break;
|
||||
}
|
||||
}
|
||||
setData(source, QString("value"), value);
|
||||
if (getProfileStatus(configuration[QString("CMD")]))
|
||||
value = QString("true");
|
||||
else
|
||||
value = QString("false");
|
||||
}
|
||||
else if (source == QString("statusString")) {
|
||||
command.start(configuration[QString("CMD")] + QString(" list"));
|
||||
command.waitForFinished(-1);
|
||||
cmdOutput = command.readAllStandardOutput();
|
||||
QString currentProfile;
|
||||
if (!cmdOutput.isEmpty()) {
|
||||
QStringList profileList = cmdOutput.split(QString("\n"), QString::SkipEmptyParts);
|
||||
for (int i=0; i<profileList.count(); i++)
|
||||
if (profileList[i].split(QString(" "), QString::SkipEmptyParts).count() == 2) {
|
||||
currentProfile = profileList[i].split(QString(" "), QString::SkipEmptyParts)[1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
command.start(configuration[QString("CMD")] + QString(" status ") + currentProfile);
|
||||
command.waitForFinished(-1);
|
||||
cmdOutput = command.readAllStandardOutput();
|
||||
if (!cmdOutput.isEmpty()) {
|
||||
QStringList profile = cmdOutput.split(QString("\n"), QString::SkipEmptyParts);
|
||||
for (int i=0; i<profile.count(); i++)
|
||||
if (profile[i].split(QString(" "), QString::SkipEmptyParts)[0] == QString("Loaded:")) {
|
||||
if (profile[i].contains(QString("enabled")))
|
||||
value = QString("enabled");
|
||||
else if (profile[i].contains(QString("static")))
|
||||
value = QString("static");
|
||||
break;
|
||||
}
|
||||
}
|
||||
setData(source, QString("value"), value);
|
||||
value = getProfileStringStatus(configuration[QString("CMD")]);
|
||||
}
|
||||
|
||||
setData(source, key, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -27,9 +27,15 @@ class Netctl : public Plasma::DataEngine
|
||||
|
||||
public:
|
||||
Netctl(QObject *parent, const QVariantList &args);
|
||||
QString getCurrentProfile(const QString cmd);
|
||||
QString getExtIp(const QString cmd);
|
||||
QStringList getInterfaceList(const QString dir);
|
||||
QString getIntIp(const QString cmd, const QString dir);
|
||||
QStringList getProfileList(const QString cmd);
|
||||
bool getProfileStatus(const QString cmd);
|
||||
QString getProfileStringStatus(const QString cmd);
|
||||
|
||||
protected:
|
||||
bool readConfiguration();
|
||||
bool sourceRequestEvent(const QString &name);
|
||||
bool updateSourceEvent(const QString &source);
|
||||
QStringList sources() const;
|
||||
@ -37,6 +43,8 @@ protected:
|
||||
private:
|
||||
// configuration
|
||||
QMap<QString, QString> configuration;
|
||||
void readConfiguration();
|
||||
QMap<QString, QString> updateConfiguration(const QMap<QString, QString> rawConfig);
|
||||
};
|
||||
|
||||
|
||||
|
@ -4,7 +4,7 @@ Name=Netctl
|
||||
Comment=Data engine for netctl
|
||||
ServiceTypes=Plasma/DataEngine
|
||||
Type=Service
|
||||
Icon=netctl-gui
|
||||
Icon=netctl-gui-widget
|
||||
|
||||
X-KDE-ServiceTypes=Plasma/DataEngine
|
||||
X-KDE-Library=plasma_engine_netctl
|
||||
|
6
sources/gui/src/gui.cppcheck
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="1">
|
||||
<libraries>
|
||||
<library>qt</library>
|
||||
</libraries>
|
||||
</project>
|
@ -2,6 +2,11 @@
|
||||
set (SUBPROJECT netctl-gui-icons)
|
||||
message (STATUS "Subproject ${SUBPROJECT}")
|
||||
|
||||
install (FILES network-idle-64x64.png DESTINATION share/icons/hicolor/64x64/apps RENAME netctl-idle.png)
|
||||
install (FILES network-offline-64x64.png DESTINATION share/icons/hicolor/64x64/apps RENAME netctl-offline.png)
|
||||
install (FILES network-idle-128-128.png DESTINATION share/pixmaps RENAME netctl-gui.png)
|
||||
if (BUILD_GUI)
|
||||
install (FILES icon.png DESTINATION share/pixmaps RENAME netctl-gui.png)
|
||||
endif ()
|
||||
if (BUILD_DATAENGINE OR BUILD_PLASMOID)
|
||||
install (FILES icon-plasmoid.png DESTINATION share/pixmaps RENAME netctl-gui-widget.png)
|
||||
install (FILES network-idle-64x64.png DESTINATION share/icons/hicolor/64x64/apps RENAME netctl-idle.png)
|
||||
install (FILES network-offline-64x64.png DESTINATION share/icons/hicolor/64x64/apps RENAME netctl-offline.png)
|
||||
endif ()
|
||||
|
BIN
sources/icons/icon-plasmoid.png
Normal file
After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>480</width>
|
||||
<height>320</height>
|
||||
<height>343</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
@ -185,6 +185,55 @@
|
||||
<item>
|
||||
<widget class="QLineEdit" name="lineEdit_sudo"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pushButton_sudo">
|
||||
<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_wifi">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkBox_wifi">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>23</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Show 'Start WiFi menu'</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="lineEdit_wifi"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pushButton_wifi">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>100</width>
|
||||
<height>23</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Browse</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
@ -643,6 +692,10 @@
|
||||
<tabstop>pushButton_netctl</tabstop>
|
||||
<tabstop>checkBox_sudo</tabstop>
|
||||
<tabstop>lineEdit_sudo</tabstop>
|
||||
<tabstop>pushButton_sudo</tabstop>
|
||||
<tabstop>checkBox_wifi</tabstop>
|
||||
<tabstop>lineEdit_wifi</tabstop>
|
||||
<tabstop>pushButton_wifi</tabstop>
|
||||
<tabstop>checkBox_showBigInterface</tabstop>
|
||||
<tabstop>checkBox_showNetDev</tabstop>
|
||||
<tabstop>checkBox_showExtIp</tabstop>
|
||||
|
@ -175,23 +175,27 @@ void Netctl::restartProfileSlot()
|
||||
QList<QAction*> Netctl::contextualActions()
|
||||
{
|
||||
if (status) {
|
||||
startProfile->setText(i18n("Start another profile"));
|
||||
stopProfile->setVisible(true);
|
||||
stopProfile->setText(i18n("Stop ") + info[QString("name")]);
|
||||
restartProfile->setVisible(true);
|
||||
restartProfile->setText(i18n("Restart ") + info[QString("name")]);
|
||||
enableProfile->setVisible(true);
|
||||
contextMenu[QString("start")]->setText(i18n("Start another profile"));
|
||||
contextMenu[QString("stop")]->setVisible(true);
|
||||
contextMenu[QString("stop")]->setText(i18n("Stop ") + info[QString("name")]);
|
||||
contextMenu[QString("restart")]->setVisible(true);
|
||||
contextMenu[QString("restart")]->setText(i18n("Restart ") + info[QString("name")]);
|
||||
contextMenu[QString("enable")]->setVisible(true);
|
||||
if (info[QString("status")].contains(QString("enabled")))
|
||||
enableProfile->setText(i18n("Disable ") + info[QString("name")]);
|
||||
contextMenu[QString("enable")]->setText(i18n("Disable ") + info[QString("name")]);
|
||||
else
|
||||
enableProfile->setText(i18n("Enable ") + info[QString("name")]);
|
||||
contextMenu[QString("enable")]->setText(i18n("Enable ") + info[QString("name")]);
|
||||
}
|
||||
else {
|
||||
startProfile->setText(i18n("Start profile"));
|
||||
stopProfile->setVisible(false);
|
||||
restartProfile->setVisible(false);
|
||||
enableProfile->setVisible(false);
|
||||
contextMenu[QString("start")]->setText(i18n("Start profile"));
|
||||
contextMenu[QString("stop")]->setVisible(false);
|
||||
contextMenu[QString("restart")]->setVisible(false);
|
||||
contextMenu[QString("enable")]->setVisible(false);
|
||||
}
|
||||
if (useWifi)
|
||||
contextMenu[QString("wifi")]->setVisible(true);
|
||||
else
|
||||
contextMenu[QString("wifi")]->setVisible(false);
|
||||
|
||||
startProfileMenu->clear();
|
||||
for (int i=0; i<profileList.count(); i++) {
|
||||
@ -207,24 +211,28 @@ void Netctl::createActions()
|
||||
{
|
||||
menuActions.clear();
|
||||
|
||||
startProfile = new QAction(i18n("Start profile"), this);
|
||||
contextMenu[QString("start")] = new QAction(i18n("Start profile"), this);
|
||||
startProfileMenu = new QMenu(NULL);
|
||||
startProfile->setMenu(startProfileMenu);
|
||||
contextMenu[QString("start")]->setMenu(startProfileMenu);
|
||||
connect(startProfileMenu, SIGNAL(triggered(QAction *)), this,
|
||||
SLOT(startProfileSlot(QAction *)));
|
||||
menuActions.append(startProfile);
|
||||
menuActions.append(contextMenu[QString("start")]);
|
||||
|
||||
stopProfile = new QAction(i18n("Stop profile"), this);
|
||||
connect(stopProfile, SIGNAL(triggered(bool)), this, SLOT(stopProfileSlot()));
|
||||
menuActions.append(stopProfile);
|
||||
contextMenu[QString("stop")] = new QAction(i18n("Stop profile"), this);
|
||||
connect(contextMenu[QString("stop")], SIGNAL(triggered(bool)), this, SLOT(stopProfileSlot()));
|
||||
menuActions.append(contextMenu[QString("stop")]);
|
||||
|
||||
restartProfile = new QAction(i18n("Restart profile"), this);
|
||||
connect(restartProfile, SIGNAL(triggered(bool)), this, SLOT(restartProfileSlot()));
|
||||
menuActions.append(restartProfile);
|
||||
contextMenu[QString("restart")] = new QAction(i18n("Restart profile"), this);
|
||||
connect(contextMenu[QString("restart")], SIGNAL(triggered(bool)), this, SLOT(restartProfileSlot()));
|
||||
menuActions.append(contextMenu[QString("restart")]);
|
||||
|
||||
enableProfile = new QAction(i18n("Enable profile"), this);
|
||||
connect(enableProfile, SIGNAL(triggered(bool)), this, SLOT(enableProfileSlot()));
|
||||
menuActions.append(enableProfile);
|
||||
contextMenu[QString("enable")] = new QAction(i18n("Enable profile"), this);
|
||||
connect(contextMenu[QString("enable")], SIGNAL(triggered(bool)), this, SLOT(enableProfileSlot()));
|
||||
menuActions.append(contextMenu[QString("enable")]);
|
||||
|
||||
contextMenu[QString("wifi")] = new QAction(i18n("Show WiFi menu"), this);
|
||||
connect(contextMenu[QString("wifi")], SIGNAL(triggered(bool)), this, SLOT(showWifi()));
|
||||
menuActions.append(contextMenu[QString("wifi")]);
|
||||
}
|
||||
|
||||
|
||||
@ -248,6 +256,14 @@ void Netctl::showGui()
|
||||
}
|
||||
|
||||
|
||||
void Netctl::showWifi()
|
||||
{
|
||||
sendNotification(QString("Info"), i18n("Start WiFi menu"));
|
||||
QProcess command;
|
||||
command.startDetached(paths[QString("wifi")]);
|
||||
}
|
||||
|
||||
|
||||
// data engine interaction
|
||||
void Netctl::connectToEngine()
|
||||
{
|
||||
@ -376,6 +392,22 @@ void Netctl::selectNetctlExe()
|
||||
}
|
||||
|
||||
|
||||
void Netctl::selectSudoExe()
|
||||
{
|
||||
KUrl url = KFileDialog::getOpenUrl(KUrl(), "*");
|
||||
if (!url.isEmpty())
|
||||
uiConfig.lineEdit_sudo->setText(url.path());
|
||||
}
|
||||
|
||||
|
||||
void Netctl::selectWifiExe()
|
||||
{
|
||||
KUrl url = KFileDialog::getOpenUrl(KUrl(), "*");
|
||||
if (!url.isEmpty())
|
||||
uiConfig.lineEdit_wifi->setText(url.path());
|
||||
}
|
||||
|
||||
|
||||
void Netctl::createConfigurationInterface(KConfigDialog *parent)
|
||||
{
|
||||
QWidget *configwin = new QWidget;
|
||||
@ -392,6 +424,11 @@ void Netctl::createConfigurationInterface(KConfigDialog *parent)
|
||||
else
|
||||
uiConfig.checkBox_sudo->setCheckState(Qt::Unchecked);
|
||||
uiConfig.lineEdit_sudo->setText(paths[QString("sudo")]);
|
||||
if (useWifi)
|
||||
uiConfig.checkBox_wifi->setCheckState(Qt::Checked);
|
||||
else
|
||||
uiConfig.checkBox_wifi->setCheckState(Qt::Unchecked);
|
||||
uiConfig.lineEdit_wifi->setText(paths[QString("wifi")]);
|
||||
if (bigInterface[QString("main")])
|
||||
uiConfig.checkBox_showBigInterface->setCheckState(Qt::Checked);
|
||||
else
|
||||
@ -433,9 +470,12 @@ void Netctl::createConfigurationInterface(KConfigDialog *parent)
|
||||
connect(uiConfig.checkBox_showBigInterface, SIGNAL(stateChanged(int)), this,
|
||||
SLOT(setBigInterface()));
|
||||
connect(uiConfig.checkBox_sudo, SIGNAL(stateChanged(int)), this, SLOT(setSudo()));
|
||||
connect(uiConfig.checkBox_wifi, SIGNAL(stateChanged(int)), this, SLOT(setWifi()));
|
||||
|
||||
connect(uiConfig.pushButton_gui, SIGNAL(clicked()), this, SLOT(selectGuiExe()));
|
||||
connect(uiConfig.pushButton_netctl, SIGNAL(clicked()), this, SLOT(selectNetctlExe()));
|
||||
connect(uiConfig.pushButton_sudo, SIGNAL(clicked()), this, SLOT(selectSudoExe()));
|
||||
connect(uiConfig.pushButton_wifi, SIGNAL(clicked()), this, SLOT(selecWifiExe()));
|
||||
connect(uiConfig.pushButton_activeIcon, SIGNAL(clicked()), this, SLOT(selectActiveIcon()));
|
||||
connect(uiConfig.pushButton_inactiveIcon, SIGNAL(clicked()), this, SLOT(selectInactiveIcon()));
|
||||
|
||||
@ -457,6 +497,11 @@ void Netctl::configAccepted()
|
||||
else
|
||||
cg.writeEntry("useSudo", true);
|
||||
cg.writeEntry("sudoPath", uiConfig.lineEdit_sudo->text());
|
||||
if (uiConfig.checkBox_wifi->checkState() == 0)
|
||||
cg.writeEntry("useWifi", false);
|
||||
else
|
||||
cg.writeEntry("useWifi", true);
|
||||
cg.writeEntry("wifiPath", uiConfig.lineEdit_wifi->text());
|
||||
if (uiConfig.checkBox_showBigInterface->checkState() == 0)
|
||||
cg.writeEntry("showBigInterface", false);
|
||||
else
|
||||
@ -491,8 +536,10 @@ void Netctl::configChanged()
|
||||
autoUpdateInterval = cg.readEntry("autoUpdateInterval", 1000);
|
||||
paths[QString("gui")] = cg.readEntry("guiPath", "/usr/bin/netctl-gui");
|
||||
paths[QString("netctl")] = cg.readEntry("netctlPath", "/usr/bin/netctl");
|
||||
useSudo = cg.readEntry("useSudo", true);
|
||||
paths[QString("sudo")] = cg.readEntry("sudoPath", "/usr/bin/kdesu");
|
||||
paths[QString("wifi")] = cg.readEntry("wifiPath", "/usr/bin/netctl-gui -t 3");
|
||||
useSudo = cg.readEntry("useSudo", true);
|
||||
useWifi = cg.readEntry("useWifi", true);
|
||||
bigInterface[QString("main")] = cg.readEntry("showBigInterface", true);
|
||||
bigInterface[QString("extIp")] = cg.readEntry("showExtIp", false);
|
||||
bigInterface[QString("netDev")] = cg.readEntry("showNetDev", true);
|
||||
@ -538,9 +585,18 @@ void Netctl::setSudo()
|
||||
{
|
||||
if (uiConfig.checkBox_sudo->checkState() == 0)
|
||||
uiConfig.lineEdit_sudo->setDisabled(true);
|
||||
else if (uiConfig.checkBox_showBigInterface->checkState() == 2)
|
||||
else if (uiConfig.checkBox_sudo->checkState() == 2)
|
||||
uiConfig.lineEdit_sudo->setEnabled(true);
|
||||
}
|
||||
|
||||
|
||||
void Netctl::setWifi()
|
||||
{
|
||||
if (uiConfig.checkBox_wifi->checkState() == 0)
|
||||
uiConfig.lineEdit_wifi->setDisabled(true);
|
||||
else if (uiConfig.checkBox_wifi->checkState() == 2)
|
||||
uiConfig.checkBox_wifi->setEnabled(true);
|
||||
}
|
||||
|
||||
|
||||
#include "netctl.moc"
|
||||
|
@ -43,6 +43,7 @@ public slots:
|
||||
// events
|
||||
void sendNotification(const QString eventId, const QString message);
|
||||
void showGui();
|
||||
void showWifi();
|
||||
// dataengine
|
||||
void dataUpdated(const QString &sourceName, const Plasma::DataEngine::Data &data);
|
||||
// configuration interface
|
||||
@ -50,6 +51,7 @@ public slots:
|
||||
void configChanged();
|
||||
void setBigInterface();
|
||||
void setSudo();
|
||||
void setWifi();
|
||||
|
||||
private slots:
|
||||
// ui
|
||||
@ -59,6 +61,8 @@ private slots:
|
||||
void selectGuiExe();
|
||||
void selectInactiveIcon();
|
||||
void selectNetctlExe();
|
||||
void selectSudoExe();
|
||||
void selectWifiExe();
|
||||
// context menu
|
||||
void enableProfileSlot();
|
||||
void startProfileSlot(QAction *profile);
|
||||
@ -83,16 +87,11 @@ private:
|
||||
void createActions();
|
||||
QList<QAction*> menuActions;
|
||||
QMenu *startProfileMenu;
|
||||
QAction *enableProfile;
|
||||
QAction *startProfile;
|
||||
QAction *stopProfile;
|
||||
QAction *restartProfile;
|
||||
QMap<QString, QAction*> contextMenu;
|
||||
// data engine
|
||||
Plasma::DataEngine *netctlEngine;
|
||||
void connectToEngine();
|
||||
void disconnectFromEngine();
|
||||
// notification
|
||||
//
|
||||
// configuration interface
|
||||
Ui::ConfigWindow uiConfig;
|
||||
// configuration
|
||||
@ -100,7 +99,7 @@ private:
|
||||
QMap<QString, bool> bigInterface;
|
||||
QStringList formatLine;
|
||||
QMap<QString, QString> paths;
|
||||
bool useSudo;
|
||||
bool useSudo, useWifi;
|
||||
};
|
||||
|
||||
K_EXPORT_PLASMA_APPLET(netctl, Netctl)
|
||||
|
@ -3,7 +3,7 @@ Encoding=UTF-8
|
||||
Name=Netctl
|
||||
Comment=Plasmoid for netctl
|
||||
Type=Service
|
||||
Icon=netctl-gui
|
||||
Icon=netctl-gui-widget
|
||||
|
||||
X-KDE-ServiceTypes=Plasma/Applet
|
||||
X-KDE-Library=plasma_applet_netctl
|
||||
|
6
sources/plasmoid/plasmoid.cppcheck
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="1">
|
||||
<libraries>
|
||||
<library>qt</library>
|
||||
</libraries>
|
||||
</project>
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: http://kde-look.org/content/show.php?content=98925\n"
|
||||
"POT-Creation-Date: 2014-04-07 00:27+0400\n"
|
||||
"PO-Revision-Date: 2014-04-07 00:28+0400\n"
|
||||
"POT-Creation-Date: 2014-04-12 18:56+0400\n"
|
||||
"PO-Revision-Date: 2014-04-12 18:56+0400\n"
|
||||
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
|
||||
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
|
||||
"Language: ru\n"
|
||||
@ -58,35 +58,43 @@ msgstr "Disable "
|
||||
msgid "Enable "
|
||||
msgstr "Enable "
|
||||
|
||||
#: netctl.cpp:190 netctl.cpp:210
|
||||
#: netctl.cpp:190 netctl.cpp:214
|
||||
msgid "Start profile"
|
||||
msgstr "Start profile"
|
||||
|
||||
#: netctl.cpp:217
|
||||
#: netctl.cpp:221
|
||||
msgid "Stop profile"
|
||||
msgstr "Stop profile"
|
||||
|
||||
#: netctl.cpp:221
|
||||
#: netctl.cpp:225
|
||||
msgid "Restart profile"
|
||||
msgstr "Restart profile"
|
||||
|
||||
#: netctl.cpp:225
|
||||
#: netctl.cpp:229
|
||||
msgid "Enable profile"
|
||||
msgstr "Enable profile"
|
||||
|
||||
#: netctl.cpp:245
|
||||
#: netctl.cpp:233
|
||||
msgid "Show WiFi menu"
|
||||
msgstr "Show WiFi menu"
|
||||
|
||||
#: netctl.cpp:253
|
||||
msgid "Start GUI"
|
||||
msgstr "Start GUI"
|
||||
|
||||
#: netctl.cpp:309
|
||||
#: netctl.cpp:261
|
||||
msgid "Start WiFi menu"
|
||||
msgstr "Start WiFi menu"
|
||||
|
||||
#: netctl.cpp:325
|
||||
msgid "Network is up"
|
||||
msgstr "Network is up"
|
||||
|
||||
#: netctl.cpp:315
|
||||
#: netctl.cpp:331
|
||||
msgid "Network is down"
|
||||
msgstr "Network is down"
|
||||
|
||||
#: netctl.cpp:431
|
||||
#: netctl.cpp:468
|
||||
msgid "Netctl plasmoid"
|
||||
msgstr "Netctl plasmoid"
|
||||
|
||||
@ -112,20 +120,28 @@ msgstr "Path to GUI"
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
|
||||
#. i18n: file: configwindow.ui:161
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
|
||||
#. i18n: file: configwindow.ui:572
|
||||
#. i18n: file: configwindow.ui:197
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
|
||||
#. i18n: file: configwindow.ui:233
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
|
||||
#. i18n: file: configwindow.ui:621
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
|
||||
#. i18n: file: configwindow.ui:605
|
||||
#. i18n: file: configwindow.ui:654
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
|
||||
#. i18n: file: configwindow.ui:128
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
|
||||
#. i18n: file: configwindow.ui:161
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
|
||||
#. i18n: file: configwindow.ui:572
|
||||
#. i18n: file: configwindow.ui:197
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
|
||||
#. i18n: file: configwindow.ui:233
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
|
||||
#. i18n: file: configwindow.ui:621
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
|
||||
#. i18n: file: configwindow.ui:605
|
||||
#. i18n: file: configwindow.ui:654
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
|
||||
#: po/rc.cpp:12 po/rc.cpp:18 po/rc.cpp:78 po/rc.cpp:84 rc.cpp:12 rc.cpp:18
|
||||
#: rc.cpp:78 rc.cpp:84
|
||||
#: po/rc.cpp:12 po/rc.cpp:18 po/rc.cpp:24 po/rc.cpp:30 po/rc.cpp:87
|
||||
#: po/rc.cpp:93 rc.cpp:12 rc.cpp:18 rc.cpp:24 rc.cpp:30 rc.cpp:87 rc.cpp:93
|
||||
msgid "Browse"
|
||||
msgstr "Browse"
|
||||
|
||||
@ -141,126 +157,132 @@ msgstr "Path to netctl"
|
||||
msgid "Use sudo for netctl"
|
||||
msgstr "Use sudo for netctl"
|
||||
|
||||
#. i18n: file: configwindow.ui:193
|
||||
#. i18n: file: configwindow.ui:214
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_wifi)
|
||||
#: po/rc.cpp:27 rc.cpp:27
|
||||
msgid "Show 'Start WiFi menu'"
|
||||
msgstr "Show 'Start WiFi menu'"
|
||||
|
||||
#. i18n: file: configwindow.ui:242
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showBigInterface)
|
||||
#: po/rc.cpp:24 rc.cpp:24
|
||||
#: po/rc.cpp:33 rc.cpp:33
|
||||
msgid "Show more detailed interface"
|
||||
msgstr "Show more detailed interface"
|
||||
|
||||
#. i18n: file: configwindow.ui:203
|
||||
#. i18n: file: configwindow.ui:252
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showNetDev)
|
||||
#: po/rc.cpp:27 rc.cpp:27
|
||||
#: po/rc.cpp:36 rc.cpp:36
|
||||
msgid "Show network devices"
|
||||
msgstr "Show network devices"
|
||||
|
||||
#. i18n: file: configwindow.ui:213
|
||||
#. i18n: file: configwindow.ui:262
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showExtIp)
|
||||
#: po/rc.cpp:30 rc.cpp:30
|
||||
#: po/rc.cpp:39 rc.cpp:39
|
||||
msgid "Show external IP"
|
||||
msgstr "Show external IP"
|
||||
|
||||
#. i18n: file: configwindow.ui:223
|
||||
#. i18n: file: configwindow.ui:272
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showIntIp)
|
||||
#: po/rc.cpp:33 rc.cpp:33
|
||||
#: po/rc.cpp:42 rc.cpp:42
|
||||
msgid "Show internal IP"
|
||||
msgstr "Show internal IP"
|
||||
|
||||
#. i18n: file: configwindow.ui:247
|
||||
#. i18n: file: configwindow.ui:296
|
||||
#. i18n: ectx: attribute (title), widget (QWidget, tabAppearance)
|
||||
#: po/rc.cpp:36 rc.cpp:36
|
||||
#: po/rc.cpp:45 rc.cpp:45
|
||||
msgid "Appearance"
|
||||
msgstr "Appearance"
|
||||
|
||||
#. i18n: file: configwindow.ui:261
|
||||
#. i18n: file: configwindow.ui:310
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_font)
|
||||
#: po/rc.cpp:39 rc.cpp:39
|
||||
#: po/rc.cpp:48 rc.cpp:48
|
||||
msgid "Font"
|
||||
msgstr "Font"
|
||||
|
||||
#. i18n: file: configwindow.ui:293
|
||||
#. i18n: file: configwindow.ui:342
|
||||
#. i18n: ectx: property (toolTip), widget (QFontComboBox, fontComboBox_font)
|
||||
#: po/rc.cpp:42 rc.cpp:42
|
||||
#: po/rc.cpp:51 rc.cpp:51
|
||||
msgid "Set font family"
|
||||
msgstr "Set font family"
|
||||
|
||||
#. i18n: file: configwindow.ui:310
|
||||
#. i18n: file: configwindow.ui:359
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_fontSize)
|
||||
#: po/rc.cpp:45 rc.cpp:45
|
||||
#: po/rc.cpp:54 rc.cpp:54
|
||||
msgid "Font size"
|
||||
msgstr "Font size"
|
||||
|
||||
#. i18n: file: configwindow.ui:342
|
||||
#. i18n: file: configwindow.ui:391
|
||||
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontSize)
|
||||
#: po/rc.cpp:48 rc.cpp:48
|
||||
#: po/rc.cpp:57 rc.cpp:57
|
||||
msgid "Set font size"
|
||||
msgstr "Set font size"
|
||||
|
||||
#. i18n: file: configwindow.ui:371
|
||||
#. i18n: file: configwindow.ui:420
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_fontColor)
|
||||
#: po/rc.cpp:51 rc.cpp:51
|
||||
#: po/rc.cpp:60 rc.cpp:60
|
||||
msgid "Font color"
|
||||
msgstr "Font color"
|
||||
|
||||
#. i18n: file: configwindow.ui:403
|
||||
#. i18n: file: configwindow.ui:452
|
||||
#. i18n: ectx: property (toolTip), widget (KColorCombo, kcolorcombo_fontColor)
|
||||
#: po/rc.cpp:54 rc.cpp:54
|
||||
#: po/rc.cpp:63 rc.cpp:63
|
||||
msgid "Set font color"
|
||||
msgstr "Set font color"
|
||||
|
||||
#. i18n: file: configwindow.ui:420
|
||||
#. i18n: file: configwindow.ui:469
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_fontWeight)
|
||||
#: po/rc.cpp:57 rc.cpp:57
|
||||
#: po/rc.cpp:66 rc.cpp:66
|
||||
msgid "Font weight"
|
||||
msgstr "Font weight"
|
||||
|
||||
#. i18n: file: configwindow.ui:452
|
||||
#. i18n: file: configwindow.ui:501
|
||||
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontWeight)
|
||||
#: po/rc.cpp:60 rc.cpp:60
|
||||
#: po/rc.cpp:69 rc.cpp:69
|
||||
msgid "Set font weight"
|
||||
msgstr "Set font weight"
|
||||
|
||||
#. i18n: file: configwindow.ui:484
|
||||
#. i18n: file: configwindow.ui:533
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_fontStyle)
|
||||
#: po/rc.cpp:63 rc.cpp:63
|
||||
#: po/rc.cpp:72 rc.cpp:72
|
||||
msgid "Font style"
|
||||
msgstr "Font style"
|
||||
|
||||
#. i18n: file: configwindow.ui:516
|
||||
#. i18n: file: configwindow.ui:565
|
||||
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_fontStyle)
|
||||
#: po/rc.cpp:66 rc.cpp:66
|
||||
#: po/rc.cpp:75 rc.cpp:75
|
||||
msgid "Set font style"
|
||||
msgstr "Set font style"
|
||||
|
||||
#. i18n: file: configwindow.ui:520
|
||||
#. i18n: file: configwindow.ui:569
|
||||
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_fontStyle)
|
||||
#: po/rc.cpp:69 rc.cpp:69
|
||||
#: po/rc.cpp:78 rc.cpp:78
|
||||
msgid "normal"
|
||||
msgstr "normal"
|
||||
|
||||
#. i18n: file: configwindow.ui:525
|
||||
#. i18n: file: configwindow.ui:574
|
||||
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_fontStyle)
|
||||
#: po/rc.cpp:72 rc.cpp:72
|
||||
#: po/rc.cpp:81 rc.cpp:81
|
||||
msgid "italic"
|
||||
msgstr "italic"
|
||||
|
||||
#. i18n: file: configwindow.ui:556
|
||||
#. i18n: file: configwindow.ui:605
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_activeIcon)
|
||||
#: po/rc.cpp:75 rc.cpp:75
|
||||
#: po/rc.cpp:84 rc.cpp:84
|
||||
msgid "Active icon"
|
||||
msgstr "Active icon"
|
||||
|
||||
#. i18n: file: configwindow.ui:589
|
||||
#. i18n: file: configwindow.ui:638
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_inactiveIcon)
|
||||
#: po/rc.cpp:81 rc.cpp:81
|
||||
#: po/rc.cpp:90 rc.cpp:90
|
||||
msgid "Inactive icon"
|
||||
msgstr "Inactive icon"
|
||||
|
||||
#: po/rc.cpp:85 rc.cpp:85
|
||||
#: po/rc.cpp:94 rc.cpp:94
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Evgeniy Alekseev"
|
||||
|
||||
#: po/rc.cpp:86 rc.cpp:86
|
||||
#: po/rc.cpp:95 rc.cpp:95
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "esalexeev@gmail.com"
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://kde-look.org/content/show.php?content=98925\n"
|
||||
"POT-Creation-Date: 2014-04-07 00:27+0400\n"
|
||||
"POT-Creation-Date: 2014-04-12 18:56+0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -57,35 +57,43 @@ msgstr ""
|
||||
msgid "Enable "
|
||||
msgstr ""
|
||||
|
||||
#: netctl.cpp:190 netctl.cpp:210
|
||||
#: netctl.cpp:190 netctl.cpp:214
|
||||
msgid "Start profile"
|
||||
msgstr ""
|
||||
|
||||
#: netctl.cpp:217
|
||||
#: netctl.cpp:221
|
||||
msgid "Stop profile"
|
||||
msgstr ""
|
||||
|
||||
#: netctl.cpp:221
|
||||
#: netctl.cpp:225
|
||||
msgid "Restart profile"
|
||||
msgstr ""
|
||||
|
||||
#: netctl.cpp:225
|
||||
#: netctl.cpp:229
|
||||
msgid "Enable profile"
|
||||
msgstr ""
|
||||
|
||||
#: netctl.cpp:245
|
||||
#: netctl.cpp:233
|
||||
msgid "Show WiFi menu"
|
||||
msgstr ""
|
||||
|
||||
#: netctl.cpp:253
|
||||
msgid "Start GUI"
|
||||
msgstr ""
|
||||
|
||||
#: netctl.cpp:309
|
||||
#: netctl.cpp:261
|
||||
msgid "Start WiFi menu"
|
||||
msgstr ""
|
||||
|
||||
#: netctl.cpp:325
|
||||
msgid "Network is up"
|
||||
msgstr ""
|
||||
|
||||
#: netctl.cpp:315
|
||||
#: netctl.cpp:331
|
||||
msgid "Network is down"
|
||||
msgstr ""
|
||||
|
||||
#: netctl.cpp:431
|
||||
#: netctl.cpp:468
|
||||
msgid "Netctl plasmoid"
|
||||
msgstr ""
|
||||
|
||||
@ -111,20 +119,28 @@ msgstr ""
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
|
||||
#. i18n: file: configwindow.ui:161
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
|
||||
#. i18n: file: configwindow.ui:572
|
||||
#. i18n: file: configwindow.ui:197
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
|
||||
#. i18n: file: configwindow.ui:233
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
|
||||
#. i18n: file: configwindow.ui:621
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
|
||||
#. i18n: file: configwindow.ui:605
|
||||
#. i18n: file: configwindow.ui:654
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
|
||||
#. i18n: file: configwindow.ui:128
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
|
||||
#. i18n: file: configwindow.ui:161
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
|
||||
#. i18n: file: configwindow.ui:572
|
||||
#. i18n: file: configwindow.ui:197
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
|
||||
#. i18n: file: configwindow.ui:233
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
|
||||
#. i18n: file: configwindow.ui:621
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
|
||||
#. i18n: file: configwindow.ui:605
|
||||
#. i18n: file: configwindow.ui:654
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
|
||||
#: po/rc.cpp:12 po/rc.cpp:18 po/rc.cpp:78 po/rc.cpp:84 rc.cpp:12 rc.cpp:18
|
||||
#: rc.cpp:78 rc.cpp:84
|
||||
#: po/rc.cpp:12 po/rc.cpp:18 po/rc.cpp:24 po/rc.cpp:30 po/rc.cpp:87
|
||||
#: po/rc.cpp:93 rc.cpp:12 rc.cpp:18 rc.cpp:24 rc.cpp:30 rc.cpp:87 rc.cpp:93
|
||||
msgid "Browse"
|
||||
msgstr ""
|
||||
|
||||
@ -140,126 +156,132 @@ msgstr ""
|
||||
msgid "Use sudo for netctl"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:193
|
||||
#. i18n: file: configwindow.ui:214
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_wifi)
|
||||
#: po/rc.cpp:27 rc.cpp:27
|
||||
msgid "Show 'Start WiFi menu'"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:242
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showBigInterface)
|
||||
#: po/rc.cpp:24 rc.cpp:24
|
||||
#: po/rc.cpp:33 rc.cpp:33
|
||||
msgid "Show more detailed interface"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:203
|
||||
#. i18n: file: configwindow.ui:252
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showNetDev)
|
||||
#: po/rc.cpp:27 rc.cpp:27
|
||||
#: po/rc.cpp:36 rc.cpp:36
|
||||
msgid "Show network devices"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:213
|
||||
#. i18n: file: configwindow.ui:262
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showExtIp)
|
||||
#: po/rc.cpp:30 rc.cpp:30
|
||||
#: po/rc.cpp:39 rc.cpp:39
|
||||
msgid "Show external IP"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:223
|
||||
#. i18n: file: configwindow.ui:272
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showIntIp)
|
||||
#: po/rc.cpp:33 rc.cpp:33
|
||||
#: po/rc.cpp:42 rc.cpp:42
|
||||
msgid "Show internal IP"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:247
|
||||
#. i18n: file: configwindow.ui:296
|
||||
#. i18n: ectx: attribute (title), widget (QWidget, tabAppearance)
|
||||
#: po/rc.cpp:36 rc.cpp:36
|
||||
#: po/rc.cpp:45 rc.cpp:45
|
||||
msgid "Appearance"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:261
|
||||
#. i18n: file: configwindow.ui:310
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_font)
|
||||
#: po/rc.cpp:39 rc.cpp:39
|
||||
#: po/rc.cpp:48 rc.cpp:48
|
||||
msgid "Font"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:293
|
||||
#. i18n: file: configwindow.ui:342
|
||||
#. i18n: ectx: property (toolTip), widget (QFontComboBox, fontComboBox_font)
|
||||
#: po/rc.cpp:42 rc.cpp:42
|
||||
#: po/rc.cpp:51 rc.cpp:51
|
||||
msgid "Set font family"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:310
|
||||
#. i18n: file: configwindow.ui:359
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_fontSize)
|
||||
#: po/rc.cpp:45 rc.cpp:45
|
||||
#: po/rc.cpp:54 rc.cpp:54
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:342
|
||||
#. i18n: file: configwindow.ui:391
|
||||
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontSize)
|
||||
#: po/rc.cpp:48 rc.cpp:48
|
||||
#: po/rc.cpp:57 rc.cpp:57
|
||||
msgid "Set font size"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:371
|
||||
#. i18n: file: configwindow.ui:420
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_fontColor)
|
||||
#: po/rc.cpp:51 rc.cpp:51
|
||||
#: po/rc.cpp:60 rc.cpp:60
|
||||
msgid "Font color"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:403
|
||||
#. i18n: file: configwindow.ui:452
|
||||
#. i18n: ectx: property (toolTip), widget (KColorCombo, kcolorcombo_fontColor)
|
||||
#: po/rc.cpp:54 rc.cpp:54
|
||||
#: po/rc.cpp:63 rc.cpp:63
|
||||
msgid "Set font color"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:420
|
||||
#. i18n: file: configwindow.ui:469
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_fontWeight)
|
||||
#: po/rc.cpp:57 rc.cpp:57
|
||||
#: po/rc.cpp:66 rc.cpp:66
|
||||
msgid "Font weight"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:452
|
||||
#. i18n: file: configwindow.ui:501
|
||||
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontWeight)
|
||||
#: po/rc.cpp:60 rc.cpp:60
|
||||
#: po/rc.cpp:69 rc.cpp:69
|
||||
msgid "Set font weight"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:484
|
||||
#. i18n: file: configwindow.ui:533
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_fontStyle)
|
||||
#: po/rc.cpp:63 rc.cpp:63
|
||||
#: po/rc.cpp:72 rc.cpp:72
|
||||
msgid "Font style"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:516
|
||||
#. i18n: file: configwindow.ui:565
|
||||
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_fontStyle)
|
||||
#: po/rc.cpp:66 rc.cpp:66
|
||||
#: po/rc.cpp:75 rc.cpp:75
|
||||
msgid "Set font style"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:520
|
||||
#. i18n: file: configwindow.ui:569
|
||||
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_fontStyle)
|
||||
#: po/rc.cpp:69 rc.cpp:69
|
||||
#: po/rc.cpp:78 rc.cpp:78
|
||||
msgid "normal"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:525
|
||||
#. i18n: file: configwindow.ui:574
|
||||
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_fontStyle)
|
||||
#: po/rc.cpp:72 rc.cpp:72
|
||||
#: po/rc.cpp:81 rc.cpp:81
|
||||
msgid "italic"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:556
|
||||
#. i18n: file: configwindow.ui:605
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_activeIcon)
|
||||
#: po/rc.cpp:75 rc.cpp:75
|
||||
#: po/rc.cpp:84 rc.cpp:84
|
||||
msgid "Active icon"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: file: configwindow.ui:589
|
||||
#. i18n: file: configwindow.ui:638
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_inactiveIcon)
|
||||
#: po/rc.cpp:81 rc.cpp:81
|
||||
#: po/rc.cpp:90 rc.cpp:90
|
||||
msgid "Inactive icon"
|
||||
msgstr ""
|
||||
|
||||
#: po/rc.cpp:85 rc.cpp:85
|
||||
#: po/rc.cpp:94 rc.cpp:94
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr ""
|
||||
|
||||
#: po/rc.cpp:86 rc.cpp:86
|
||||
#: po/rc.cpp:95 rc.cpp:95
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr ""
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: http://kde-look.org/content/show.php?content=98925\n"
|
||||
"POT-Creation-Date: 2014-04-07 00:27+0400\n"
|
||||
"PO-Revision-Date: 2014-04-07 00:28+0400\n"
|
||||
"POT-Creation-Date: 2014-04-12 18:56+0400\n"
|
||||
"PO-Revision-Date: 2014-04-12 18:58+0400\n"
|
||||
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
|
||||
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
|
||||
"Language: ru\n"
|
||||
@ -58,35 +58,43 @@ msgstr "Отключить "
|
||||
msgid "Enable "
|
||||
msgstr "Включить "
|
||||
|
||||
#: netctl.cpp:190 netctl.cpp:210
|
||||
#: netctl.cpp:190 netctl.cpp:214
|
||||
msgid "Start profile"
|
||||
msgstr "Запустить профиль"
|
||||
|
||||
#: netctl.cpp:217
|
||||
#: netctl.cpp:221
|
||||
msgid "Stop profile"
|
||||
msgstr "Остановить профиль"
|
||||
|
||||
#: netctl.cpp:221
|
||||
#: netctl.cpp:225
|
||||
msgid "Restart profile"
|
||||
msgstr "Перезапустить профиль"
|
||||
|
||||
#: netctl.cpp:225
|
||||
#: netctl.cpp:229
|
||||
msgid "Enable profile"
|
||||
msgstr "Включить профиль"
|
||||
|
||||
#: netctl.cpp:245
|
||||
#: netctl.cpp:233
|
||||
msgid "Show WiFi menu"
|
||||
msgstr "Запустить WiFi-menu"
|
||||
|
||||
#: netctl.cpp:253
|
||||
msgid "Start GUI"
|
||||
msgstr "Запуск GUI"
|
||||
|
||||
#: netctl.cpp:309
|
||||
#: netctl.cpp:261
|
||||
msgid "Start WiFi menu"
|
||||
msgstr "Запуск WiFi-menu"
|
||||
|
||||
#: netctl.cpp:325
|
||||
msgid "Network is up"
|
||||
msgstr "Сеть работает"
|
||||
|
||||
#: netctl.cpp:315
|
||||
#: netctl.cpp:331
|
||||
msgid "Network is down"
|
||||
msgstr "Сеть не работает"
|
||||
|
||||
#: netctl.cpp:431
|
||||
#: netctl.cpp:468
|
||||
msgid "Netctl plasmoid"
|
||||
msgstr "Netctl plasmoid"
|
||||
|
||||
@ -112,20 +120,28 @@ msgstr "Путь к GUI"
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
|
||||
#. i18n: file: configwindow.ui:161
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
|
||||
#. i18n: file: configwindow.ui:572
|
||||
#. i18n: file: configwindow.ui:197
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
|
||||
#. i18n: file: configwindow.ui:233
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
|
||||
#. i18n: file: configwindow.ui:621
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
|
||||
#. i18n: file: configwindow.ui:605
|
||||
#. i18n: file: configwindow.ui:654
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
|
||||
#. i18n: file: configwindow.ui:128
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
|
||||
#. i18n: file: configwindow.ui:161
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
|
||||
#. i18n: file: configwindow.ui:572
|
||||
#. i18n: file: configwindow.ui:197
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
|
||||
#. i18n: file: configwindow.ui:233
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
|
||||
#. i18n: file: configwindow.ui:621
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
|
||||
#. i18n: file: configwindow.ui:605
|
||||
#. i18n: file: configwindow.ui:654
|
||||
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
|
||||
#: po/rc.cpp:12 po/rc.cpp:18 po/rc.cpp:78 po/rc.cpp:84 rc.cpp:12 rc.cpp:18
|
||||
#: rc.cpp:78 rc.cpp:84
|
||||
#: po/rc.cpp:12 po/rc.cpp:18 po/rc.cpp:24 po/rc.cpp:30 po/rc.cpp:87
|
||||
#: po/rc.cpp:93 rc.cpp:12 rc.cpp:18 rc.cpp:24 rc.cpp:30 rc.cpp:87 rc.cpp:93
|
||||
msgid "Browse"
|
||||
msgstr "Обзор"
|
||||
|
||||
@ -141,126 +157,132 @@ msgstr "Путь к netctl"
|
||||
msgid "Use sudo for netctl"
|
||||
msgstr "Использовать sudo для netctl"
|
||||
|
||||
#. i18n: file: configwindow.ui:193
|
||||
#. i18n: file: configwindow.ui:214
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_wifi)
|
||||
#: po/rc.cpp:27 rc.cpp:27
|
||||
msgid "Show 'Start WiFi menu'"
|
||||
msgstr "Показать 'Запустить WiFi-menu'"
|
||||
|
||||
#. i18n: file: configwindow.ui:242
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showBigInterface)
|
||||
#: po/rc.cpp:24 rc.cpp:24
|
||||
#: po/rc.cpp:33 rc.cpp:33
|
||||
msgid "Show more detailed interface"
|
||||
msgstr "Показать более детальный интерфейс"
|
||||
|
||||
#. i18n: file: configwindow.ui:203
|
||||
#. i18n: file: configwindow.ui:252
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showNetDev)
|
||||
#: po/rc.cpp:27 rc.cpp:27
|
||||
#: po/rc.cpp:36 rc.cpp:36
|
||||
msgid "Show network devices"
|
||||
msgstr "Показать сетевые устройства"
|
||||
|
||||
#. i18n: file: configwindow.ui:213
|
||||
#. i18n: file: configwindow.ui:262
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showExtIp)
|
||||
#: po/rc.cpp:30 rc.cpp:30
|
||||
#: po/rc.cpp:39 rc.cpp:39
|
||||
msgid "Show external IP"
|
||||
msgstr "Показать внешний IP"
|
||||
|
||||
#. i18n: file: configwindow.ui:223
|
||||
#. i18n: file: configwindow.ui:272
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showIntIp)
|
||||
#: po/rc.cpp:33 rc.cpp:33
|
||||
#: po/rc.cpp:42 rc.cpp:42
|
||||
msgid "Show internal IP"
|
||||
msgstr "Показать внутренний IP"
|
||||
|
||||
#. i18n: file: configwindow.ui:247
|
||||
#. i18n: file: configwindow.ui:296
|
||||
#. i18n: ectx: attribute (title), widget (QWidget, tabAppearance)
|
||||
#: po/rc.cpp:36 rc.cpp:36
|
||||
#: po/rc.cpp:45 rc.cpp:45
|
||||
msgid "Appearance"
|
||||
msgstr "Внешний вид"
|
||||
|
||||
#. i18n: file: configwindow.ui:261
|
||||
#. i18n: file: configwindow.ui:310
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_font)
|
||||
#: po/rc.cpp:39 rc.cpp:39
|
||||
#: po/rc.cpp:48 rc.cpp:48
|
||||
msgid "Font"
|
||||
msgstr "Шрифт"
|
||||
|
||||
#. i18n: file: configwindow.ui:293
|
||||
#. i18n: file: configwindow.ui:342
|
||||
#. i18n: ectx: property (toolTip), widget (QFontComboBox, fontComboBox_font)
|
||||
#: po/rc.cpp:42 rc.cpp:42
|
||||
#: po/rc.cpp:51 rc.cpp:51
|
||||
msgid "Set font family"
|
||||
msgstr "Укажите шрифт"
|
||||
|
||||
#. i18n: file: configwindow.ui:310
|
||||
#. i18n: file: configwindow.ui:359
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_fontSize)
|
||||
#: po/rc.cpp:45 rc.cpp:45
|
||||
#: po/rc.cpp:54 rc.cpp:54
|
||||
msgid "Font size"
|
||||
msgstr "Размер шрифта"
|
||||
|
||||
#. i18n: file: configwindow.ui:342
|
||||
#. i18n: file: configwindow.ui:391
|
||||
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontSize)
|
||||
#: po/rc.cpp:48 rc.cpp:48
|
||||
#: po/rc.cpp:57 rc.cpp:57
|
||||
msgid "Set font size"
|
||||
msgstr "Укажите размер шрифта"
|
||||
|
||||
#. i18n: file: configwindow.ui:371
|
||||
#. i18n: file: configwindow.ui:420
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_fontColor)
|
||||
#: po/rc.cpp:51 rc.cpp:51
|
||||
#: po/rc.cpp:60 rc.cpp:60
|
||||
msgid "Font color"
|
||||
msgstr "Цвет шрифта"
|
||||
|
||||
#. i18n: file: configwindow.ui:403
|
||||
#. i18n: file: configwindow.ui:452
|
||||
#. i18n: ectx: property (toolTip), widget (KColorCombo, kcolorcombo_fontColor)
|
||||
#: po/rc.cpp:54 rc.cpp:54
|
||||
#: po/rc.cpp:63 rc.cpp:63
|
||||
msgid "Set font color"
|
||||
msgstr "Укажите цвет шрифта"
|
||||
|
||||
#. i18n: file: configwindow.ui:420
|
||||
#. i18n: file: configwindow.ui:469
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_fontWeight)
|
||||
#: po/rc.cpp:57 rc.cpp:57
|
||||
#: po/rc.cpp:66 rc.cpp:66
|
||||
msgid "Font weight"
|
||||
msgstr "Толщина шрифта"
|
||||
|
||||
#. i18n: file: configwindow.ui:452
|
||||
#. i18n: file: configwindow.ui:501
|
||||
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontWeight)
|
||||
#: po/rc.cpp:60 rc.cpp:60
|
||||
#: po/rc.cpp:69 rc.cpp:69
|
||||
msgid "Set font weight"
|
||||
msgstr "Укажите ширину шрифта"
|
||||
|
||||
#. i18n: file: configwindow.ui:484
|
||||
#. i18n: file: configwindow.ui:533
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_fontStyle)
|
||||
#: po/rc.cpp:63 rc.cpp:63
|
||||
#: po/rc.cpp:72 rc.cpp:72
|
||||
msgid "Font style"
|
||||
msgstr "Стиль шрифта"
|
||||
|
||||
#. i18n: file: configwindow.ui:516
|
||||
#. i18n: file: configwindow.ui:565
|
||||
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_fontStyle)
|
||||
#: po/rc.cpp:66 rc.cpp:66
|
||||
#: po/rc.cpp:75 rc.cpp:75
|
||||
msgid "Set font style"
|
||||
msgstr "Укажите стиль шрифта"
|
||||
|
||||
#. i18n: file: configwindow.ui:520
|
||||
#. i18n: file: configwindow.ui:569
|
||||
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_fontStyle)
|
||||
#: po/rc.cpp:69 rc.cpp:69
|
||||
#: po/rc.cpp:78 rc.cpp:78
|
||||
msgid "normal"
|
||||
msgstr "normal"
|
||||
|
||||
#. i18n: file: configwindow.ui:525
|
||||
#. i18n: file: configwindow.ui:574
|
||||
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_fontStyle)
|
||||
#: po/rc.cpp:72 rc.cpp:72
|
||||
#: po/rc.cpp:81 rc.cpp:81
|
||||
msgid "italic"
|
||||
msgstr "italic"
|
||||
|
||||
#. i18n: file: configwindow.ui:556
|
||||
#. i18n: file: configwindow.ui:605
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_activeIcon)
|
||||
#: po/rc.cpp:75 rc.cpp:75
|
||||
#: po/rc.cpp:84 rc.cpp:84
|
||||
msgid "Active icon"
|
||||
msgstr "Иконка активного подключения"
|
||||
|
||||
#. i18n: file: configwindow.ui:589
|
||||
#. i18n: file: configwindow.ui:638
|
||||
#. i18n: ectx: property (text), widget (QLabel, label_inactiveIcon)
|
||||
#: po/rc.cpp:81 rc.cpp:81
|
||||
#: po/rc.cpp:90 rc.cpp:90
|
||||
msgid "Inactive icon"
|
||||
msgstr "Иконка неактивного подключения"
|
||||
|
||||
#: po/rc.cpp:85 rc.cpp:85
|
||||
#: po/rc.cpp:94 rc.cpp:94
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Evgeniy Alekseev"
|
||||
|
||||
#: po/rc.cpp:86 rc.cpp:86
|
||||
#: po/rc.cpp:95 rc.cpp:95
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "esalexeev@gmail.com"
|
||||
|