16 Commits

Author SHA1 Message Date
3506bd46a9 release 1.0.6 2014-04-19 12:09:58 +04:00
727619bb85 fix rel 2014-04-14 01:23:30 +04:00
d59345c0e4 Release 1.0.5 2014-04-14 01:19:36 +04:00
4c1685164c updated translations 2014-04-12 18:58:36 +04:00
d515e4a51f added cppcheck to gui 2014-04-12 16:34:04 +04:00
2778f654ef refactoring of dataengine 2014-04-12 16:31:19 +04:00
92ec04cae1 refactoring of plasmoid
added function to start wifi menu
2014-04-12 15:27:14 +04:00
501151828d pkgbuild fixes 2014-04-10 12:14:10 +04:00
4a788aa05f edited gitignore 2014-04-10 11:39:54 +04:00
2cf91930f8 added pkgbuilds for different builds 2014-04-10 11:34:22 +04:00
4bb5d4925d F*CKING icu 2014-04-07 03:02:50 +04:00
10d44f786e removed plasmoid only =) 2014-04-07 02:32:07 +04:00
c69ff2165e removed cmakelists from root 2014-04-07 02:29:15 +04:00
4d455d93e8 added only plasmoid archive 2014-04-07 02:28:07 +04:00
046ae119a3 updated screenshots 2014-04-07 00:58:29 +04:00
b958d0b78b edited readme 2014-04-07 00:49:53 +04:00
36 changed files with 686 additions and 377 deletions

1
.gitignore vendored
View File

@ -14,6 +14,7 @@
# Source archive
*.tar.xz
*.tar.gz
# Build directory
build/

View File

@ -1,3 +1,11 @@
Ver.1.0.6:
* [gui] fix error checking
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
View 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.6
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=('dc0e2f22f658d0c0ff159c95eb4fa413')
_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
}

View File

@ -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
pkgver=1.0.6
pkgrel=1
pkgdesc="Qt4/Qt5 GUI for netctl. Provides a plasmoid for KDE4"
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=('dc0e2f22f658d0c0ff159c95eb4fa413')
# 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
View 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.6
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=('dc0e2f22f658d0c0ff159c95eb4fa413')
_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
}

View File

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

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 51 KiB

BIN
screenshots/gui_main.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
screenshots/gui_profile.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

BIN
screenshots/gui_wifi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

View File

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

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="1">
<libraries>
<library>qt</library>
</libraries>
</project>

View File

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

View File

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

View File

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

View File

@ -44,7 +44,7 @@ void EthernetWidget::clear()
ui->checkBox_skip->setCheckState(Qt::Unchecked);
ui->checkBox_8021x->setCheckState(Qt::Unchecked);
showWpa(ui->checkBox_8021x->checkState());
ui->lineEdit_wpaConfig->setText(QString("/etc/wpa_supplicant.conf"));
ui->lineEdit_wpaConfig->clear();
ui->comboBox_driver->setCurrentIndex(0);
ui->spinBox_timeoutCarrier->setValue(5);
ui->spinBox_timeoutWpa->setValue(15);

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="1">
<libraries>
<library>qt</library>
</libraries>
</project>

View File

@ -280,9 +280,8 @@ int WirelessWidget::isOk()
return 3;
// file wpa_supplicant doesn't exists
if (ui->comboBox_security->currentText() == QString("wpa-config"))
if (!ui->lineEdit_wpaConfig->text().isEmpty())
if (!QFile(ui->lineEdit_wpaConfig->text()).exists())
return 4;
if (!QFile(ui->lineEdit_wpaConfig->text()).exists())
return 4;
// essid is not set
if ((ui->comboBox_security->currentText() == QString("none")) ||
(ui->comboBox_security->currentText() == QString("wep")) ||

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="1">
<libraries>
<library>qt</library>
</libraries>
</project>

View File

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

View File

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

View File

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