27 Commits

Author SHA1 Message Date
d23429891e release 1.4.0 2015-01-12 19:30:49 +03:00
cf12b3627e update ChangeLog
update CmakeLists
update PKGBUILDs
fix GUI building
2015-01-12 01:14:40 +03:00
582459d174 fix #24
update gitignore
2015-01-11 00:38:47 +03:00
08e7390f6c Merge branch 'master' of github.com:arcan1s/netctl-gui 2015-01-10 00:36:26 +03:00
c8eae4b222 fix painting
update translations
fix PKGBUILD
2015-01-10 00:35:52 +03:00
54583eae6e update interface painting 2015-01-09 02:40:24 +03:00
634b4c3b41 try to paint more pretty interface 2015-01-08 02:00:59 +03:00
54c5e7958a kf5 update
* implement resizing
* implement debug
* implement notifications
* update interface
* correct work with helper
2015-01-07 07:03:41 +03:00
6ed45fa7a5 change in updates 2015-01-06 00:46:28 +03:00
73ba838685 + add de page
* rewrite de configuration to use qsettings
- remove cppcheck
+ add notifyrc
2015-01-05 00:29:52 +03:00
924beacc23 implement actions 2015-01-04 02:01:07 +03:00
a830fc9372 Merge branch 'kf5' 2015-01-03 13:58:17 +03:00
4c7459e833 Merge branch 'kf5' of github.com:arcan1s/netctl-gui into kf5 2015-01-03 13:56:33 +03:00
00a35d75d2 add ability to build kde4 and kf5 packages 2015-01-03 13:56:00 +03:00
3e92ec2aae Update CMakeLists.txt
bump to 1.4.0
2015-01-03 13:23:16 +03:00
3ac0484f21 some test with actions 2014-12-31 08:09:53 +03:00
cbac07b29e move method from original one 2014-12-30 14:39:25 +03:00
7972f2d6d3 some configuration interface changes 2014-12-29 23:37:21 +03:00
afed94745a fix plugin 2014-12-29 20:56:35 +03:00
c8f260c8e2 rename applet to *plasma* 2014-12-29 08:35:23 +03:00
edb386d24e implement binary module 2014-12-28 17:42:08 +03:00
f188dea8a7 add wdiget.qml 2014-12-27 12:24:05 +03:00
6fb7da4b5b add appearance.qml 2014-12-27 03:50:31 +03:00
a35e9b0164 first work on plasmoid 2014-12-26 08:22:26 +03:00
4bc428f8b5 add workaround to #23
(fix?)
2014-12-05 03:52:27 +03:00
030dec5e14 end porting of DE to KF5 2014-10-21 16:26:35 +04:00
0898a99878 updte dataengine skel 2014-10-21 13:06:57 +04:00
68 changed files with 5104 additions and 2337 deletions

4
.gitignore vendored
View File

@ -27,3 +27,7 @@ usr/
# temporary bckps
*~
# kdevelop files
.kdev4
*.kdev4

View File

@ -1,3 +1,20 @@
Ver.1.4.0
---------
* all
* change settings format from shell-like to ini (#24)
* dataengine
+ create package for KF5
* change NETCTLGUI_DEBUG=yes to DEBUG=yes
* update url
* gui:
+ add workarounds to #22 and #23
* plasmoid:
+ create package and plugin for KF5
* change NETCTLGUI_DEBUG=yes to DEBUG=yes
* update url
***
Ver.1.3.3
---------
* all
@ -7,7 +24,6 @@ Ver.1.3.3
***
Ver.1.3.2
---------
* all

View File

@ -4,7 +4,7 @@ Netctl GUI
Information
-----------
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.
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 KDE4/KF5.
**NOTE** [LOOKING FOR TRANSLATORS!](https://github.com/arcan1s/netctl-gui/issues/3)
@ -15,8 +15,8 @@ It is recommended to use graphical interface for configuration. Configuration fi
* `$HOME/.config/netctl-gui.conf` - GUI/helper user configuration
* `/etc/netctl-gui.conf` - helper system-wide configuration
* `$KDEHOME/share/config/netctl.conf` - DataEngine user configuration
* `$KDESYSTEM/share/config/netctl.conf` - DataEngine system-wide configuration
* `$HOME/.config/plasma-dataengine-netctl.conf` - DataEngine user configuration
* `/etc/xdg/plasma-dataengine-netctl.conf` - DataEngine system-wide configuration
Instruction
===========
@ -30,7 +30,8 @@ Dependencies
Optional dependencies
---------------------
* kdebase-workspace (widget)
* kdebase-workspace (KDE4 widget)
* plasma-framework (KF5 widget)
* sudo (sudo support)
* wpa_supplicant (WiFi support)
@ -68,6 +69,7 @@ Installation
* `-DDBUS_SYSTEMCONF_PATH=/etc/dbus-1/system.d/` - path to dbus system configuration files
* `-DSYSTEMD_SERVICE_PATH=lib/systemd/system` - path to systemd services
* `-DUSE_CAPABILITIES:BOOL=0` - do not use setcap to get privileges to the helper
* `-DBUILD_KDE4:BOOL=1` - build KDE4 plasmoid instead of KF5 one
* `-DUSE_QT5:BOOL=0` - use Qt4 instead of Qt5 for GUI
Additional information

View File

@ -2,22 +2,21 @@
pkgbase=netctl-gui
pkgname=('libnetctlgui' 'netctlgui-helper' 'netctl-gui'
'libnetctlgui-qt4' 'netctlgui-helper-qt4' 'netctl-gui-qt4'
'kdeplasma-applets-netctl-gui')
pkgver=1.3.3
pkgrel=2
'plasma5-applet-netctl-gui')
pkgver=1.4.0
pkgrel=1
pkgdesc="Qt4/Qt5 GUI for netctl. Also provides a widget for KDE"
arch=('i686' 'x86_64')
url="http://arcanis.name/projects/netctl-gui"
license=('GPL3')
makedepends=('automoc4' 'cmake' 'kdelibs' 'qt5-base' 'qt5-tools')
makedepends=('automoc4' 'cmake' 'extra-cmake-modules' 'plasma-framework' 'qt5-tools')
source=("https://github.com/arcan1s/netctl-gui/releases/download/V.${pkgver}/${pkgbase}-${pkgver}-src.tar.xz")
md5sums=('9ba672ef33e9962ccc04fc4de75fad68')
md5sums=('172fff4b59c15c991b016db35971eca1')
prepare() {
rm -rf "${srcdir}/build-"{plasmoid,qt4,qt5}
mkdir "${srcdir}/build-"{plasmoid,qt4,qt5}
rm -rf "${srcdir}/build-"{plasmoid,qt5}
mkdir "${srcdir}/build-"{plasmoid,qt5}
}
@ -25,22 +24,13 @@ build() {
cd "${srcdir}/build-plasmoid"
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DKDE_INSTALL_USE_QT_SYS_PATHS=ON \
-DBUILD_GUI:BOOL=0 \
-DBUILD_LIBRARY:BOOL=0 \
-DBUILD_HELPER:BOOL=0 \
"../${pkgbase}"
make
cd "${srcdir}/build-qt4"
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_DATAENGINE:BOOL=0 \
-DBUILD_PLASMOID:BOOL=0 \
-DUSE_CAPABILITIES:BOOL=0 \
-DUSE_QT5:BOOL=0 \
"../${pkgbase}"
make
cd "${srcdir}/build-qt5"
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
@ -52,15 +42,13 @@ build() {
}
package_kdeplasma-applets-netctl-gui() {
pkgdesc="A plasmoid, which interacts with netctl. A part of netctl-gui"
depends=('netctl' 'kdebase-workspace')
package_plasma5-applet-netctl-gui() {
pkgdesc="A KF5 plasmoid, which interacts with netctl. A part of netctl-gui"
depends=('netctl' 'plasma-framework')
optdepends=('netctlgui-helper: DBus helper daemon'
'netctlgui-helper-qt4: DBus helper daemon'
'netctl-gui: graphical front-end'
'netctl-gui-qt4: graphical front-end'
'sudo: sudo support')
install="kdeplasma-applets-netctl-gui.install"
install="plasma-netctl-gui.install"
cd "${srcdir}/build-plasmoid"
make DESTDIR="${pkgdir}" install
@ -98,7 +86,7 @@ package_netctlgui-helper() {
package_netctl-gui() {
pkgdesc="Qt5 graphical front-end for netctl. A part of netctl-gui"
depends=('libnetctlgui' 'xdg-utils')
optdepends=('kdeplasma-applets-netctl-gui: KDE widget'
optdepends=('plasma-netctl-gui: KF5 widget'
'netctlgui-helper: DBus helper daemon')
provides=('netctl-gui-qt4')
conflicts=('netctl-gui-qt4')
@ -109,48 +97,3 @@ package_netctl-gui() {
cd "${srcdir}/build-qt5/resources"
make DESTDIR="${pkgdir}" install
}
package_libnetctlgui-qt4() {
pkgdesc="Qt4 library which interacts with netctl. A part of netctl-gui"
depends=('netctl' 'qt4')
optdepends=('netctlgui-helper-qt4: DBus helper daemon'
'sudo: sudo support'
'wpa_supplicant: wifi support')
provides=('libnetctlgui')
conflicts=('libnetctlgui')
install=""
cd "${srcdir}/build-qt4/netctlgui"
make DESTDIR="${pkgdir}" install
}
package_netctlgui-helper-qt4() {
pkgdesc="Helper daemon for netctl-gui. A part of netctl-gui"
depends=('libnetctlgui-qt4')
provides=('netctlgui-helper')
conflicts=('netctlgui-helper')
backup=('etc/netctl-gui.conf'
'etc/dbus-1/system.d/org.netctlgui.helper.conf')
install="netctlgui-helper.install"
cd "${srcdir}/build-qt4/helper"
make DESTDIR="${pkgdir}" install
}
package_netctl-gui-qt4() {
pkgdesc="Qt4 graphical front-end for netctl. A part of netctl-gui"
depends=('libnetctlgui-qt4')
optdepends=('kdeplasma-applets-netctl-gui: KDE widget'
'netctlgui-helper-qt4: DBus helper daemon')
provides=('netctl-gui')
conflicts=('netctl-gui')
install="netctl-gui.install"
cd "${srcdir}/build-qt4/gui"
make DESTDIR="${pkgdir}" install
cd "${srcdir}/build-qt4/resources"
make DESTDIR="${pkgdir}" install
}

101
arch/PKGBUILD-qt4 Normal file
View File

@ -0,0 +1,101 @@
# Maintainer: Evgeniy "arcanis" Alexeev <arcanis.arch at gmail dot com>
pkgbase=netctl-gui-qt4
pkgname=('libnetctlgui-qt4' 'netctlgui-helper-qt4' 'netctl-gui-qt4'
'kdeplasma-applets-netctl-gui')
pkgver=1.4.0
pkgrel=1
pkgdesc="Qt4 GUI for netctl. Also provides a widget for KDE4"
arch=('i686' 'x86_64')
url="http://arcanis.name/projects/netctl-gui"
license=('GPL3')
makedepends=('automoc4' 'cmake' 'kdelibs')
source=("https://github.com/arcan1s/netctl-gui/releases/download/V.${pkgver}/${pkgbase}-${pkgver}-src.tar.xz")
md5sums=('172fff4b59c15c991b016db35971eca1')
prepare() {
rm -rf "${srcdir}/build-"{plasmoid,qt4}
mkdir "${srcdir}/build-"{plasmoid,qt4}
}
build() {
cd "${srcdir}/build-plasmoid"
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_GUI:BOOL=0 \
-DBUILD_LIBRARY:BOOL=0 \
-DBUILD_HELPER:BOOL=0 \
-DBUILD_KDE4:BOOL=1 \
"../${pkgbase}"
make
cd "${srcdir}/build-qt4"
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_DATAENGINE:BOOL=0 \
-DBUILD_PLASMOID:BOOL=0 \
-DUSE_CAPABILITIES:BOOL=0 \
-DUSE_QT5:BOOL=0 \
"../${pkgbase}"
make
}
package_kdeplasma-applets-netctl-gui() {
pkgdesc="A KDE4 plasmoid, which interacts with netctl. A part of netctl-gui"
depends=('netctl' 'kdebase-workspace')
optdepends=('netctlgui-helper-qt4: DBus helper daemon'
'netctl-gui-qt4: graphical front-end'
'sudo: sudo support')
install="kdeplasma-applets-netctl-gui.install"
cd "${srcdir}/build-plasmoid"
make DESTDIR="${pkgdir}" install
}
package_libnetctlgui-qt4() {
pkgdesc="Qt4 library which interacts with netctl. A part of netctl-gui"
depends=('netctl' 'qt4')
optdepends=('netctlgui-helper-qt4: DBus helper daemon'
'sudo: sudo support'
'wpa_supplicant: wifi support')
provides=('libnetctlgui')
conflicts=('libnetctlgui')
install=""
cd "${srcdir}/build-qt4/netctlgui"
make DESTDIR="${pkgdir}" install
}
package_netctlgui-helper-qt4() {
pkgdesc="Helper daemon for netctl-gui. A part of netctl-gui"
depends=('libnetctlgui-qt4')
provides=('netctlgui-helper')
conflicts=('netctlgui-helper')
backup=('etc/netctl-gui.conf'
'etc/dbus-1/system.d/org.netctlgui.helper.conf')
install="netctlgui-helper.install"
cd "${srcdir}/build-qt4/helper"
make DESTDIR="${pkgdir}" install
}
package_netctl-gui-qt4() {
pkgdesc="Qt4 graphical front-end for netctl. A part of netctl-gui"
depends=('libnetctlgui-qt4')
optdepends=('kdeplasma-applets-netctl-gui: KDE widget'
'netctlgui-helper-qt4: DBus helper daemon')
provides=('netctl-gui')
conflicts=('netctl-gui')
install="netctl-gui.install"
cd "${srcdir}/build-qt4/gui"
make DESTDIR="${pkgdir}" install
cd "${srcdir}/build-qt4/resources"
make DESTDIR="${pkgdir}" install
}

View File

@ -0,0 +1,14 @@
post_install() {
cat << EOF
Update plasmoids...
EOF
kbuildsycoca5 > /dev/null 2>&1
}
post_upgrade() {
post_install "$1"
}
post_remove() {
post_install "$1"
}

View File

@ -20,8 +20,8 @@ ln -sf "../${ARCHIVE}-${VERSION}-src.tar.xz" arch
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}'/" arch/PKGBUILD
sed -i "s/pkgver=[0-9.]*/pkgver=${VERSION}/" arch/PKGBUILD
sed -i "/md5sums=('[0-9A-Fa-f]*/s/[^'][^)]*/md5sums=('${MD5SUMS}'/" arch/PKGBUILD{,-qt4}
sed -i "s/pkgver=[0-9.]*/pkgver=${VERSION}/" arch/PKGBUILD{,-qt4}
# clear
find . -type f -name '*src.tar.xz' -not -name "*${VERSION}-src.tar.xz" -exec rm -rf {} \;
find arch -type l -xtype l -exec rm -rf {} \;

View File

@ -1,4 +1,4 @@
cmake_minimum_required (VERSION 2.8)
cmake_minimum_required (VERSION 2.8.12)
cmake_policy (SET CMP0003 OLD)
cmake_policy (SET CMP0002 OLD)
@ -10,8 +10,8 @@ set (PROJECT_AUTHOR "Evgeniy Alekseev")
set (PROJECT_CONTACT "esalexeev@gmail.com")
set (PROJECT_LICENSE "GPLv3")
set (PROJECT_VERSION_MAJOR 1)
set (PROJECT_VERSION_MINOR 3)
set (PROJECT_VERSION_PATCH 3)
set (PROJECT_VERSION_MINOR 4)
set (PROJECT_VERSION_PATCH 0)
set (PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
string (TIMESTAMP CURRENT_DATE "%Y-%m-%d %H:%M" UTC)
string (TIMESTAMP CURRENT_YEAR "%Y")
@ -29,21 +29,22 @@ option (BUILD_HELPER "Build helper" ON)
option (BUILD_LIBRARY "Build library" ON)
option (BUILD_DATAENGINE "Build DataEngine" ON)
option (BUILD_PLASMOID "Build plasmoid" ON)
option (BUILD_KDE4 "Build on KDE4" OFF)
if (BUILD_GUI OR BUILD_HELPER)
set (BUILD_LIBRARY ON)
set (BUILD_LIBRARY ON)
endif ()
if (BUILD_PLASMOID)
set (BUILD_DATAENGINE ON)
set (BUILD_DATAENGINE ON)
endif ()
# documentation
option (BUILD_DOCS "Build Doxygen documentation" OFF)
if (BUILD_DOCS)
set (BUILD_LIBRARY ON)
set (BUILD_LIBRARY ON)
endif ()
# test
option (BUILD_TEST "Build unit tests" OFF)
if (BUILD_TEST)
set (BUILD_LIBRARY ON)
set (BUILD_LIBRARY ON)
endif ()
# FIXME: dbus path
set (DBUS_SYSTEMCONF_PATH "/etc/dbus-1/system.d/" CACHE STRING "Path to dbus system configuration files")
@ -51,11 +52,11 @@ set (SYSTEMD_SERVICE_PATH "lib/systemd/system" CACHE STRING "Path to systemd ser
# flags
if (CMAKE_COMPILER_IS_GNUCXX)
set (CMAKE_CXX_FLAGS "-Wall -std=c++11")
set (CMAKE_CXX_FLAGS_DEBUG "-g -O0")
set (CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
set (CMAKE_CXX_FLAGS "-Wall -std=c++11")
set (CMAKE_CXX_FLAGS_DEBUG "-g -O0")
set (CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
else ()
message (STATUS "Unknown compiler")
message (STATUS "Unknown compiler")
endif ()
configure_file (${CMAKE_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h)
@ -68,21 +69,25 @@ add_subdirectory (${PROJECT_RESOURCE_DIR})
# components
if (BUILD_LIBRARY)
add_subdirectory (${PROJECT_LIBRARY})
add_subdirectory (${PROJECT_LIBRARY})
endif ()
if (BUILD_HELPER)
add_subdirectory (helper)
add_subdirectory (helper)
endif ()
if (BUILD_TEST)
enable_testing ()
add_subdirectory (test)
enable_testing ()
add_subdirectory (test)
endif ()
if (BUILD_GUI)
add_subdirectory (gui)
add_subdirectory (gui)
endif ()
if (BUILD_DATAENGINE)
add_subdirectory (dataengine)
add_subdirectory (dataengine)
endif ()
if (BUILD_PLASMOID)
add_subdirectory (plasmoid)
if (BUILD_KDE4)
add_subdirectory (plasmoid-kde4)
else ()
add_subdirectory (plasmoid-kf5)
endif (BUILD_KDE4)
endif ()

View File

@ -3,16 +3,38 @@ set (SUBPROJECT plasma_engine_netctl)
message (STATUS "Subproject ${SUBPROJECT}")
# find required libaries
find_package (KDE4 REQUIRED)
include (KDE4Defaults)
if (BUILD_KDE4)
find_package (KDE4 REQUIRED)
include (KDE4Defaults)
add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
set (KDE_INCLUDE ${KDE4_INCLUDES})
else ()
find_package (Qt5 REQUIRED COMPONENTS Widgets Network)
find_package (ECM 0.0.11 REQUIRED NO_MODULE)
set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
find_package(KF5 REQUIRED COMPONENTS Plasma Service)
include (KDEInstallDirs)
include (KDECMakeSettings)
include (KDECompilerSettings)
add_definitions (${Qt5Core_DEFINITIONS} ${Qt5Network_DEFINITIONS})
set (Qt_INCLUDE ${Qt5Core_INCLUDE_DIRS}
${Qt5Network_INCLUDE_DIRS})
set (KDE_INCLUDE ${ConfigCore_INCLUDE_DIR}
${CoreAddons_INCLUDE_DIR}
${Plasma_INCLUDE_DIR}
${Service_INCLUDE_DIR})
endif ()
add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
include_directories (${CMAKE_SOURCE_DIR}
${CMAKE_BINARY_DIR}
${KDE4_INCLUDES}
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_BINARY_DIR}/../
${PROJECT_TRDPARTY_DIR})
${PROJECT_TRDPARTY_DIR}
${Qt_INCLUDE}
${KDE_INCLUDE})
set (PLUGIN_NAME ${SUBPROJECT})
file (GLOB SUBPROJECT_DESKTOP_IN *.desktop)
@ -25,11 +47,22 @@ file (GLOB SUBPROJECT_CONF *.conf)
configure_file (${SUBPROJECT_DESKTOP_IN} ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP})
# make
qt4_wrap_cpp (TASK_MOC_SOURCE ${TASK_HEADER})
kde4_add_plugin (${PLUGIN_NAME} ${SUBPROJECT_SOURCE} ${TASK_MOC_SOURCE})
target_link_libraries (${PLUGIN_NAME} ${KDE4_KDECORE_LIBS} ${KDE4_PLASMA_LIBS} ${QT_QTNETWORK_LIBRARY})
if (BUILD_KDE4)
qt4_wrap_cpp (TASK_MOC_SOURCE ${TASK_HEADER})
kde4_add_plugin (${PLUGIN_NAME} ${SUBPROJECT_SOURCE} ${TASK_MOC_SOURCE})
target_link_libraries (${PLUGIN_NAME} ${KDE4_KDECORE_LIBS} ${KDE4_PLASMA_LIBS} ${QT_QTNETWORK_LIBRARY})
else ()
qt5_wrap_cpp (TASK_MOC_SOURCE ${TASK_HEADER})
add_library (${PLUGIN_NAME} MODULE ${SUBPROJECT_SOURCE} ${TASK_MOC_SOURCE})
target_link_libraries (${PLUGIN_NAME} ${Plasma_LIBRARIES} ${Qt5Network_LIBRARIES})
kcoreaddons_desktop_to_json (${PLUGIN_NAME} ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP})
endif ()
# install
install (TARGETS ${PLUGIN_NAME} DESTINATION ${PLUGIN_INSTALL_DIR})
if (BUILD_KDE4)
install (TARGETS ${PLUGIN_NAME} DESTINATION ${PLUGIN_INSTALL_DIR})
else ()
install (TARGETS ${PLUGIN_NAME} DESTINATION ${PLUGIN_INSTALL_DIR}/plasma/dataengine)
endif ()
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP} DESTINATION ${SERVICES_INSTALL_DIR})
install (FILES ${SUBPROJECT_CONF} DESTINATION ${CONFIG_INSTALL_DIR})

View File

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

View File

@ -1,17 +0,0 @@
# Configuration file for netctl data engine
## Commands
# command
NETCTLCMD=/usr/bin/netctl
# netctl-auto command
NETCTLAUTOCMD=/usr/bin/netctl-auto
## External IP
# external IPv4 check command
EXTIP4CMD=curl ip4.telize.com
# 'true' - check external IPv4
EXTIP4=false
# external IPv6 check command
EXTIP6CMD=curl ip6.telize.com
# 'true' - check external IPv6
EXTIP6=false

View File

@ -17,18 +17,26 @@
#include "netctl.h"
#include <KGlobal>
#include <KStandardDirs>
#include <Plasma/DataContainer>
#include <QDebug>
#include <QFile>
#include <QNetworkInterface>
#include <QProcessEnvironment>
#include <QSettings>
#include <QTextCodec>
#include <pdebug/pdebug.h>
#include <task/taskadds.h>
#include <version.h>
// KF5-KDE4 compability
#ifdef BUILD_KDE4
#include <KGlobal>
#include <KStandardDirs>
#else
#include <QStandardPaths>
#endif /* BUILD_KDE4 */
Netctl::Netctl(QObject *parent, const QVariantList &args)
@ -38,7 +46,7 @@ Netctl::Netctl(QObject *parent, const QVariantList &args)
// debug
QProcessEnvironment environment = QProcessEnvironment::systemEnvironment();
QString debugEnv = environment.value(QString("NETCTLGUI_DEBUG"), QString("no"));
QString debugEnv = environment.value(QString("DEBUG"), QString("no"));
if (debugEnv == QString("yes"))
debug = true;
else
@ -80,70 +88,29 @@ void Netctl::readConfiguration()
{
if (debug) qDebug() << PDEBUG;
// default configuration
QMap<QString, QString> rawConfig;
rawConfig[QString("EXTIP4")] = QString("false");
rawConfig[QString("EXTIP4CMD")] = QString("curl ip4.telize.com");
rawConfig[QString("EXTIP6")] = QString("false");
rawConfig[QString("EXTIP6CMD")] = QString("curl ip6.telize.com");
rawConfig[QString("NETCTLCMD")] = QString("/usr/bin/netctl");
rawConfig[QString("NETCTLAUTOCMD")] = QString("/usr/bin/netctl-auto");
QString fileName = KGlobal::dirs()->findResource("config", "netctl.conf");
QString fileName;
#ifdef BUILD_KDE4
fileName = KGlobal::dirs()->findResource("config", "plasma-dataengine-netctl.conf");
#else
fileName = QStandardPaths::locate(QStandardPaths::ConfigLocation, QString("plasma-dataengine-netctl.conf"));
#endif /* BUILD_KDE4 */
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << fileName;
QFile configFile(fileName);
if (!configFile.open(QIODevice::ReadOnly)) {
configuration = updateConfiguration(rawConfig);
return;
}
QString fileStr;
QStringList value;
while (true) {
fileStr = QString(configFile.readLine()).trimmed();
if ((fileStr.isEmpty()) && (!configFile.atEnd())) continue;
if ((fileStr[0] == QChar('#')) && (!configFile.atEnd())) continue;
if ((fileStr[0] == QChar(';')) && (!configFile.atEnd())) 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 (configFile.atEnd()) break;
}
configFile.close();
configuration = updateConfiguration(rawConfig);
QSettings settings(fileName, QSettings::IniFormat);
settings.beginGroup(QString("Netctl commands"));
configuration[QString("NETCTLCMD")] = settings.value(QString("NETCTLCMD"), QString("/usr/bin/netctl")).toString();
configuration[QString("NETCTLAUTOCMD")] = settings.value(QString("NETCTLAUTOCMD"), QString("/usr/bin/netctl-auto")).toString();
settings.endGroup();
settings.beginGroup(QString("External IP"));
configuration[QString("EXTIP4")] = settings.value(QString("EXTIP4"), QString("false")).toString();
configuration[QString("EXTIP4CMD")] = settings.value(QString("EXTIP4CMD"), QString("curl ip4.telize.com")).toString();
configuration[QString("EXTIP6")] = settings.value(QString("EXTIP6"), QString("false")).toString();
configuration[QString("EXTIP6CMD")] = settings.value(QString("EXTIP6CMD"), QString("curl ip6.telize.com")).toString();
settings.endGroup();
return;
}
QMap<QString, QString> Netctl::updateConfiguration(const QMap<QString, QString> rawConfig)
{
if (debug) qDebug() << PDEBUG;
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("EXTIP4CMD")) &&
(key != QString("EXTIP6CMD")) &&
(key != QString("NETCTLCMD")) &&
(key != QString("NETCTLAUTOCMD")))
value.remove(QChar(' '));
config[key] = value;
}
for (int i=0; i<config.keys().count(); i++)
if (debug) qDebug() << PDEBUG << ":" << config.keys()[i] + QString("=") + config[config.keys()[i]];
return config;
}
bool Netctl::sourceRequestEvent(const QString &name)
{
if (debug) qDebug() << PDEBUG;
@ -388,6 +355,10 @@ bool Netctl::updateSourceEvent(const QString &source)
}
#ifdef BUILD_KDE4
K_EXPORT_PLASMA_DATAENGINE(netctl, Netctl)
#else
K_EXPORT_PLASMA_DATAENGINE_WITH_JSON(netctl, Netctl, "plasma-dataengine-netctl.json")
#endif /* BUILD_KDE4 */
#include "netctl.moc"

View File

@ -54,7 +54,6 @@ private:
bool debug;
QMap<QString, QString> configuration;
void readConfiguration();
QMap<QString, QString> updateConfiguration(const QMap<QString, QString> rawConfig);
};

View File

@ -0,0 +1,9 @@
[Netctl commands]
NETCTLCMD=/usr/bin/netctl
NETCTLAUTOCMD=/usr/bin/netctl-auto
[External IP]
EXTIP4CMD=curl ip4.telize.com
EXTIP4=false
EXTIP6CMD=curl ip6.telize.com
EXTIP6=false

View File

@ -10,11 +10,11 @@ X-KDE-ServiceTypes=Plasma/DataEngine
X-KDE-Library=plasma_engine_netctl
X-Plasma-EngineName=netctl
X-KDE-PluginInfo-Author=Evgeniy Alekseev aka arcanis
X-KDE-PluginInfo-Author=Evgeniy Alekseev
X-KDE-PluginInfo-Email=esalexeev@gmail.com
X-KDE-PluginInfo-Name=netctl
X-KDE-PluginInfo-Version=@PROJECT_VERSION@
X-KDE-PluginInfo-Website=http://arcan1s.github.io/projects/netctlplasmoid
X-KDE-PluginInfo-Website=http://arcanis.name/projects/netctl-gui/
X-KDE-PluginInfo-Category=Network
X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=GPLv3

View File

@ -1,12 +1,12 @@
# build pages
file (GLOB SUBPROJECT_DOCS_IN *.html)
file (GLOB SUBPROJECT_IMGS *.png)
foreach (DOC_IN ${SUBPROJECT_DOCS_IN})
file (RELATIVE_PATH ONE_DOC ${CMAKE_SOURCE_DIR} ${DOC_IN})
configure_file (${DOC_IN} ${CMAKE_CURRENT_BINARY_DIR}/${ONE_DOC})
set (SUBPROJECT_DOCS ${SUBPROJECT_DOCS} ${CMAKE_CURRENT_BINARY_DIR}/${ONE_DOC})
endforeach ()
foreach (DOC_IN ${SUBPROJECT_DOCS_IN})
file (RELATIVE_PATH ONE_DOC ${CMAKE_SOURCE_DIR} ${DOC_IN})
configure_file (${DOC_IN} ${CMAKE_CURRENT_BINARY_DIR}/${ONE_DOC})
set (SUBPROJECT_DOCS ${SUBPROJECT_DOCS} ${CMAKE_CURRENT_BINARY_DIR}/${ONE_DOC})
endforeach ()
install (FILES ${SUBPROJECT_DOCS} DESTINATION share/doc/${PROJECT_NAME})
install (FILES ${SUBPROJECT_IMGS} DESTINATION share/doc/${PROJECT_NAME})

View File

@ -18,40 +18,40 @@ include_directories (${CMAKE_CURRENT_SOURCE_DIR}/../../${PROJECT_LIBRARY}/includ
link_directories (${PROJECT_LIBRARY}/src/lib)
if (USE_QT5)
find_package(Qt5 COMPONENTS Core DBus Widgets LinguistTools REQUIRED)
add_definitions(${Qt5Core_DEFINITIONS} ${Qt5DBus_DEFINITIONS} ${Qt5Widgets_DEFINITIONS} ${Qt5LinguistTools_DEFINITIONS})
include_directories (${Qt5Core_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS})
set (QT_NEEDED_LIBS ${Qt5Core_LIBRARIES} ${Qt5DBus_LIBRARIES} ${Qt5Widgets_LIBRARIES})
qt5_wrap_cpp (MOC_SOURCES ${HEADERS})
qt5_wrap_ui (UI_HEADERS ${FORMS})
qt5_add_resources (QRC_SOURCES ${RESOURCES})
find_package (Qt5 COMPONENTS Core DBus Widgets LinguistTools REQUIRED)
add_definitions (${Qt5Core_DEFINITIONS} ${Qt5DBus_DEFINITIONS} ${Qt5Widgets_DEFINITIONS} ${Qt5LinguistTools_DEFINITIONS})
include_directories (${Qt5Core_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS})
set (QT_NEEDED_LIBS ${Qt5Core_LIBRARIES} ${Qt5DBus_LIBRARIES} ${Qt5Widgets_LIBRARIES})
qt5_wrap_cpp (MOC_SOURCES ${HEADERS})
qt5_wrap_ui (UI_HEADERS ${FORMS})
qt5_add_resources (QRC_SOURCES ${RESOURCES})
foreach (LANGUAGE ${LANGUAGES})
set (TS ${LANGUAGE})
string (REPLACE ".ts" ".qm" QM ${TS})
set (TRANSLATIONS ${TRANSLATIONS} ${TS})
set (TRANSLATIONS_BINARY ${TRANSLATIONS_BINARY} ${QM})
add_custom_command (OUTPUT ${QM} COMMAND ${Qt5_LRELEASE_EXECUTABLE} ${TS} MAIN_DEPENDENCY ${TS})
endforeach ()
add_custom_target (translations COMMAND ${Qt5_LUPDATE_EXECUTABLE} ${HEADERS} ${SOURCES} ${UI_HEADERS} -ts ${TRANSLATIONS})
add_custom_command (TARGET translations COMMAND ${Qt5_LRELEASE_EXECUTABLE} ${TRANSLATIONS})
foreach (LANGUAGE ${LANGUAGES})
set (TS ${LANGUAGE})
string (REPLACE ".ts" ".qm" QM ${TS})
set (TRANSLATIONS ${TRANSLATIONS} ${TS})
set (TRANSLATIONS_BINARY ${TRANSLATIONS_BINARY} ${QM})
add_custom_command (OUTPUT ${QM} COMMAND ${Qt5_LRELEASE_EXECUTABLE} ${TS} MAIN_DEPENDENCY ${TS})
endforeach ()
add_custom_target (translations COMMAND ${Qt5_LUPDATE_EXECUTABLE} ${HEADERS} ${SOURCES} ${UI_HEADERS} -ts ${TRANSLATIONS})
add_custom_command (TARGET translations COMMAND ${Qt5_LRELEASE_EXECUTABLE} ${TRANSLATIONS})
else ()
find_package (Qt4 COMPONENTS QtCore QtDBus QtGui REQUIRED)
include (${QT_USE_FILE})
set (QT_NEEDED_LIBS ${QT_QTCORE_LIBRARY} ${QT_QTDBUS_LIBRARY} ${QT_QTGUI_LIBRARY})
qt4_wrap_cpp (MOC_SOURCES ${HEADERS})
qt4_wrap_ui (UI_HEADERS ${FORMS})
qt4_add_resources (QRC_SOURCES ${RESOURCES})
find_package (Qt4 COMPONENTS QtCore QtDBus QtGui REQUIRED)
include (${QT_USE_FILE})
set (QT_NEEDED_LIBS ${QT_QTCORE_LIBRARY} ${QT_QTDBUS_LIBRARY} ${QT_QTGUI_LIBRARY})
qt4_wrap_cpp (MOC_SOURCES ${HEADERS})
qt4_wrap_ui (UI_HEADERS ${FORMS})
qt4_add_resources (QRC_SOURCES ${RESOURCES})
foreach (LANGUAGE ${LANGUAGES})
set (TS ${LANGUAGE})
string (REPLACE ".ts" ".qm" QM ${TS})
set (TRANSLATIONS ${TRANSLATIONS} ${TS})
set (TRANSLATIONS_BINARY ${TRANSLATIONS_BINARY} ${QM})
add_custom_command (OUTPUT ${QM} COMMAND ${QT_LRELEASE_EXECUTABLE} ${TS} MAIN_DEPENDENCY ${TS})
endforeach ()
add_custom_target (translations COMMAND ${QT_LUPDATE_EXECUTABLE} ${HEADERS} ${SOURCES} ${UI_HEADERS} -ts ${TRANSLATIONS})
add_custom_command (TARGET translations COMMAND ${QT_LRELEASE_EXECUTABLE} ${TRANSLATIONS})
foreach (LANGUAGE ${LANGUAGES})
set (TS ${LANGUAGE})
string (REPLACE ".ts" ".qm" QM ${TS})
set (TRANSLATIONS ${TRANSLATIONS} ${TS})
set (TRANSLATIONS_BINARY ${TRANSLATIONS_BINARY} ${QM})
add_custom_command (OUTPUT ${QM} COMMAND ${QT_LRELEASE_EXECUTABLE} ${TS} MAIN_DEPENDENCY ${TS})
endforeach ()
add_custom_target (translations COMMAND ${QT_LUPDATE_EXECUTABLE} ${HEADERS} ${SOURCES} ${UI_HEADERS} -ts ${TRANSLATIONS})
add_custom_command (TARGET translations COMMAND ${QT_LRELEASE_EXECUTABLE} ${TRANSLATIONS})
endif()
add_executable (${SUBPROJECT} ${UI_HEADERS} ${HEADERS} ${SOURCES} ${MOC_SOURCES} ${QRC_SOURCES} ${TRANSLATIONS})

View File

@ -30,11 +30,12 @@ QList<netctlProfileInfo> parseOutputNetctl(const QList<QVariant> raw,
if (debug) qDebug() << PDEBUG;
QList<netctlProfileInfo> profileInfo;
if (raw.size() == 0)
return profileInfo;
for (int i=0; i<raw[0].toStringList().count(); i++) {
if (raw.size() == 0) return profileInfo;
QStringList list = raw[0].toStringList();
for (int i=0; i<list.count(); i++) {
QStringList info = list[i].split(QChar('|'));
if (info.count() != 4) continue;
netctlProfileInfo profile;
QStringList info = raw[0].toStringList()[i].split(QChar('|'));
profile.name = info[0];
profile.description = info[1];
profile.active = info[2].toInt();
@ -52,11 +53,12 @@ QList<netctlWifiInfo> parseOutputWifi(const QList<QVariant> raw,
if (debug) qDebug() << PDEBUG;
QList<netctlWifiInfo> wifiInfo;
if (raw.size() == 0)
return wifiInfo;
for (int i=0; i<raw[0].toStringList().count(); i++) {
if (raw.size() == 0) return wifiInfo;
QStringList list = raw[0].toStringList();
for (int i=0; i<list.count(); i++) {
QStringList info = list[i].split(QChar('|'));
if (info.count() != 5) continue;
netctlWifiInfo wifi;
QStringList info = raw[0].toStringList()[i].split(QChar('|'));
wifi.name = info[0];
wifi.security = info[1];
wifi.signal = info[2];

View File

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

View File

@ -25,9 +25,7 @@
QString errorMessage()
{
QString errorMessage = QApplication::translate("MainWindow", "Unknown flag\n");
return errorMessage;
return QApplication::translate("MainWindow", "Unknown flag\n");
}
@ -141,6 +139,7 @@ QString infoMessage()
infoMessage += QString("\t-DDBUS_SYSTEMCONF_PATH=%1\n").arg(QString(PROJECT_DBUS_SYSTEMCONF_PATH));
infoMessage += QString("\t-DSYSTEMD_SERVICE_PATH=%1\n").arg(QString(PROJECT_SYSTEMD_SERVICE_PATH));
infoMessage += QString("\t-DUSE_CAPABILITIES=%1\n").arg(QString(PROJECT_USE_CAPABILITIES));
infoMessage += QString("\t-DUSE_KDE4=%1\n").arg(QString(PROJECT_USE_KDE4));
infoMessage += QString("\t-DUSE_QT5=%1\n").arg(QString(PROJECT_USE_QT5));
// transport information
infoMessage += QString("%1:\n").arg(QApplication::translate("MainWindow", "DBus configuration"));

View File

@ -22,6 +22,7 @@
#include <QFile>
#include <QFileDialog>
#include <QTextStream>
#include <QSettings>
#include <language/language.h>
#include <pdebug/pdebug.h>
@ -96,7 +97,7 @@ void SettingsWindow::addLanguages()
void SettingsWindow::changePage(QTreeWidgetItem *current, QTreeWidgetItem *previous)
{
Q_UNUSED(previous)
Q_UNUSED(previous);
if (debug) qDebug() << PDEBUG;
for (int i=0; i<ui->treeWidget->topLevelItemCount(); i++)
@ -121,14 +122,53 @@ void SettingsWindow::saveSettings()
{
if (debug) qDebug() << PDEBUG;
QMap<QString, QString> settings = readSettings();
QFile configFile(file);
if (!configFile.open(QIODevice::WriteOnly | QIODevice::Text))
return;
QTextStream out(&configFile);
for (int i=0; i<settings.keys().count(); i++)
out << settings.keys()[i] << QString("=") << settings[settings.keys()[i]] << endl;
configFile.close();
QMap<QString, QString> config = readSettings();
QSettings settings(file, QSettings::IniFormat);
settings.beginGroup(QString("General"));
settings.setValue(QString("LANGUAGE"), config[QString("LANGUAGE")]);
settings.setValue(QString("SYSTRAY"), config[QString("SYSTRAY")]);
settings.setValue(QString("CLOSETOTRAY"), config[QString("CLOSETOTRAY")]);
settings.setValue(QString("STARTTOTRAY"), config[QString("STARTTOTRAY")]);
settings.setValue(QString("SKIPCOMPONENTS"), config[QString("SKIPCOMPONENTS")]);
settings.endGroup();
settings.beginGroup(QString("Helper"));
settings.setValue(QString("USE_HELPER"), config[QString("USE_HELPER")]);
settings.setValue(QString("FORCE_SUDO"), config[QString("FORCE_SUDO")]);
settings.setValue(QString("CLOSE_HELPER"), config[QString("CLOSE_HELPER")]);
settings.setValue(QString("HELPER_PATH"), config[QString("HELPER_PATH")]);
settings.setValue(QString("HELPER_SERVICE"), config[QString("HELPER_SERVICE")]);
settings.endGroup();
settings.beginGroup(QString("netctl"));
settings.setValue(QString("SYSTEMCTL_PATH"), config[QString("SYSTEMCTL_PATH")]);
settings.setValue(QString("NETCTL_PATH"), config[QString("NETCTL_PATH")]);
settings.setValue(QString("NETCTLAUTO_PATH"), config[QString("NETCTLAUTO_PATH")]);
settings.setValue(QString("NETCTLAUTO_PATH"), config[QString("NETCTLAUTO_PATH")]);
settings.setValue(QString("PROFILE_DIR"), config[QString("PROFILE_DIR")]);
settings.endGroup();
settings.beginGroup(QString("sudo"));
settings.setValue(QString("SUDO_PATH"), config[QString("SUDO_PATH")]);
settings.endGroup();
settings.beginGroup(QString("wpa_supplicant"));
settings.setValue(QString("WPASUP_PATH"), config[QString("WPASUP_PATH")]);
settings.setValue(QString("WPACLI_PATH"), config[QString("WPACLI_PATH")]);
settings.setValue(QString("PID_FILE"), config[QString("PID_FILE")]);
settings.setValue(QString("WPA_DRIVERS"), config[QString("WPA_DRIVERS")]);
settings.setValue(QString("CTRL_DIR"), config[QString("CTRL_DIR")]);
settings.setValue(QString("CTRL_GROUP"), config[QString("CTRL_GROUP")]);
settings.endGroup();
settings.beginGroup(QString("Other"));
settings.setValue(QString("IFACE_DIR"), config[QString("IFACE_DIR")]);
settings.setValue(QString("RFKILL_DIR"), config[QString("RFKILL_DIR")]);
settings.setValue(QString("PREFERED_IFACE"), config[QString("PREFERED_IFACE")]);
settings.endGroup();
settings.sync();
}
@ -237,115 +277,122 @@ QMap<QString, QString> SettingsWindow::readSettings()
{
if (debug) qDebug() << PDEBUG;
QMap<QString, QString> settings;
if (ui->checkBox_helperClose->checkState() == 2)
settings[QString("CLOSE_HELPER")] = QString("true");
else
settings[QString("CLOSE_HELPER")] = QString("false");
if (ui->checkBox_closeToTray->checkState() == 2)
settings[QString("CLOSETOTRAY")] = QString("true");
else
settings[QString("CLOSETOTRAY")] = QString("false");
settings[QString("CTRL_DIR")] = ui->lineEdit_wpaDir->text();
settings[QString("CTRL_GROUP")] = ui->lineEdit_wpaGroup->text();
if (ui->checkBox_forceSudo->checkState() == 2)
settings[QString("FORCE_SUDO")] = QString("true");
else
settings[QString("FORCE_SUDO")] = QString("false");
settings[QString("HELPER_PATH")] = ui->lineEdit_helperPath->text();
settings[QString("HELPER_SERVICE")] = ui->lineEdit_helperService->text();
settings[QString("IFACE_DIR")] = ui->lineEdit_interfacesDir->text();
settings[QString("LANGUAGE")] = ui->comboBox_language->currentText();
settings[QString("NETCTL_PATH")] = ui->lineEdit_netctlPath->text();
settings[QString("NETCTLAUTO_PATH")] = ui->lineEdit_netctlAutoPath->text();
settings[QString("NETCTLAUTO_SERVICE")] = ui->lineEdit_netctlAutoService->text();
settings[QString("PID_FILE")] = ui->lineEdit_pid->text();
settings[QString("PREFERED_IFACE")] = ui->lineEdit_interface->text();
settings[QString("PROFILE_DIR")] = ui->lineEdit_profilePath->text();
settings[QString("RFKILL_DIR")] = ui->lineEdit_rfkill->text();
if (ui->checkBox_components->checkState() == 2)
settings[QString("SKIPCOMPONENTS")] = QString("true");
else
settings[QString("SKIPCOMPONENTS")] = QString("false");
if (ui->checkBox_startToTray->checkState() == 2)
settings[QString("STARTTOTRAY")] = QString("true");
else
settings[QString("STARTTOTRAY")] = QString("false");
settings[QString("SUDO_PATH")] = ui->lineEdit_sudo->text();
settings[QString("SYSTEMCTL_PATH")] = ui->lineEdit_systemctlPath->text();
if (ui->checkBox_enableTray->checkState() == 2)
settings[QString("SYSTRAY")] = QString("true");
else
settings[QString("SYSTRAY")] = QString("false");
if (ui->checkBox_useHelper->checkState() == 2)
settings[QString("USE_HELPER")] = QString("true");
else
settings[QString("USE_HELPER")] = QString("false");
settings[QString("WPACLI_PATH")] = ui->lineEdit_wpaCliPath->text();
settings[QString("WPASUP_PATH")] = ui->lineEdit_wpaSupPath->text();
settings[QString("WPA_DRIVERS")] = ui->lineEdit_wpaSupDrivers->text();
for (int i=0; i<settings.keys().count(); i++)
if (debug) qDebug() << PDEBUG << ":" << settings.keys()[i] + QString("=") + settings[settings.keys()[i]];
QMap<QString, QString> config;
return settings;
if (ui->checkBox_helperClose->checkState() == 2)
config[QString("CLOSE_HELPER")] = QString("true");
else
config[QString("CLOSE_HELPER")] = QString("false");
if (ui->checkBox_closeToTray->checkState() == 2)
config[QString("CLOSETOTRAY")] = QString("true");
else
config[QString("CLOSETOTRAY")] = QString("false");
config[QString("CTRL_DIR")] = ui->lineEdit_wpaDir->text();
config[QString("CTRL_GROUP")] = ui->lineEdit_wpaGroup->text();
if (ui->checkBox_forceSudo->checkState() == 2)
config[QString("FORCE_SUDO")] = QString("true");
else
config[QString("FORCE_SUDO")] = QString("false");
config[QString("HELPER_PATH")] = ui->lineEdit_helperPath->text();
config[QString("HELPER_SERVICE")] = ui->lineEdit_helperService->text();
config[QString("IFACE_DIR")] = ui->lineEdit_interfacesDir->text();
config[QString("LANGUAGE")] = ui->comboBox_language->currentText();
config[QString("NETCTL_PATH")] = ui->lineEdit_netctlPath->text();
config[QString("NETCTLAUTO_PATH")] = ui->lineEdit_netctlAutoPath->text();
config[QString("NETCTLAUTO_SERVICE")] = ui->lineEdit_netctlAutoService->text();
config[QString("PID_FILE")] = ui->lineEdit_pid->text();
config[QString("PREFERED_IFACE")] = ui->lineEdit_interface->text();
config[QString("PROFILE_DIR")] = ui->lineEdit_profilePath->text();
config[QString("RFKILL_DIR")] = ui->lineEdit_rfkill->text();
if (ui->checkBox_components->checkState() == 2)
config[QString("SKIPCOMPONENTS")] = QString("true");
else
config[QString("SKIPCOMPONENTS")] = QString("false");
if (ui->checkBox_startToTray->checkState() == 2)
config[QString("STARTTOTRAY")] = QString("true");
else
config[QString("STARTTOTRAY")] = QString("false");
config[QString("SUDO_PATH")] = ui->lineEdit_sudo->text();
config[QString("SYSTEMCTL_PATH")] = ui->lineEdit_systemctlPath->text();
if (ui->checkBox_enableTray->checkState() == 2)
config[QString("SYSTRAY")] = QString("true");
else
config[QString("SYSTRAY")] = QString("false");
if (ui->checkBox_useHelper->checkState() == 2)
config[QString("USE_HELPER")] = QString("true");
else
config[QString("USE_HELPER")] = QString("false");
config[QString("WPACLI_PATH")] = ui->lineEdit_wpaCliPath->text();
config[QString("WPASUP_PATH")] = ui->lineEdit_wpaSupPath->text();
config[QString("WPA_DRIVERS")] = ui->lineEdit_wpaSupDrivers->text();
for (int i=0; i<config.keys().count(); i++)
if (debug) qDebug() << PDEBUG << ":" << config.keys()[i] + QString("=") +
config[config.keys()[i]];
return config;
}
void SettingsWindow::setSettings(const QMap<QString, QString> settings)
void SettingsWindow::setSettings(const QMap<QString, QString> config)
{
if (debug) qDebug() << PDEBUG;
if (settings[QString("CLOSE_HELPER")] == QString("true"))
if (config[QString("CLOSE_HELPER")] == QString("true"))
ui->checkBox_helperClose->setCheckState(Qt::Checked);
else
ui->checkBox_helperClose->setCheckState(Qt::Unchecked);
if (settings[QString("CLOSETOTRAY")] == QString("true"))
if (config[QString("CLOSETOTRAY")] == QString("true"))
ui->checkBox_closeToTray->setCheckState(Qt::Checked);
else
ui->checkBox_closeToTray->setCheckState(Qt::Unchecked);
ui->lineEdit_wpaDir->setText(settings[QString("CTRL_DIR")]);
ui->lineEdit_wpaGroup->setText(settings[QString("CTRL_GROUP")]);
if (settings[QString("FORCE_SUDO")] == QString("true"))
ui->lineEdit_wpaDir->setText(config[QString("CTRL_DIR")]);
ui->lineEdit_wpaGroup->setText(config[QString("CTRL_GROUP")]);
if (config[QString("FORCE_SUDO")] == QString("true"))
ui->checkBox_forceSudo->setCheckState(Qt::Checked);
else
ui->checkBox_forceSudo->setCheckState(Qt::Unchecked);
ui->lineEdit_helperPath->setText(settings[QString("HELPER_PATH")]);
ui->lineEdit_helperService->setText(settings[QString("HELPER_SERVICE")]);
ui->lineEdit_interfacesDir->setText(settings[QString("IFACE_DIR")]);
ui->lineEdit_helperPath->setText(config[QString("HELPER_PATH")]);
ui->lineEdit_helperService->setText(config[QString("HELPER_SERVICE")]);
ui->lineEdit_interfacesDir->setText(config[QString("IFACE_DIR")]);
ui->comboBox_language->setCurrentIndex(0);
for (int i=0; i<ui->comboBox_language->count(); i++)
if (ui->comboBox_language->itemText(i) == settings[QString("LANGUAGE")])
if (ui->comboBox_language->itemText(i) == config[QString("LANGUAGE")]) {
ui->comboBox_language->setCurrentIndex(i);
ui->lineEdit_netctlPath->setText(settings[QString("NETCTL_PATH")]);
ui->lineEdit_netctlAutoPath->setText(settings[QString("NETCTLAUTO_PATH")]);
ui->lineEdit_netctlAutoService->setText(settings[QString("NETCTLAUTO_SERVICE")]);
ui->lineEdit_pid->setText(settings[QString("PID_FILE")]);
ui->lineEdit_interface->setText(settings[QString("PREFERED_IFACE")]);
ui->lineEdit_profilePath->setText(settings[QString("PROFILE_DIR")]);
ui->lineEdit_rfkill->setText(settings[QString("RFKILL_DIR")]);
if (settings[QString("SKIPCOMPONENTS")] == QString("true"))
break;
}
ui->lineEdit_netctlPath->setText(config[QString("NETCTL_PATH")]);
ui->lineEdit_netctlAutoPath->setText(config[QString("NETCTLAUTO_PATH")]);
ui->lineEdit_netctlAutoService->setText(config[QString("NETCTLAUTO_SERVICE")]);
ui->lineEdit_pid->setText(config[QString("PID_FILE")]);
ui->lineEdit_interface->setText(config[QString("PREFERED_IFACE")]);
ui->lineEdit_profilePath->setText(config[QString("PROFILE_DIR")]);
ui->lineEdit_rfkill->setText(config[QString("RFKILL_DIR")]);
if (config[QString("SKIPCOMPONENTS")] == QString("true"))
ui->checkBox_components->setCheckState(Qt::Checked);
else
ui->checkBox_components->setCheckState(Qt::Unchecked);
if (settings[QString("STARTTOTRAY")] == QString("true"))
if (config[QString("STARTTOTRAY")] == QString("true"))
ui->checkBox_startToTray->setCheckState(Qt::Checked);
else
ui->checkBox_startToTray->setCheckState(Qt::Unchecked);
ui->lineEdit_sudo->setText(settings[QString("SUDO_PATH")]);
ui->lineEdit_systemctlPath->setText(settings[QString("SYSTEMCTL_PATH")]);
if (settings[QString("SYSTRAY")] == QString("true"))
ui->lineEdit_sudo->setText(config[QString("SUDO_PATH")]);
ui->lineEdit_systemctlPath->setText(config[QString("SYSTEMCTL_PATH")]);
if (config[QString("SYSTRAY")] == QString("true"))
ui->checkBox_enableTray->setCheckState(Qt::Checked);
else
ui->checkBox_enableTray->setCheckState(Qt::Unchecked);
if (settings[QString("USE_HELPER")] == QString("true"))
if (config[QString("USE_HELPER")] == QString("true"))
ui->checkBox_useHelper->setCheckState(Qt::Checked);
else
ui->checkBox_useHelper->setCheckState(Qt::Unchecked);
ui->lineEdit_wpaCliPath->setText(settings[QString("WPACLI_PATH")]);
ui->lineEdit_wpaSupPath->setText(settings[QString("WPASUP_PATH")]);
ui->lineEdit_wpaSupDrivers->setText(settings[QString("WPA_DRIVERS")]);
for (int i=0; i<settings.keys().count(); i++)
if (debug) qDebug() << PDEBUG << ":" << settings.keys()[i] + QString("=") + settings[settings.keys()[i]];
ui->lineEdit_wpaCliPath->setText(config[QString("WPACLI_PATH")]);
ui->lineEdit_wpaSupPath->setText(config[QString("WPASUP_PATH")]);
ui->lineEdit_wpaSupDrivers->setText(config[QString("WPA_DRIVERS")]);
for (int i=0; i<config.keys().count(); i++)
if (debug) qDebug() << PDEBUG << ":" << config.keys()[i] + QString("=") +
config[config.keys()[i]];
}
@ -353,62 +400,66 @@ QMap<QString, QString> SettingsWindow::getDefault()
{
if (debug) qDebug() << PDEBUG;
QMap<QString, QString> settings;
settings[QString("CLOSE_HELPER")] = QString("false");
settings[QString("CLOSETOTRAY")] = QString("true");
settings[QString("CTRL_DIR")] = QString("/run/wpa_supplicant_netctl-gui");
settings[QString("CTRL_GROUP")] = QString("users");
settings[QString("FORCE_SUDO")] = QString("false");
settings[QString("HELPER_PATH")] = QString("/usr/bin/netctlgui-helper");
settings[QString("HELPER_SERVICE")] = QString("netctlgui-helper.service");
settings[QString("IFACE_DIR")] = QString("/sys/class/net/");
settings[QString("LANGUAGE")] = QString("en");
settings[QString("NETCTL_PATH")] = QString("/usr/bin/netctl");
settings[QString("NETCTLAUTO_PATH")] = QString("/usr/bin/netctl-auto");
settings[QString("NETCTLAUTO_SERVICE")] = QString("netctl-auto");
settings[QString("PID_FILE")] = QString("/run/wpa_supplicant_netctl-gui.pid");
settings[QString("PREFERED_IFACE")] = QString("");
settings[QString("PROFILE_DIR")] = QString("/etc/netctl/");
settings[QString("RFKILL_DIR")] = QString("/sys/class/rfkill/");
settings[QString("SKIPCOMPONENTS")] = QString("false");
settings[QString("STARTTOTRAY")] = QString("false");
settings[QString("SUDO_PATH")] = QString("/usr/bin/kdesu");
settings[QString("SYSTEMCTL_PATH")] = QString("/usr/bin/systemctl");
settings[QString("SYSTRAY")] = QString("true");
settings[QString("USE_HELPER")] = QString("true");
settings[QString("WPACLI_PATH")] = QString("/usr/bin/wpa_cli");
settings[QString("WPASUP_PATH")] = QString("/usr/bin/wpa_supplicant");
settings[QString("WPA_DRIVERS")] = QString("nl80211,wext");
for (int i=0; i<settings.keys().count(); i++)
if (debug) qDebug() << PDEBUG << ":" << settings.keys()[i] + QString("=") + settings[settings.keys()[i]];
return settings;
return getSettings(QString("/dev/null"));
}
QMap<QString, QString> SettingsWindow::getSettings()
QMap<QString, QString> SettingsWindow::getSettings(QString fileName)
{
if (debug) qDebug() << PDEBUG;
if (fileName == QString("")) fileName = file;
QMap<QString, QString> settings = getDefault();
QFile configFile(file);
QString fileStr;
if (!configFile.open(QIODevice::ReadOnly))
return settings;
while (true) {
fileStr = QString(configFile.readLine()).trimmed();
if ((fileStr.isEmpty()) && (!configFile.atEnd())) continue;
if ((fileStr[0] == QChar('#')) && (!configFile.atEnd())) continue;
if ((fileStr[0] == QChar(';')) && (!configFile.atEnd())) continue;
if (fileStr.contains(QChar('=')))
settings[fileStr.split(QChar('='))[0]] = fileStr.split(QChar('='))[1];
if (configFile.atEnd()) break;
}
configFile.close();
for (int i=0; i<settings.keys().count(); i++)
if (debug) qDebug() << PDEBUG << ":" << settings.keys()[i] + QString("=") + settings[settings.keys()[i]];
QMap<QString, QString> config;
QSettings settings(fileName, QSettings::IniFormat);
return settings;
settings.beginGroup(QString("General"));
config[QString("LANGUAGE")] = settings.value(QString("LANGUAGE"), QString("en")).toString();
config[QString("SYSTRAY")] = settings.value(QString("SYSTRAY"), QString("true")).toString();
config[QString("CLOSETOTRAY")] = settings.value(QString("CLOSETOTRAY"), QString("true")).toString();
config[QString("STARTTOTRAY")] = settings.value(QString("STARTTOTRAY"), QString("false")).toString();
config[QString("SKIPCOMPONENTS")] = settings.value(QString("SKIPCOMPONENTS"), QString("false")).toString();
settings.endGroup();
settings.beginGroup(QString("Helper"));
config[QString("USE_HELPER")] = settings.value(QString("USE_HELPER"), QString("true")).toString();
config[QString("FORCE_SUDO")] = settings.value(QString("FORCE_SUDO"), QString("false")).toString();
config[QString("CLOSE_HELPER")] = settings.value(QString("CLOSE_HELPER"), QString("false")).toString();
config[QString("HELPER_PATH")] = settings.value(QString("HELPER_PATH"), QString("/usr/bin/netctlgui-helper")).toString();
config[QString("HELPER_SERVICE")] = settings.value(QString("HELPER_SERVICE"), QString("netctlgui-helper.service")).toString();
settings.endGroup();
settings.beginGroup(QString("netctl"));
config[QString("SYSTEMCTL_PATH")] = settings.value(QString("SYSTEMCTL_PATH"), QString("/usr/bin/systemctl")).toString();
config[QString("NETCTL_PATH")] = settings.value(QString("NETCTL_PATH"), QString("/usr/bin/netctl")).toString();
config[QString("NETCTLAUTO_PATH")] = settings.value(QString("NETCTLAUTO_PATH"), QString("/usr/bin/netctl-auto")).toString();
config[QString("NETCTLAUTO_SERVICE")] = settings.value(QString("NETCTLAUTO_SERVICE"), QString("netctl-auto")).toString();
config[QString("PROFILE_DIR")] = settings.value(QString("PROFILE_DIR"), QString("/etc/netctl")).toString();
settings.endGroup();
settings.beginGroup(QString("sudo"));
config[QString("SUDO_PATH")] = settings.value(QString("SUDO_PATH"), QString("/usr/bin/kdesu")).toString();
settings.endGroup();
settings.beginGroup(QString("wpa_supplicant"));
config[QString("WPASUP_PATH")] = settings.value(QString("WPASUP_PATH"), QString("/usr/bin/wpa_supplicant")).toString();
config[QString("WPACLI_PATH")] = settings.value(QString("WPACLI_PATH"), QString("/usr/bin/wpa_cli")).toString();
config[QString("PID_FILE")] = settings.value(QString("PID_FILE"), QString("/run/wpa_supplicant_netctl-gui.pid")).toString();
config[QString("WPA_DRIVERS")] = settings.value(QString("WPA_DRIVERS"), QString("nl80211,wext")).toString();
config[QString("CTRL_DIR")] = settings.value(QString("CTRL_DIR"), QString("/run/wpa_supplicant_netctl-gui")).toString();
config[QString("CTRL_GROUP")] = settings.value(QString("CTRL_GROUP"), QString("users")).toString();
settings.endGroup();
settings.beginGroup(QString("Other"));
config[QString("IFACE_DIR")] = settings.value(QString("IFACE_DIR"), QString("/sys/class/net/")).toString();
config[QString("RFKILL_DIR")] = settings.value(QString("RFKILL_DIR"), QString("/sys/class/rfkill/")).toString();
config[QString("PREFERED_IFACE")] = settings.value(QString("PREFERED_IFACE"), QString("")).toString();
settings.endGroup();
for (int i=0; i<config.keys().count(); i++)
if (debug) qDebug() << PDEBUG << ":" << config.keys()[i] + QString("=") +
config[config.keys()[i]];
return config;
}

View File

@ -39,7 +39,7 @@ public:
const QString configFile = QString(""));
~SettingsWindow();
QMap<QString, QString> getDefault();
QMap<QString, QString> getSettings();
QMap<QString, QString> getSettings(QString fileName = QString(""));
public slots:
void closeWindow();
@ -65,7 +65,7 @@ private:
// ESC pressed event
void keyPressEvent(QKeyEvent *pressedKey);
QMap<QString, QString> readSettings();
void setSettings(const QMap<QString, QString> settings);
void setSettings(const QMap<QString, QString> config);
};

View File

@ -17,38 +17,38 @@ include_directories (${CMAKE_CURRENT_SOURCE_DIR}/../../${PROJECT_LIBRARY}/includ
link_directories (${PROJECT_LIBRARY}/src/lib)
if (USE_QT5)
find_package(Qt5 COMPONENTS Core DBus LinguistTools REQUIRED)
add_definitions(${Qt5Core_DEFINITIONS} ${Qt5DBus_DEFINITIONS} ${Qt5LinguistTools_DEFINITIONS})
include_directories (${Qt5Core_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS})
set (QT_NEEDED_LIBS ${Qt5Core_LIBRARIES} ${Qt5DBus_LIBRARIES})
qt5_wrap_cpp (MOC_SOURCES ${HEADERS})
qt5_add_resources (QRC_SOURCES ${RESOURCES})
find_package (Qt5 COMPONENTS Core DBus LinguistTools REQUIRED)
add_definitions (${Qt5Core_DEFINITIONS} ${Qt5DBus_DEFINITIONS} ${Qt5LinguistTools_DEFINITIONS})
include_directories (${Qt5Core_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS})
set (QT_NEEDED_LIBS ${Qt5Core_LIBRARIES} ${Qt5DBus_LIBRARIES})
qt5_wrap_cpp (MOC_SOURCES ${HEADERS})
qt5_add_resources (QRC_SOURCES ${RESOURCES})
foreach (LANGUAGE ${LANGUAGES})
set (TS ${LANGUAGE})
string (REPLACE ".ts" ".qm" QM ${TS})
set (TRANSLATIONS ${TRANSLATIONS} ${TS})
set (TRANSLATIONS_BINARY ${TRANSLATIONS_BINARY} ${QM})
add_custom_command (OUTPUT ${QM} COMMAND ${Qt5_LRELEASE_EXECUTABLE} ${TS} MAIN_DEPENDENCY ${TS})
endforeach ()
add_custom_target (translations-helper COMMAND ${Qt5_LUPDATE_EXECUTABLE} ${HEADERS} ${SOURCES} -ts ${TRANSLATIONS})
add_custom_command (TARGET translations-helper COMMAND ${Qt5_LRELEASE_EXECUTABLE} ${TRANSLATIONS})
foreach (LANGUAGE ${LANGUAGES})
set (TS ${LANGUAGE})
string (REPLACE ".ts" ".qm" QM ${TS})
set (TRANSLATIONS ${TRANSLATIONS} ${TS})
set (TRANSLATIONS_BINARY ${TRANSLATIONS_BINARY} ${QM})
add_custom_command (OUTPUT ${QM} COMMAND ${Qt5_LRELEASE_EXECUTABLE} ${TS} MAIN_DEPENDENCY ${TS})
endforeach ()
add_custom_target (translations-helper COMMAND ${Qt5_LUPDATE_EXECUTABLE} ${HEADERS} ${SOURCES} -ts ${TRANSLATIONS})
add_custom_command (TARGET translations-helper COMMAND ${Qt5_LRELEASE_EXECUTABLE} ${TRANSLATIONS})
else ()
find_package (Qt4 COMPONENTS QtCore QtDBus REQUIRED)
include (${QT_USE_FILE})
set (QT_NEEDED_LIBS ${QT_QTCORE_LIBRARY} ${QT_QTDBUS_LIBRARY})
qt4_wrap_cpp (MOC_SOURCES ${HEADERS})
qt4_add_resources (QRC_SOURCES ${RESOURCES})
find_package (Qt4 COMPONENTS QtCore QtDBus REQUIRED)
include (${QT_USE_FILE})
set (QT_NEEDED_LIBS ${QT_QTCORE_LIBRARY} ${QT_QTDBUS_LIBRARY})
qt4_wrap_cpp (MOC_SOURCES ${HEADERS})
qt4_add_resources (QRC_SOURCES ${RESOURCES})
foreach (LANGUAGE ${LANGUAGES})
set (TS ${LANGUAGE})
string (REPLACE ".ts" ".qm" QM ${TS})
set (TRANSLATIONS ${TRANSLATIONS} ${TS})
set (TRANSLATIONS_BINARY ${TRANSLATIONS_BINARY} ${QM})
add_custom_command (OUTPUT ${QM} COMMAND ${QT_LRELEASE_EXECUTABLE} ${TS} MAIN_DEPENDENCY ${TS})
endforeach ()
add_custom_target (translations-helper COMMAND ${QT_LUPDATE_EXECUTABLE} ${HEADERS} ${SOURCES} -ts ${TRANSLATIONS})
add_custom_command (TARGET translations-helper COMMAND ${QT_LRELEASE_EXECUTABLE} ${TRANSLATIONS})
foreach (LANGUAGE ${LANGUAGES})
set (TS ${LANGUAGE})
string (REPLACE ".ts" ".qm" QM ${TS})
set (TRANSLATIONS ${TRANSLATIONS} ${TS})
set (TRANSLATIONS_BINARY ${TRANSLATIONS_BINARY} ${QM})
add_custom_command (OUTPUT ${QM} COMMAND ${QT_LRELEASE_EXECUTABLE} ${TS} MAIN_DEPENDENCY ${TS})
endforeach ()
add_custom_target (translations-helper COMMAND ${QT_LUPDATE_EXECUTABLE} ${HEADERS} ${SOURCES} -ts ${TRANSLATIONS})
add_custom_command (TARGET translations-helper COMMAND ${QT_LRELEASE_EXECUTABLE} ${TRANSLATIONS})
endif()
add_executable (${SUBPROJECT} ${SOURCES} ${HEADERS} ${MOC_SOURCES} ${QRC_SOURCES} ${TRANSLATIONS})
@ -56,5 +56,5 @@ target_link_libraries (${SUBPROJECT} ${PROJECT_LIBRARY} ${QT_NEEDED_LIBS})
# install properties
install (TARGETS ${SUBPROJECT} DESTINATION bin)
if (USE_CAPABILITIES)
install (CODE "exec_program (setcap ARGS \"cap_setuid=ep\" \"$ENV{DESTDIR}/bin/${SUBPROJECT}\")")
install (CODE "exec_program (setcap ARGS \"cap_setuid=ep\" \"$ENV{DESTDIR}/bin/${SUBPROJECT}\")")
endif ()

View File

@ -25,9 +25,7 @@
QString errorMessage()
{
QString errorMessage = QCoreApplication::translate("NetctlHelper", "Unknown flag\n");
return errorMessage;
return QCoreApplication::translate("NetctlHelper", "Unknown flag\n");
}
@ -110,6 +108,7 @@ QString infoMessage()
infoMessage += QString("\t-DDBUS_SYSTEMCONF_PATH=%1\n").arg(QString(PROJECT_DBUS_SYSTEMCONF_PATH));
infoMessage += QString("\t-DSYSTEMD_SERVICE_PATH=%1\n").arg(QString(PROJECT_SYSTEMD_SERVICE_PATH));
infoMessage += QString("\t-DUSE_CAPABILITIES=%1\n").arg(QString(PROJECT_USE_CAPABILITIES));
infoMessage += QString("\t-DUSE_KDE4=%1\n").arg(QString(PROJECT_USE_KDE4));
infoMessage += QString("\t-DUSE_QT5=%1\n").arg(QString(PROJECT_USE_QT5));
// transport information
infoMessage += QString("%1:\n").arg(QCoreApplication::translate("NetctlHelper", "DBus configuration"));

View File

@ -21,6 +21,7 @@
#include <QDBusConnection>
#include <QDBusError>
#include <QDebug>
#include <QSettings>
#include <unistd.h>
#include <netctlgui/netctlgui.h>
@ -126,70 +127,61 @@ void NetctlHelper::deleteInterface()
}
QMap<QString, QString> NetctlHelper::getDefault()
QMap<QString, QString> NetctlHelper::getSettings(const QString file)
{
if (debug) qDebug() << PDEBUG;
QMap<QString, QString> settings;
settings[QString("CLOSE_HELPER")] = QString("false");
settings[QString("CLOSETOTRAY")] = QString("true");
settings[QString("CTRL_DIR")] = QString("/run/wpa_supplicant_netctl-gui");
settings[QString("CTRL_GROUP")] = QString("users");
settings[QString("FORCE_SUDO")] = QString("false");
settings[QString("HELPER_PATH")] = QString("/usr/bin/netctlgui-helper");
settings[QString("HELPER_SERVICE")] = QString("netctlgui-helper.service");
settings[QString("IFACE_DIR")] = QString("/sys/class/net/");
settings[QString("LANGUAGE")] = QString("en");
settings[QString("NETCTL_PATH")] = QString("/usr/bin/netctl");
settings[QString("NETCTLAUTO_PATH")] = QString("/usr/bin/netctl-auto");
settings[QString("NETCTLAUTO_SERVICE")] = QString("netctl-auto");
settings[QString("PID_FILE")] = QString("/run/wpa_supplicant_netctl-gui.pid");
settings[QString("PREFERED_IFACE")] = QString("");
settings[QString("PROFILE_DIR")] = QString("/etc/netctl/");
settings[QString("RFKILL_DIR")] = QString("/sys/class/rfkill/");
settings[QString("SKIPCOMPONENTS")] = QString("false");
settings[QString("STARTTOTRAY")] = QString("false");
settings[QString("SUDO_PATH")] = QString("/usr/bin/kdesu");
settings[QString("SYSTEMCTL_PATH")] = QString("/usr/bin/systemctl");
settings[QString("SYSTRAY")] = QString("true");
settings[QString("USE_HELPER")] = QString("true");
settings[QString("WPACLI_PATH")] = QString("/usr/bin/wpa_cli");
settings[QString("WPASUP_PATH")] = QString("/usr/bin/wpa_supplicant");
settings[QString("WPA_DRIVERS")] = QString("nl80211,wext");
for (int i=0; i<settings.keys().count(); i++)
if (debug) qDebug() << PDEBUG << ":" << settings.keys()[i] + QString("=") + settings[settings.keys()[i]];
QMap<QString, QString> config;
QSettings settings(file, QSettings::IniFormat);
return settings;
}
settings.beginGroup(QString("General"));
config[QString("LANGUAGE")] = settings.value(QString("LANGUAGE"), QString("en")).toString();
config[QString("SYSTRAY")] = settings.value(QString("SYSTRAY"), QString("true")).toString();
config[QString("CLOSETOTRAY")] = settings.value(QString("CLOSETOTRAY"), QString("true")).toString();
config[QString("STARTTOTRAY")] = settings.value(QString("STARTTOTRAY"), QString("false")).toString();
config[QString("SKIPCOMPONENTS")] = settings.value(QString("SKIPCOMPONENTS"), QString("false")).toString();
settings.endGroup();
settings.beginGroup(QString("Helper"));
config[QString("USE_HELPER")] = settings.value(QString("USE_HELPER"), QString("true")).toString();
config[QString("FORCE_SUDO")] = settings.value(QString("FORCE_SUDO"), QString("false")).toString();
config[QString("CLOSE_HELPER")] = settings.value(QString("CLOSE_HELPER"), QString("false")).toString();
config[QString("HELPER_PATH")] = settings.value(QString("HELPER_PATH"), QString("/usr/bin/netctlgui-helper")).toString();
config[QString("HELPER_SERVICE")] = settings.value(QString("HELPER_SERVICE"), QString("netctlgui-helper.service")).toString();
settings.endGroup();
QMap<QString, QString> NetctlHelper::getSettings(const QString file, const QMap<QString, QString> existing)
{
if (debug) qDebug() << PDEBUG;
settings.beginGroup(QString("netctl"));
config[QString("SYSTEMCTL_PATH")] = settings.value(QString("SYSTEMCTL_PATH"), QString("/usr/bin/systemctl")).toString();
config[QString("NETCTL_PATH")] = settings.value(QString("NETCTL_PATH"), QString("/usr/bin/netctl")).toString();
config[QString("NETCTLAUTO_PATH")] = settings.value(QString("NETCTLAUTO_PATH"), QString("/usr/bin/netctl-auto")).toString();
config[QString("NETCTLAUTO_SERVICE")] = settings.value(QString("NETCTLAUTO_SERVICE"), QString("netctl-auto")).toString();
config[QString("PROFILE_DIR")] = settings.value(QString("PROFILE_DIR"), QString("/etc/netctl")).toString();
settings.endGroup();
QMap<QString, QString> settings;
if (existing.isEmpty())
settings = getDefault();
else
settings = existing;
QFile configFile(file);
QString fileStr;
if (!configFile.open(QIODevice::ReadOnly))
return settings;
while (true) {
fileStr = QString(configFile.readLine()).trimmed();
if ((fileStr.isEmpty()) && (!configFile.atEnd())) continue;
if ((fileStr[0] == QChar('#')) && (!configFile.atEnd())) continue;
if ((fileStr[0] == QChar(';')) && (!configFile.atEnd())) continue;
if (fileStr.contains(QChar('=')))
settings[fileStr.split(QChar('='))[0]] = fileStr.split(QChar('='))[1];
if (configFile.atEnd()) break;
}
configFile.close();
for (int i=0; i<settings.keys().count(); i++)
if (debug) qDebug() << PDEBUG << ":" << settings.keys()[i] + QString("=") + settings[settings.keys()[i]];
settings.beginGroup(QString("sudo"));
config[QString("SUDO_PATH")] = settings.value(QString("SUDO_PATH"), QString("/usr/bin/kdesu")).toString();
settings.endGroup();
return settings;
settings.beginGroup(QString("wpa_supplicant"));
config[QString("WPASUP_PATH")] = settings.value(QString("WPASUP_PATH"), QString("/usr/bin/wpa_supplicant")).toString();
config[QString("WPACLI_PATH")] = settings.value(QString("WPACLI_PATH"), QString("/usr/bin/wpa_cli")).toString();
config[QString("PID_FILE")] = settings.value(QString("PID_FILE"), QString("/run/wpa_supplicant_netctl-gui.pid")).toString();
config[QString("WPA_DRIVERS")] = settings.value(QString("WPA_DRIVERS"), QString("nl80211,wext")).toString();
config[QString("CTRL_DIR")] = settings.value(QString("CTRL_DIR"), QString("/run/wpa_supplicant_netctl-gui")).toString();
config[QString("CTRL_GROUP")] = settings.value(QString("CTRL_GROUP"), QString("users")).toString();
settings.endGroup();
settings.beginGroup(QString("Other"));
config[QString("IFACE_DIR")] = settings.value(QString("IFACE_DIR"), QString("/sys/class/net/")).toString();
config[QString("RFKILL_DIR")] = settings.value(QString("RFKILL_DIR"), QString("/sys/class/rfkill/")).toString();
config[QString("PREFERED_IFACE")] = settings.value(QString("PREFERED_IFACE"), QString("")).toString();
settings.endGroup();
for (int i=0; i<config.keys().count(); i++)
if (debug) qDebug() << PDEBUG << ":" << config.keys()[i] + QString("=") +
config[config.keys()[i]];
return config;
}
@ -198,9 +190,10 @@ void NetctlHelper::updateConfiguration()
if (debug) qDebug() << PDEBUG;
deleteInterface();
configuration = getSettings(QString("/etc/netctl-gui.conf"));
if (!system)
configuration = getSettings(configPath, configuration);
if (system)
configuration = getSettings(QString("/etc/netctl-gui.conf"));
else
configuration = getSettings(configPath);
createInterface();
}

View File

@ -45,9 +45,7 @@ private:
bool system;
void createInterface();
void deleteInterface();
QMap<QString, QString> getDefault();
QMap<QString, QString> getSettings(const QString file,
const QMap<QString, QString> existing = QMap<QString, QString>());
QMap<QString, QString> getSettings(const QString file);
};

View File

@ -15,5 +15,5 @@ add_subdirectory (${SUBPROJECT_SOURCE_DIR})
install (DIRECTORY ${SUBPROJECT_INCLUDE_DIR}/ DESTINATION include/)
# documentation
if (BUILD_DOCS)
include (docs.cmake)
include (docs.cmake)
endif ()

View File

@ -1,9 +1,5 @@
# doxygen documentation
find_package (Doxygen)
if (NOT DOXYGEN_FOUND)
message (STATUS "WARNING: Doxygen not found - Reference manual will not be created")
return ()
endif ()
configure_file (doxygen.conf.in ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf)
add_custom_target (oxygen-docs ALL COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf)

View File

@ -12,16 +12,16 @@ include_directories (${SUBPROJECT_INCLUDE_DIR}
${PROJECT_TRDPARTY_DIR})
if (USE_QT5)
find_package(Qt5 COMPONENTS Core REQUIRED)
add_definitions(${Qt5Core_DEFINITIONS})
include_directories (${Qt5Core_INCLUDE_DIRS})
set (QT_NEEDED_LIBS ${Qt5Core_LIBRARIES})
qt5_wrap_cpp (MOC_SOURCES ${HEADERS})
find_package (Qt5 COMPONENTS Core REQUIRED)
add_definitions (${Qt5Core_DEFINITIONS})
include_directories (${Qt5Core_INCLUDE_DIRS})
set (QT_NEEDED_LIBS ${Qt5Core_LIBRARIES})
qt5_wrap_cpp (MOC_SOURCES ${HEADERS})
else ()
find_package (Qt4 COMPONENTS QtCore REQUIRED)
include (${QT_USE_FILE})
set (QT_NEEDED_LIBS ${QT_QTCORE_LIBRARY})
qt4_wrap_cpp (MOC_SOURCES ${HEADERS})
find_package (Qt4 COMPONENTS QtCore REQUIRED)
include (${QT_USE_FILE})
set (QT_NEEDED_LIBS ${QT_QTCORE_LIBRARY})
qt4_wrap_cpp (MOC_SOURCES ${HEADERS})
endif()
add_library (${SUBPROJECT} SHARED ${SOURCES} ${HEADERS} ${MOC_SOURCES})

View File

@ -16,8 +16,6 @@ include_directories (${CMAKE_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}/../
${PROJECT_TRDPARTY_DIR})
add_subdirectory (po)
# set sources
set (PLUGIN_NAME ${SUBPROJECT})
file (GLOB SUBPROJECT_DESKTOP_IN *.desktop)

View File

@ -28,6 +28,7 @@
#include <QDebug>
#include <QMenu>
#include <QProcessEnvironment>
#include <QSettings>
#include <pdebug/pdebug.h>
@ -66,7 +67,7 @@ Netctl::Netctl(QObject *parent, const QVariantList &args)
{
// debug
QProcessEnvironment environment = QProcessEnvironment::systemEnvironment();
QString debugEnv = environment.value(QString("NETCTLGUI_DEBUG"), QString("no"));
QString debugEnv = environment.value(QString("DEBUG"), QString("no"));
if (debugEnv == QString("yes"))
debug = true;
else
@ -150,80 +151,49 @@ QMap<QString, QString> Netctl::readDataEngineConfiguration()
{
if (debug) qDebug() << PDEBUG;
QMap<QString, QString> rawConfig;
rawConfig[QString("EXTIP4")] = QString("false");
rawConfig[QString("EXTIP4CMD")] = QString("curl ip4.telize.com");
rawConfig[QString("EXTIP6")] = QString("false");
rawConfig[QString("EXTIP6CMD")] = QString("curl ip6.telize.com");
rawConfig[QString("NETCTLCMD")] = QString("/usr/bin/netctl");
rawConfig[QString("NETCTLAUTOCMD")] = QString("/usr/bin/netctl-auto");
QString fileName = KGlobal::dirs()->findResource("config", "netctl.conf");
QMap<QString, QString> configuration;
QString fileName;
fileName = KGlobal::dirs()->findResource("config", "plasma-dataengine-netctl.conf");
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << fileName;
QFile configFile(fileName);
if (!configFile.open(QIODevice::ReadOnly))
return updateDataEngineConfiguration(rawConfig);
QString fileStr;
QStringList value;
while (true) {
fileStr = QString(configFile.readLine()).trimmed();
if ((fileStr.isEmpty()) && (!configFile.atEnd())) continue;
if ((fileStr[0] == QChar('#')) && (!configFile.atEnd())) continue;
if ((fileStr[0] == QChar(';')) && (!configFile.atEnd())) 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 (configFile.atEnd()) break;
}
configFile.close();
QSettings settings(fileName, QSettings::IniFormat);
return updateDataEngineConfiguration(rawConfig);
settings.beginGroup(QString("Netctl commands"));
configuration[QString("NETCTLCMD")] = settings.value(QString("NETCTLCMD"), QString("/usr/bin/netctl")).toString();
configuration[QString("NETCTLAUTOCMD")] = settings.value(QString("NETCTLAUTOCMD"), QString("/usr/bin/netctl-auto")).toString();
settings.endGroup();
settings.beginGroup(QString("External IP"));
configuration[QString("EXTIP4")] = settings.value(QString("EXTIP4"), QString("false")).toString();
configuration[QString("EXTIP4CMD")] = settings.value(QString("EXTIP4CMD"), QString("curl ip4.telize.com")).toString();
configuration[QString("EXTIP6")] = settings.value(QString("EXTIP6"), QString("false")).toString();
configuration[QString("EXTIP6CMD")] = settings.value(QString("EXTIP6CMD"), QString("curl ip6.telize.com")).toString();
settings.endGroup();
return configuration;
}
void Netctl::writeDataEngineConfiguration(const QMap<QString, QString> settings)
void Netctl::writeDataEngineConfiguration(const QMap<QString, QString> configuration)
{
if (debug) qDebug() << PDEBUG;
QMap<QString, QString> config = updateDataEngineConfiguration(settings);
QString fileName = KGlobal::dirs()->locateLocal("config", "netctl.conf");
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << fileName;
QFile configFile(fileName);
if (!configFile.open(QIODevice::WriteOnly)) return;
for (int i=0; i<config.keys().count(); i++) {
QByteArray string = (config.keys()[i] + QString("=") + config[config.keys()[i]] + QString("\n")).toUtf8();
configFile.write(string);
}
configFile.close();
}
QString fileName = KGlobal::dirs()->locateLocal("config", "plasma-dataengine-netctl.conf");
QSettings settings(fileName, QSettings::IniFormat);
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << settings.fileName();
settings.beginGroup(QString("Netctl commands"));
settings.setValue(QString("NETCTLCMD"), configuration[QString("NETCTLCMD")]);
settings.setValue(QString("NETCTLAUTOCMD"), configuration[QString("NETCTLAUTOCMD")]);
settings.endGroup();
QMap<QString, QString> Netctl::updateDataEngineConfiguration(const QMap<QString, QString> rawConfig)
{
if (debug) qDebug() << PDEBUG;
settings.beginGroup(QString("External IP"));
settings.setValue(QString("EXTIP4"), configuration[QString("EXTIP4")]);
settings.setValue(QString("EXTIP4CMD"), configuration[QString("EXTIP4CMD")]);
settings.setValue(QString("EXTIP6"), configuration[QString("EXTIP6")]);
settings.setValue(QString("EXTIP6CMD"), configuration[QString("EXTIP6CMD")]);
settings.endGroup();
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("EXTIP4CMD")) &&
(key != QString("EXTIP6CMD")) &&
(key != QString("NETCTLCMD")) &&
(key != QString("NETCTLAUTOCMD")))
value.remove(QChar(' '));
config[key] = value;
}
for (int i=0; i<config.keys().count(); i++)
if (debug) qDebug() << PDEBUG << ":" << config.keys()[i] + QString("=") + config[config.keys()[i]];
return config;
settings.sync();
}

View File

@ -56,8 +56,7 @@ public:
void init();
QString parsePattern(const QString rawLine);
QMap<QString, QString> readDataEngineConfiguration();
void writeDataEngineConfiguration(const QMap<QString, QString> settings);
QMap<QString, QString> updateDataEngineConfiguration(const QMap<QString, QString> rawConfig);
void writeDataEngineConfiguration(const QMap<QString, QString> configuration);
public slots:
// events

View File

@ -8,11 +8,11 @@ Icon=netctl-gui-widget
X-KDE-ServiceTypes=Plasma/Applet,Plasma/PopupApplet
X-KDE-Library=plasma_applet_netctl
X-KDE-PluginInfo-Author=Evgeniy Alekseev aka arcanis
X-KDE-PluginInfo-Author=Evgeniy Alekseev
X-KDE-PluginInfo-Email=esalexeev@gmail.com
X-KDE-PluginInfo-Name=netctl
X-KDE-PluginInfo-Version=@PROJECT_VERSION@
X-KDE-PluginInfo-Website=http://arcan1s.github.io/projects/netctlplasmoid
X-KDE-PluginInfo-Website=http://arcanis.name/projects/netctl-gui/
X-KDE-PluginInfo-Category=Network
X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=GPLv3

View File

@ -0,0 +1,16 @@
# set project name
set (SUBPROJECT plasma_applet_netctl)
message (STATUS "Subproject ${SUBPROJECT}")
find_package (ECM 0.0.12 REQUIRED NO_MODULE)
set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
find_package (Qt5 REQUIRED COMPONENTS Core DBus Qml Quick)
find_package (KF5 REQUIRED COMPONENTS I18n Notifications Plasma)
include (KDEInstallDirs)
include (KDECMakeSettings)
include (KDECompilerSettings)
add_subdirectory (plugin)
plasma_install_package (package org.kde.plasma.netctl)

View File

@ -0,0 +1,47 @@
/***************************************************************************
* This file is part of netctl-gui *
* *
* netctl-gui is free software: you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation, either version 3 of the *
* License, or (at your option) any later version. *
* *
* netctl-gui is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with netctl-gui. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
import QtQuick 2.0
import org.kde.plasma.configuration 2.0
ConfigModel {
ConfigCategory {
name: i18n("Widget")
icon: "/usr/share/pixmaps/netctl-gui-widget.png"
source: "widget.qml"
}
ConfigCategory {
name: i18n("Appearance")
icon: "preferences-desktop-theme"
source: "appearance.qml"
}
ConfigCategory {
name: i18n("DataEngine")
icon: "/usr/share/pixmaps/netctl-gui-widget.png"
source: "dataengine.qml"
}
ConfigCategory {
name: i18n("About")
icon: "help-about"
source: "about.qml"
}
}

View File

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
<kcfgfile name=""/>
<group name="Widget">
<!-- widget -->
<entry name="autoUpdateInterval" type="int">
<default>100</default>
</entry>
<entry name="guiPath" type="string">
<default>/usr/bin/netctl-gui</default>
</entry>
<entry name="helperPath" type="string">
<default>/usr/bin/netctlgui-helper</default>
</entry>
<entry name="netctlPath" type="string">
<default>/usr/bin/netctl</default>
</entry>
<entry name="netctlAutoPath" type="string">
<default>/usr/bin/netctl-auto</default>
</entry>
<entry name="sudoPath" type="string">
<default>/usr/bin/kdesu</default>
</entry>
<entry name="wifiPath" type="string">
<default>/usr/bin/netctl-gui -t 3</default>
</entry>
<entry name="useHelper" type="bool">
<default>true</default>
</entry>
<entry name="useSudo" type="bool">
<default>true</default>
</entry>
<entry name="useWifi" type="bool">
<default>false</default>
</entry>
<entry name="textPattern" type="string">
<default>$info
IPv4: $intip4
IPv6: $intip6</default>
</entry>
</group>
<group name="Appearance">
<!-- appearance -->
<entry name="textAlign" type="string">
<default>center</default>
</entry>
<entry name="fontFamily" type="string">
<default>Terminus</default>
</entry>
<entry name="fontSize" type="int">
<default>12</default>
</entry>
<entry name="fontColor" type="string">
<default>#000000</default>
</entry>
<entry name="fontWeight" type="string">
<default>normal</default>
</entry>
<entry name="fontStyle" type="string">
<default>normal</default>
</entry>
<entry name="activeIconPath" type="string">
<default>/usr/share/icons/hicolor/64x64/apps/netctl-idle.png</default>
</entry>
<entry name="inactiveIconPath" type="string">
<default>/usr/share/icons/hicolor/64x64/apps/netctl-offline.png</default>
</entry>
</group>
</kcfg>

View File

@ -0,0 +1,97 @@
/***************************************************************************
* This file is part of netctl-gui *
* *
* netctl-gui is free software: you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation, either version 3 of the *
* License, or (at your option) any later version. *
* *
* netctl-gui is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with netctl-gui. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
import QtQuick 2.0
import QtQuick.Controls 1.3 as QtControls
import QtQuick.Layouts 1.0 as QtLayouts
import org.kde.plasma.private.netctl 1.0
Item {
id: aboutPage
width: childrenRect.width
height: childrenRect.height
implicitWidth: pageColumn.implicitWidth
implicitHeight: pageColumn.implicitHeight
property bool debug: NetctlAdds.isDebugEnabled()
Column {
id: pageColumn
width: units.gridUnit * 25
QtControls.TabView {
height: parent.height
width: parent.width
QtControls.Tab {
title: i18n("About")
QtLayouts.ColumnLayout {
QtControls.Label {
QtLayouts.Layout.fillWidth: true
horizontalAlignment: Text.AlignHCenter
text: NetctlAdds.getAboutText("header")
}
QtControls.Label {
QtLayouts.Layout.fillWidth: true
horizontalAlignment: Text.AlignJustify
text: NetctlAdds.getAboutText("description")
}
QtControls.Label {
QtLayouts.Layout.fillWidth: true
horizontalAlignment: Text.AlignLeft
textFormat: Text.RichText
text: NetctlAdds.getAboutText("links")
}
QtControls.Label {
QtLayouts.Layout.fillWidth: true
font.capitalization: Font.SmallCaps
horizontalAlignment: Text.AlignHCenter
textFormat: Text.RichText
text: NetctlAdds.getAboutText("copy")
}
}
}
QtControls.Tab {
title: i18n("Acknowledgment")
QtLayouts.ColumnLayout {
QtControls.Label {
QtLayouts.Layout.fillWidth: true
horizontalAlignment: Text.AlignJustify
text: NetctlAdds.getAboutText("translators")
}
QtControls.Label {
QtLayouts.Layout.fillWidth: true
horizontalAlignment: Text.AlignJustify
textFormat: Text.RichText
text: NetctlAdds.getAboutText("3rdparty")
}
}
}
}
}
Component.onCompleted: {
if (debug) console.log("[about::onCompleted]")
}
}

View File

@ -0,0 +1,331 @@
/***************************************************************************
* This file is part of netctl-gui *
* *
* netctl-gui is free software: you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation, either version 3 of the *
* License, or (at your option) any later version. *
* *
* netctl-gui is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with netctl-gui. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
import QtQuick 2.0
import QtQuick.Controls 1.3 as QtControls
import QtQuick.Controls.Styles 1.3 as QtStyles
import QtQuick.Dialogs 1.1 as QtDialogs
import QtQuick.Layouts 1.0 as QtLayouts
import org.kde.plasma.private.netctl 1.0
Item {
id: appearancePage
width: childrenRect.width
height: childrenRect.height
implicitWidth: pageColumn.implicitWidth
implicitHeight: pageColumn.implicitHeight
property bool debug: NetctlAdds.isDebugEnabled()
property variant weight: {
25: 0,
50: 1,
63: 3,
75: 4,
87: 5
}
property string cfg_textAlign: textAlign.currentText
property alias cfg_fontFamily: selectFont.text
property alias cfg_fontSize: fontSize.value
property string cfg_fontWeight: fontWeight.currentText
property string cfg_fontStyle: fontStyle.currentText
property alias cfg_fontColor: selectColor.text
property alias cfg_activeIconPath: activeIcon.text
property alias cfg_inactiveIconPath: inactiveIcon.text
Column {
id: pageColumn
width: units.gridUnit * 25
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width / 3
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Text align")
}
QtControls.ComboBox {
id: textAlign
width: parent.width * 2 / 3
textRole: "label"
model: [
{
'label': i18n("center"),
'name': "center"
},
{
'label': i18n("right"),
'name': "right"
},
{
'label': i18n("left"),
'name': "left"
},
{
'label': i18n("justify"),
'name': "justify"
}
]
onCurrentIndexChanged: cfg_textAlign = model[currentIndex]["name"]
Component.onCompleted: {
for (var i = 0; i < model.length; i++) {
if (model[i]["name"] == plasmoid.configuration.textAlign) {
textAlign.currentIndex = i;
}
}
}
}
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width / 3
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Font")
}
QtControls.Button {
id: selectFont
width: parent.width * 2 / 3
text: plasmoid.configuration.fontFamily
onClicked: fontDialog.visible = true
}
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width / 3
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Font size")
}
QtControls.SpinBox {
id: fontSize
width: parent.width * 2 / 3
minimumValue: 8
maximumValue: 32
stepSize: 1
value: plasmoid.configuration.fontSize
}
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width / 3
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Font weight")
}
QtControls.ComboBox {
id: fontWeight
width: parent.width * 2 / 3
textRole: "label"
model: [
{
'label': i18n("light"),
'name': "light"
},
{
'label': i18n("normal"),
'name': "normal"
},
{
'label': i18n("demi bold"),
'name': "demibold"
},
{
'label': i18n("bold"),
'name': "bold"
},
{
'label': i18n("black"),
'name': "black"
}
]
onCurrentIndexChanged: cfg_fontWeight = model[currentIndex]["name"]
Component.onCompleted: {
for (var i = 0; i < model.length; i++) {
if (model[i]["name"] == plasmoid.configuration.fontWeight) {
fontWeight.currentIndex = i;
}
}
}
}
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width / 3
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Font style")
}
QtControls.ComboBox {
id: fontStyle
width: parent.width * 2 / 3
textRole: "label"
model: [
{
'label': i18n("normal"),
'name': "normal"
},
{
'label': i18n("italic"),
'name': "italic"
}
]
onCurrentIndexChanged: cfg_fontStyle = model[currentIndex]["name"]
Component.onCompleted: {
for (var i = 0; i < model.length; i++) {
if (model[i]["name"] == plasmoid.configuration.fontStyle) {
fontStyle.currentIndex = i;
}
}
}
}
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width / 3
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Font color")
}
QtControls.Button {
id: selectColor
width: parent.width * 2 / 3
style: QtStyles.ButtonStyle {
background: Rectangle {
color: plasmoid.configuration.fontColor
}
}
text: plasmoid.configuration.fontColor
onClicked: colorDialog.visible = true
}
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width / 3
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Active icon")
}
QtControls.TextField {
id: activeIcon
height: parent.height
width: parent.width * 2 / 3 - activeIconButton.width
text: plasmoid.configuration.activeIconPath
}
QtControls.Button {
id: activeIconButton
text: i18n("Browse")
onClicked: activeFileDialog.visible = true
}
QtDialogs.FileDialog {
id: activeFileDialog
modality: Qt.NonModal
title: i18n("Select a path")
nameFilters: [ "Image files (*.jpeg *.jpg *.png)", "All files (*)" ]
selectExisting: true
onAccepted: activeIcon.text = activeFileDialog.fileUrl
}
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width / 3
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Inactive icon")
}
QtControls.TextField {
id: inactiveIcon
height: parent.height
width: parent.width * 2 / 3 - inactiveIconButton.width
text: plasmoid.configuration.inactiveIconPath
}
QtControls.Button {
id: inactiveIconButton
text: i18n("Browse")
onClicked: inactiveFileDialog.visible = true
}
QtDialogs.FileDialog {
id: inactiveFileDialog
modality: Qt.NonModal
title: i18n("Select a path")
nameFilters: [ "Image files (*.jpeg *.jpg *.png)", "All files (*)" ]
selectExisting: true
onAccepted: inactiveIcon.text = inactiveFileDialog.fileUrl
}
}
}
QtDialogs.ColorDialog {
id: colorDialog
title: i18n("Select a color")
color: selectColor.text
onAccepted: {
selectColor.text = colorDialog.color
}
}
QtDialogs.FontDialog {
id: fontDialog
title: i18n("Select a font")
font: Qt.font({ family: selectFont.text, pointSize: fontSize.value, weight: Font.Normal })
onAccepted: {
selectFont.text = fontDialog.font.family
fontSize.value = fontDialog.font.pointSize
fontStyle.currentIndex = fontDialog.font.italic ? 1 : 0
fontWeight.currentIndex = weight[fontDialog.font.weight]
}
}
Component.onCompleted: {
if (debug) console.log("[about::onCompleted]")
}
}

View File

@ -0,0 +1,233 @@
/***************************************************************************
* This file is part of netctl-gui *
* *
* netctl-gui is free software: you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation, either version 3 of the *
* License, or (at your option) any later version. *
* *
* netctl-gui is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with netctl-gui. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
import QtQuick 2.0
import QtQuick.Controls 1.0 as QtControls
import QtQuick.Dialogs 1.1 as QtDialogs
import QtQuick.Layouts 1.0 as QtLayouts
import QtQuick.Controls.Styles 1.3 as QtStyles
import org.kde.plasma.private.netctl 1.0
Item {
id: dataenginePage
width: childrenRect.width
height: childrenRect.height
implicitWidth: pageColumn.implicitWidth
implicitHeight: pageColumn.implicitHeight
property bool debug: NetctlAdds.isDebugEnabled()
property variant cfg_dataengine: NetctlAdds.readDataEngineConfiguration()
Column {
id: pageColumn
width: units.gridUnit * 25
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width * 2 / 5
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Path to netctl")
}
QtControls.TextField {
id: netctlPath
height: parent.height
width: parent.width * 3 / 5 - netctlPathButton.width
text: cfg_dataengine["NETCTLCMD"]
}
QtControls.Button {
id: netctlPathButton
text: i18n("Browse")
onClicked: netctlFileDialog.visible = true
}
QtDialogs.FileDialog {
id: netctlFileDialog
modality: Qt.NonModal
title: i18n("Select a path")
folder: "/usr/bin"
nameFilters: [ "All files (*)" ]
selectExisting: true
onAccepted: netctlPath.text = netctlFileDialog.fileUrl
}
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width * 2 / 5
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Path to netctl-auto")
}
QtControls.TextField {
id: netctlAutoPath
height: parent.height
width: parent.width * 3 / 5 - netctlAutoPathButton.width
text: cfg_dataengine["NETCTLAUTOCMD"]
}
QtControls.Button {
id: netctlAutoPathButton
text: i18n("Browse")
onClicked: netctlAutoFileDialog.visible = true
}
QtDialogs.FileDialog {
id: netctlAutoFileDialog
modality: Qt.NonModal
title: i18n("Select a path")
folder: "/usr/bin"
nameFilters: [ "All files (*)" ]
selectExisting: true
onAccepted: netctlAutoPath.text = netctlAutoFileDialog.fileUrl
}
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width * 2 / 5 - extIp4.width
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Check external IPv4")
}
QtControls.CheckBox {
id: extIp4
height: parent.height
width: implicitWidth
checked: cfg_dataengine["EXTIP4"] == "true"
style: QtStyles.CheckBoxStyle {
indicator: Rectangle {
implicitWidth: 16
implicitHeight: 16
radius: 3
border.width: 1
border.color: control.activeFocus ? "darkblue" : "gray"
Rectangle {
visible: control.checked
radius: 1
anchors.fill: parent
anchors.margins: 4
color: "#555555"
border.color: "#333333"
}
}
}
}
QtControls.TextField {
id: extIp4Path
enabled: extIp4.checked
height: parent.height
width: parent.width * 3 / 5 - extIp4PathButton.width
text: cfg_dataengine["EXTIP4CMD"]
}
QtControls.Button {
id: extIp4PathButton
enabled: extIp4.checked
text: i18n("Browse")
onClicked: extIp4FileDialog.visible = true
}
QtDialogs.FileDialog {
id: extIp4FileDialog
modality: Qt.NonModal
title: i18n("Select a path")
folder: "/usr/bin"
nameFilters: [ "All files (*)" ]
selectExisting: true
onAccepted: extIp4Path.text = extIp4FileDialog.fileUrl
}
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width * 2 / 5 - extIp6.width
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Check external IPv6")
}
QtControls.CheckBox {
id: extIp6
height: parent.height
width: implicitWidth
checked: cfg_dataengine["EXTIP6"] == "true"
style: QtStyles.CheckBoxStyle {
indicator: Rectangle {
implicitWidth: 16
implicitHeight: 16
radius: 3
border.width: 1
border.color: control.activeFocus ? "darkblue" : "gray"
Rectangle {
visible: control.checked
radius: 1
anchors.fill: parent
anchors.margins: 4
color: "#555555"
border.color: "#333333"
}
}
}
}
QtControls.TextField {
id: extIp6Path
enabled: extIp6.checked
height: parent.height
width: parent.width * 3 / 5 - extIp6PathButton.width
text: cfg_dataengine["EXTIP6CMD"]
}
QtControls.Button {
id: extIp6PathButton
enabled: extIp6.checked
text: i18n("Browse")
onClicked: extIp6FileDialog.visible = true
}
QtDialogs.FileDialog {
id: extIp6FileDialog
modality: Qt.NonModal
title: i18n("Select a path")
folder: "/usr/bin"
nameFilters: [ "All files (*)" ]
selectExisting: true
onAccepted: extIp6Path.text = extIp6FileDialog.fileUrl
}
}
}
Component.onCompleted: {
if (debug) console.log("[about::onCompleted]")
}
Component.onDestruction: {
cfg_dataengine["EXTIP4"] = extIp4.checked ? "true" : "false"
cfg_dataengine["EXTIP6"] = extIp6.checked ? "true" : "false"
NetctlAdds.writeDataEngineConfiguration(cfg_dataengine)
}
}

View File

@ -0,0 +1,276 @@
/***************************************************************************
* This file is part of netctl-gui *
* *
* netctl-gui is free software: you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation, either version 3 of the *
* License, or (at your option) any later version. *
* *
* netctl-gui is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with netctl-gui. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
import QtQuick 2.4
import QtQuick.Controls 1.3 as QtControls
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.plasma.private.netctl 1.0
Item {
id: main
// variables
// internal
property bool debug: NetctlAdds.isDebugEnabled()
property variant fontWeight: {
"light": Font.Light,
"normal": Font.Normal,
"demibold": Font.DemiBold,
"bold": Font.Bold,
"black": Font.Black
}
property variant align: {
"left": Text.AlignLeft,
"center": Text.AlignHCenter,
"right": Text.AlignRight,
"justify": Text.AlignJustify
}
// external
property variant iconPath: {
"true": plasmoid.configuration.activeIconPath,
"false": plasmoid.configuration.inactiveIconPath
}
property variant info: {
"active": "false",
"current": "N\\A",
"extip4": "127.0.0.1",
"extip6": "::1",
"info": "N\\A",
"intip4": "127.0.0.1",
"intip6": "::1",
"interfaces": "lo",
"profiles": "",
"status": "N\\A"
}
property string pattern: plasmoid.configuration.textPattern
property bool status: false
property string sudoPath: plasmoid.configuration.useSudo ? plasmoid.configuration.sudoPath : ""
// signals
signal needUpdate
signal netctlStateChanged
// init
Plasmoid.icon: iconPath["false"]
Plasmoid.backgroundHints: "DefaultBackground"
Plasmoid.toolTipMainText: "Netctl"
Plasmoid.associatedApplication: plasmoid.configuration.guiPath
PlasmaCore.DataSource {
id: mainData
engine: "netctl"
connectedSources: ["active", "current", "extip4", "extip6", "interfaces", "intip4", "intip6", "profiles", "status"]
interval: plasmoid.configuration.autoUpdateInterval
onNewData: {
if (debug) console.log("[main::onNewData] : Update source " + sourceName)
var needToBeUpdated = false
if (data.value == "N\\A") return
if (info[sourceName] != data.value) needToBeUpdated = true
if (sourceName == "active") {
if (info[sourceName] != data.value)
// inverterd status
NetctlAdds.sendNotification("Info", i18n("Network status has been changed to '%1'",
status ? i18n("inactive") : i18n("active")))
status = data.value == "true"
} else if (sourceName == "current") {
info["info"] = NetctlAdds.getInfo(data.value, info["status"])
}
// update
info[sourceName] = data.value
if (needToBeUpdated) needUpdate()
}
}
// ui
Grid {
id: mainGrid
columns: 2
Image {
id: icon
source: iconPath["false"]
}
Text {
id: text
color: plasmoid.configuration.fontColor
font.family: plasmoid.configuration.fontFamily
font.italic: plasmoid.configuration.fontStyle == "italic" ? true : false
font.pointSize: plasmoid.configuration.fontSize
font.weight: fontWeight[plasmoid.configuration.fontWeight]
horizontalAlignment: align[plasmoid.configuration.textAlign]
textFormat: Text.RichText
text: "N\\A"
}
}
Component.onCompleted: {
if (debug) console.log("[main::onCompleted]")
// actions
plasmoid.setAction("titleAction", "netctl-gui", plasmoid.icon)
plasmoid.setAction("startProfile", i18n("Start profile"), "dialog-apply")
plasmoid.setAction("stopProfile", i18n("Stop profile"), "dialog-close")
plasmoid.setAction("stopAllProfiles", i18n("Stop all profiles"), "dialog-close")
plasmoid.setAction("switchToProfile", i18n("Switch to profile"))
plasmoid.setAction("restartProfile", i18n("Restart profile"), "stock-refresh")
plasmoid.setAction("enableProfile", i18n("Enable profile"))
plasmoid.setAction("startWifi", i18n("Show WiFi menu"), "image://netctl/wifi.png")
// helper
if (plasmoid.configuration.useHelper) {
NetctlAdds.runCmd(plasmoid.configuration.helperPath)
plasmoid.configuration.useHelper = NetctlAdds.checkHelperStatus()
}
}
onNeedUpdate: {
if (debug) console.log("[main::onNeedUpdate]")
icon.source = iconPath[info["active"]]
Plasmoid.icon = iconPath[info["active"]]
text.text = NetctlAdds.parsePattern(pattern, info)
Plasmoid.toolTipSubText = info["info"]
netctlStateChanged()
// updae geometry
text.update()
icon.height = text.contentHeight
icon.width = text.contentHeight
icon.update()
height = text.contentHeight
width = icon.paintedWidth + text.contentWidth
update()
}
onNetctlStateChanged: {
if (debug) console.log("[main::onNetctlStateChanged]")
var titleAction = plasmoid.action("titleAction")
var startAction = plasmoid.action("startProfile")
var stopAction = plasmoid.action("stopProfile")
var stopAllAction = plasmoid.action("stopAllProfiles")
var switchToAction = plasmoid.action("switchToProfile")
var restartAction = plasmoid.action("restartProfile")
var enableAction = plasmoid.action("enableProfile")
var wifiAction = plasmoid.action("startWifi")
titleAction.iconSource = plasmoid.icon
titleAction.text = info["current"] + " " + info["status"]
if (info["status"] == "(netctl-auto)") {
startAction.visible = false
stopAction.visible = false
stopAllAction.visible = false
switchToAction.visible = true
restartAction.visible = false
enableAction.visible = false
} else {
if (info["current"].indexOf("|") > -1) {
startAction.visible = true
stopAction.visible = false
stopAllAction.visible = true
switchToAction.visible = false
restartAction.visible = false
enableAction.visible = false
} else {
startAction.visible = true
stopAction.visible = status
stopAllAction.visible = false
switchToAction.visible = false
restartAction.visible = status
enableAction.visible = status
}
if (status) {
startAction.text = i18n("Start another profile")
stopAction.text = i18n("Stop %1", info["current"])
restartAction.text = i18n("Restart %1", info["current"])
if (info["status"].indexOf("enabled") > -1)
enableAction.text = i18n("Disable %1", info["current"])
else
enableAction.text = i18n("Enable %1", info["current"])
} else
startAction.text = i18n("Start profile")
}
wifiAction.visible = plasmoid.configuration.useWifi
}
function action_titleAction() {
if (debug) console.log("[main::action_titleAction]")
NetctlAdds.runCmd(plasmoid.configuration.guiPath)
}
function action_startProfile() {
if (debug) console.log("[main::action_startProfile]")
NetctlAdds.startProfileSlot(info["profiles"].split(","), status,
plasmoid.configuration.useHelper,
plasmoid.configuration.netctlPath,
sudoPath)
}
function action_stopProfile() {
if (debug) console.log("[main::action_stopProfile]")
NetctlAdds.stopProfileSlot(info, plasmoid.configuration.useHelper,
plasmoid.configuration.netctlPath,
sudoPath)
}
function action_stopAllProfiles() {
if (debug) console.log("[main::action_stopAllProfiles]")
NetctlAdds.stopAllProfilesSlot(plasmoid.configuration.useHelper,
plasmoid.configuration.netctlPath,
sudoPath)
}
function action_switchToProfile() {
if (debug) console.log("[main::action_switchToProfile]")
NetctlAdds.switchToProfileSlot(info["profiles"].split(","),
plasmoid.configuration.useHelper,
plasmoid.configuration.netctlAutoPath)
}
function action_restartProfile() {
if (debug) console.log("[main::action_restartProfile]")
NetctlAdds.restartProfileSlot(info, plasmoid.configuration.useHelper,
plasmoid.configuration.netctlPath,
sudoPath)
}
function action_enableProfile() {
if (debug) console.log("[main::action_enableProfile]")
NetctlAdds.enableProfileSlot(info, plasmoid.configuration.useHelper,
plasmoid.configuration.netctlPath,
sudoPath)
}
function action_startWifi() {
if (debug) console.log("[main::action_startWifi]")
NetctlAdds.runCmd(plasmoid.configuration.wifiPath)
}
}

View File

@ -0,0 +1,355 @@
/***************************************************************************
* This file is part of netctl-gui *
* *
* netctl-gui is free software: you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation, either version 3 of the *
* License, or (at your option) any later version. *
* *
* netctl-gui is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with netctl-gui. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
import QtQuick 2.0
import QtQuick.Controls 1.3 as QtControls
import QtQuick.Dialogs 1.1 as QtDialogs
import QtQuick.Layouts 1.0 as QtLayouts
import QtQuick.Controls.Styles 1.3 as QtStyles
import org.kde.plasma.private.netctl 1.0
Item {
id: widgetPage
width: childrenRect.width
height: childrenRect.height
implicitWidth: pageColumn.implicitWidth
implicitHeight: pageColumn.implicitHeight
property bool debug: NetctlAdds.isDebugEnabled()
property alias cfg_autoUpdateInterval: autoUpdate.value
property alias cfg_guiPath: guiPath.text
property alias cfg_useHelper: useHelper.checked
property alias cfg_helperPath: helperPath.text
property alias cfg_netctlPath: netctlPath.text
property alias cfg_netctlPathAuto: netctlAutoPath.text
property alias cfg_useSudo: useSudo.checked
property alias cfg_sudoPath: sudoPath.text
property alias cfg_useWifi: useWifi.checked
property alias cfg_wifiPath: wifiPath.text
property alias cfg_textPattern: textPattern.text
Column {
id: pageColumn
width: units.gridUnit * 25
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width * 2 / 5
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Auto update interval, msec")
}
QtControls.SpinBox {
id: autoUpdate
width: parent.width * 3 / 5
minimumValue: 1000
maximumValue: 10000
stepSize: 500
value: plasmoid.configuration.autoUpdateInterval
}
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width * 2 / 5
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Path to GUI")
}
QtControls.TextField {
id: guiPath
height: parent.height
width: parent.width * 3 / 5 - guiPathButton.width
text: plasmoid.configuration.guiPath
}
QtControls.Button {
id: guiPathButton
text: i18n("Browse")
onClicked: guiFileDialog.visible = true
}
QtDialogs.FileDialog {
id: guiFileDialog
modality: Qt.NonModal
title: i18n("Select a path")
folder: "/usr/bin"
nameFilters: [ "All files (*)" ]
selectExisting: true
onAccepted: guiPath.text = guiFileDialog.fileUrl
}
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width * 2 / 5 - useHelper.width
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Use helper")
}
QtControls.CheckBox {
id: useHelper
height: parent.height
width: implicitWidth
style: QtStyles.CheckBoxStyle {
indicator: Rectangle {
implicitWidth: 16
implicitHeight: 16
radius: 3
border.width: 1
border.color: control.activeFocus ? "darkblue" : "gray"
Rectangle {
visible: control.checked
radius: 1
anchors.fill: parent
anchors.margins: 4
color: "#555555"
border.color: "#333333"
}
}
}
}
QtControls.TextField {
id: helperPath
enabled: useHelper.checked
height: parent.height
width: parent.width * 3 / 5 - helperPathButton.width
text: plasmoid.configuration.helperPath
}
QtControls.Button {
id: helperPathButton
enabled: useHelper.checked
text: i18n("Browse")
onClicked: helperFileDialog.visible = true
}
QtDialogs.FileDialog {
id: helperFileDialog
title: i18n("Select a path")
folder: "/usr/bin"
nameFilters: [ "All files (*)" ]
selectExisting: true
onAccepted: helperPath.text = helperFileDialog.fileUrl
}
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width * 2 / 5
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Path to netctl")
}
QtControls.TextField {
id: netctlPath
enabled: !useHelper.checked
height: parent.height
width: parent.width * 3 / 5 - netctlPathButton.width
text: plasmoid.configuration.netctlPath
}
QtControls.Button {
id: netctlPathButton
enabled: !useHelper.checked
text: i18n("Browse")
onClicked: netctlFileDialog.visible = true
}
QtDialogs.FileDialog {
id: netctlFileDialog
modality: Qt.NonModal
title: i18n("Select a path")
folder: "/usr/bin"
nameFilters: [ "All files (*)" ]
selectExisting: true
onAccepted: netctlPath.text = netctlFileDialog.fileUrl
}
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width * 2 / 5
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Path to netctl-auto")
}
QtControls.TextField {
id: netctlAutoPath
enabled: !useHelper.checked
height: parent.height
width: parent.width * 3 / 5 - netctlAutoPathButton.width
text: plasmoid.configuration.netctlAutoPath
}
QtControls.Button {
id: netctlAutoPathButton
enabled: !useHelper.checked
text: i18n("Browse")
onClicked: netctlAutoFileDialog.visible = true
}
QtDialogs.FileDialog {
id: netctlAutoFileDialog
modality: Qt.NonModal
title: i18n("Select a path")
folder: "/usr/bin"
nameFilters: [ "All files (*)" ]
selectExisting: true
onAccepted: netctlAutoPath.text = netctlAutoFileDialog.fileUrl
}
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width * 2 / 5 - useSudo.width
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Use sudo for netctl")
}
QtControls.CheckBox {
id: useSudo
height: parent.height
width: implicitWidth
style: QtStyles.CheckBoxStyle {
indicator: Rectangle {
implicitWidth: 16
implicitHeight: 16
radius: 3
border.width: 1
border.color: control.activeFocus ? "darkblue" : "gray"
Rectangle {
visible: control.checked
radius: 1
anchors.fill: parent
anchors.margins: 4
color: "#555555"
border.color: "#333333"
}
}
}
}
QtControls.TextField {
id: sudoPath
enabled: useSudo.checked
height: parent.height
width: parent.width * 3 / 5 - sudoPathButton.width
text: plasmoid.configuration.sudoPath
}
QtControls.Button {
id: sudoPathButton
enabled: useSudo.checked
text: i18n("Browse")
onClicked: sudoFileDialog.visible = true
}
QtDialogs.FileDialog {
id: sudoFileDialog
modality: Qt.NonModal
title: i18n("Select a path")
folder: "/usr/bin"
nameFilters: [ "All files (*)" ]
selectExisting: true
onAccepted: sudoPath.text = sudoFileDialog.fileUrl
}
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width * 2 / 5 - useWifi.width
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Show 'Start WiFi menu'")
}
QtControls.CheckBox {
id: useWifi
height: parent.height
width: implicitWidth
style: QtStyles.CheckBoxStyle {
indicator: Rectangle {
implicitWidth: 16
implicitHeight: 16
radius: 3
border.width: 1
border.color: control.activeFocus ? "darkblue" : "gray"
Rectangle {
visible: control.checked
radius: 1
anchors.fill: parent
anchors.margins: 4
color: "#555555"
border.color: "#333333"
}
}
}
}
QtControls.TextField {
id: wifiPath
enabled: useWifi.checked
height: parent.height
width: parent.width * 3 / 5 - wifiPathButton.width
text: plasmoid.configuration.wifiPath
}
QtControls.Button {
id: wifiPathButton
enabled: useWifi.checked
text: i18n("Browse")
onClicked: wifiFileDialog.visible = true
}
QtDialogs.FileDialog {
id: wifiFileDialog
modality: Qt.NonModal
title: i18n("Select a path")
folder: "/usr/bin"
nameFilters: [ "All files (*)" ]
selectExisting: true
onAccepted: wifiPath.text = wifiFileDialog.fileUrl
}
}
QtControls.TextArea {
id: textPattern
width: parent.width
text: plasmoid.configuration.textPattern
}
}
Component.onCompleted: {
if (debug) console.log("[about::onCompleted]")
}
}

View File

@ -0,0 +1,22 @@
[Desktop Entry]
Encoding=UTF-8
Name=Netctl
Comment=Plasmoid for netctl
Type=Service
Icon=netctl-gui-widget
X-KDE-ServiceTypes=Plasma/Applet
X-Plasma-API=declarativeappletscript
X-Plasma-MainScript=ui/main.qml
X-Plasma-NotificationArea=true
X-Plasma-RemoteLocation=
X-KDE-PluginInfo-Author=Evgeniy Alekseev
X-KDE-PluginInfo-Email=esalexeev@gmail.com
X-KDE-PluginInfo-Name=org.kde.plasma.netctl
X-KDE-PluginInfo-Version=@PROJECT_VERSION@
X-KDE-PluginInfo-Website=http://arcanis.name/projects/netctl-gui
X-KDE-PluginInfo-Category=Network
X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=GPLv3
X-KDE-PluginInfo-EnabledByDefault=true

View File

@ -0,0 +1,35 @@
set (PLUGIN_NAME netctlplugin)
add_definitions (${Qt5Core_DEFINITIONS} ${Qt5DBus_DEFINITIONS} ${Qt5Qml_DEFINITIONS})
set (Qt_INCLUDE ${Qt5Core_INCLUDE_DIRS}
${Qt5DBus_INCLUDE_DIRS}
${Qt5Qml_INCLUDE_DIRS}
${Qt5Quick_INCLUDE_DIRS})
set (Qt_LIBRARIES ${Qt5Core_LIBRARIES}
${Qt5DBus_LIBRARIES}
${Qt5Qml_LIBRARIES}
${Qt5Quick_LIBRARIES})
set (Kf5_INCLUDE ${I18n_INCLUDE_DIR}
${Notifications_INCLUDE_DIR})
set (Kf5_LIBRARIES KF5::I18n
KF5::Notifications)
include_directories (${CMAKE_SOURCE_DIR}
${CMAKE_BINARY_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_BINARY_DIR}/../
${PROJECT_TRDPARTY_DIR}
${Qt_INCLUDE}
${Kf5_INCLUDE})
file (GLOB SUBPROJECT_SOURCE *.cpp)
file (GLOB SUBPROJECT_NOTIFY *.notifyrc)
set (RESOURCES ${PROJECT_RESOURCE_DIR}/resources-plasmoid.qrc)
qt5_add_resources (QRC_SOURCES ${RESOURCES})
add_library (${PLUGIN_NAME} SHARED ${SUBPROJECT_SOURCE} ${QRC_SOURCES})
target_link_libraries (${PLUGIN_NAME} ${Qt_LIBRARIES} ${Kf5_LIBRARIES})
install (TARGETS ${PLUGIN_NAME} DESTINATION ${QML_INSTALL_DIR}/org/kde/plasma/private/netctl)
install (FILES qmldir DESTINATION ${QML_INSTALL_DIR}/org/kde/plasma/private/netctl)
install (FILES ${SUBPROJECT_NOTIFY} DESTINATION ${KNOTIFYRC_INSTALL_DIR})

View File

@ -0,0 +1,46 @@
/***************************************************************************
* This file is part of netctl-gui *
* *
* netctl-gui is free software: you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation, either version 3 of the *
* License, or (at your option) any later version. *
* *
* netctl-gui is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with netctl-gui. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
#include <QtQml>
#include "netctl.h"
#include "netctladds.h"
static QObject *netctl_singletontype_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
{
Q_UNUSED(engine);
Q_UNUSED(scriptEngine);
return new NetctlAdds();
}
void NetctlPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
{
Q_UNUSED(uri);
engine->addImageProvider("netctl", new NetctlAddsIconProvider());
}
void NetctlPlugin::registerTypes(const char *uri)
{
Q_ASSERT(uri == QLatin1String("org.kde.plasma.private.netctl"));
qmlRegisterSingletonType<NetctlAdds>(uri, 1, 0, "NetctlAdds", netctl_singletontype_provider);
}

View File

@ -0,0 +1,38 @@
/***************************************************************************
* This file is part of netctl-gui *
* *
* netctl-gui is free software: you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation, either version 3 of the *
* License, or (at your option) any later version. *
* *
* netctl-gui is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with netctl-gui. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
#ifndef NETCTLPLUGIN_H
#define NETCTLPLUGIN_H
#include <QQmlExtensionPlugin>
class QQmlEngine;
class NetctlPlugin : public QQmlExtensionPlugin
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
public:
void initializeEngine(QQmlEngine *engine, const char *uri);
void registerTypes(const char *uri);
};
#endif /* NETCTLPLUGIN_H */

View File

@ -0,0 +1,371 @@
/***************************************************************************
* This file is part of netctl-gui *
* *
* netctl-gui is free software: you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation, either version 3 of the *
* License, or (at your option) any later version. *
* *
* netctl-gui is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with netctl-gui. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
#include <KI18n/KLocalizedString>
#include <KNotifications/KNotification>
#include <QDBusConnection>
#include <QDBusMessage>
#include <QDebug>
#include <QInputDialog>
#include <QProcessEnvironment>
#include <QSettings>
#include <QStandardPaths>
#include <pdebug/pdebug.h>
#include "netctladds.h"
#include "version.h"
NetctlAddsIconProvider::NetctlAddsIconProvider()
: QQuickImageProvider(QQmlImageProviderBase::Pixmap)
{
}
QPixmap NetctlAddsIconProvider::requestPixmap(const QString &id, QSize *size, const QSize &requestedSize)
{
Q_UNUSED(size);
Q_UNUSED(requestedSize);
return QPixmap(QString("qrc:/") + id);
}
NetctlAdds::NetctlAdds(QObject *parent)
: QObject(parent)
{
// debug
QProcessEnvironment environment = QProcessEnvironment::systemEnvironment();
QString debugEnv = environment.value(QString("DEBUG"), QString("no"));
debug = (debugEnv == QString("yes"));
}
NetctlAdds::~NetctlAdds()
{
if (debug) qDebug() << PDEBUG;
}
QList<QVariant> NetctlAdds::sendDBusRequest(const QString cmd, const QList<QVariant> args)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
if (debug) qDebug() << PDEBUG << ":" << "args" << args;
QDBusConnection bus = QDBusConnection::systemBus();
QDBusMessage request = QDBusMessage::createMethodCall(DBUS_HELPER_SERVICE, DBUS_CTRL_PATH,
DBUS_HELPER_INTERFACE, cmd);
if (!args.isEmpty())
request.setArguments(args);
QDBusMessage response = bus.call(request, QDBus::BlockWithGui);
QList<QVariant> arguments = response.arguments();
if (arguments.size() == 0)
if (debug) qDebug() << PDEBUG << ":" << "Error message" << response.errorMessage();
return arguments;
}
bool NetctlAdds::checkHelperStatus()
{
if (debug) qDebug() << PDEBUG;
return sendDBusRequest(QString("Active"), QList<QVariant>()).isEmpty();
}
QString NetctlAdds::getAboutText(const QString type)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Type" << type;
QString text;
if (type == QString("header"))
text = QString(NAME);
else if (type == QString("description"))
text = i18n("KDE widget which interacts with netctl.");
else if (type == QString("links"))
text = i18n("Links:") + QString("<br>") +
QString("<a href=\"%1\">%2</a><br>").arg(QString(HOMEPAGE)).arg(i18n("Homepage")) +
QString("<a href=\"%1\">%2</a><br>").arg(QString(REPOSITORY)).arg(i18n("Repository")) +
QString("<a href=\"%1\">%2</a><br>").arg(QString(BUGTRACKER)).arg(i18n("Bugtracker")) +
QString("<a href=\"%1\">%2</a><br>").arg(QString(TRANSLATION)).arg(i18n("Translation issue")) +
QString("<a href=\"%1\">%2</a>").arg(QString(AUR_PACKAGES)).arg(i18n("AUR packages"));
else if (type == QString("copy"))
text = QString("<small>&copy; %1 <a href=\"mailto:%2\">%3</a><br>").arg(QString(DATE)).arg(QString(EMAIL)).arg(QString(AUTHOR)) +
i18n("This software is licensed under %1", QString(LICENSE)) + QString("</small>");
else if (type == QString("translators"))
text = i18n("Translators: %1", QString(TRANSLATORS));
else if (type == QString("3rdparty")) {
QStringList trdPartyList = QString(TRDPARTY_LICENSE).split(QChar(';'), QString::SkipEmptyParts);
for (int i=0; i<trdPartyList.count(); i++)
trdPartyList[i] = QString("<a href=\"%3\">%1</a> (%2 license)")
.arg(trdPartyList[i].split(QChar(','))[0])
.arg(trdPartyList[i].split(QChar(','))[1])
.arg(trdPartyList[i].split(QChar(','))[2]);
text = i18n("This software uses: %1", trdPartyList.join(QString(", ")));
}
return text;
}
QString NetctlAdds::getInfo(const QString current, const QString status)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Current profiles" << current;
if (debug) qDebug() << PDEBUG << ":" << "Statuses" << status;
QStringList profiles;
for (int i=0; i<current.split(QChar('|')).count(); i++)
profiles.append(current.split(QChar('|'))[i] +
QString(" (") + status.split(QChar('|'))[i] + QString(")"));
if (profiles.isEmpty()) profiles.append(QString("N\\A"));
return profiles.join(QString(" | "));
}
bool NetctlAdds::isDebugEnabled()
{
if (debug) qDebug() << PDEBUG;
return debug;
}
QString NetctlAdds::parsePattern(const QString pattern, const QMap<QString, QVariant> dict)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Dictionary" << dict;
QString parsed = pattern;
for (int i=0; i<dict.keys().count(); i++)
parsed.replace(QString("$") + dict.keys()[i], dict[dict.keys()[i]].toString());
// fix newline
parsed.replace(QString("\n"), QString("<br>"));
return parsed;
}
void NetctlAdds::runCmd(const QString cmd)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Cmd" << cmd;
QProcess command;
sendNotification(QString("Info"), i18n("Run %1", cmd));
command.startDetached(cmd);
}
void NetctlAdds::sendNotification(const QString eventId, const QString message)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Event" << eventId;
if (debug) qDebug() << PDEBUG << ":" << "Message" << message;
KNotification *notification = KNotification::event(eventId, QString("Netctl ::: ") + eventId, message);
notification->setComponentName(QString("plasma-applet-org.kde.plasma.netctl"));
}
// context menu
void NetctlAdds::enableProfileSlot(const QMap<QString, QVariant> dict, const bool useHelper,
const QString cmd, const QString sudoCmd)
{
if (debug) qDebug() << PDEBUG;
QString enableStatus = QString("");
if (dict[QString("status")].toString().contains(QString("enabled"))) {
enableStatus = QString(" disable ");
sendNotification(QString("Info"), i18n("Set profile %1 disabled", dict[QString("current")].toString()));
} else {
enableStatus = QString(" enable ");
sendNotification(QString("Info"), i18n("Set profile %1 enabled", dict[QString("current")].toString()));
}
if (useHelper) {
QList<QVariant> args;
args.append(dict[QString("current")].toString());
sendDBusRequest(QString("Enable"), args);
} else {
QProcess command;
QString commandLine = sudoCmd + QString(" ") + cmd + enableStatus + dict[QString("current")].toString();
command.startDetached(commandLine);
}
}
void NetctlAdds::restartProfileSlot(const QMap<QString, QVariant> dict, const bool useHelper,
const QString cmd, const QString sudoCmd)
{
if (debug) qDebug() << PDEBUG;
sendNotification(QString("Info"), i18n("Restart profile %1", dict[QString("current")].toString()));
if (useHelper) {
QList<QVariant> args;
args.append(dict[QString("current")].toString());
sendDBusRequest(QString("Restart"), args);
} else {
QProcess command;
QString commandLine = sudoCmd + QString(" ") + cmd + QString(" restart ") + dict[QString("current")].toString();
command.startDetached(commandLine);
}
}
void NetctlAdds::startProfileSlot(const QStringList profiles, const bool status,
const bool useHelper, const QString cmd, const QString sudoCmd)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Profiles" << profiles;
bool ok;
QString profile = QInputDialog::getItem(0, i18n("Select profile"), i18n("Profile:"),
profiles, 0, false, &ok);
if (!ok || profile.isEmpty()) return;
sendNotification(QString("Info"), i18n("Start profile %1", profile));
if (useHelper) {
QList<QVariant> args;
args.append(profile);
if (status)
sendDBusRequest(QString("SwitchTo"), args);
else
sendDBusRequest(QString("Start"), args);
} else {
QProcess command;
QString commandLine = sudoCmd + QString(" ") + cmd;
if (status)
commandLine += QString(" switch-to ") + profile;
else
commandLine += QString(" start ") + profile;
command.startDetached(commandLine);
}
}
void NetctlAdds::stopProfileSlot(const QMap<QString, QVariant> dict, const bool useHelper,
const QString cmd, const QString sudoCmd)
{
if (debug) qDebug() << PDEBUG;
sendNotification(QString("Info"), i18n("Stop profile %1", dict[QString("current")].toString()));
if (useHelper) {
QList<QVariant> args;
args.append(dict[QString("current")].toString());
sendDBusRequest(QString("Start"), args);
} else {
QProcess command;
QString commandLine = sudoCmd + QString(" ") + cmd + QString(" stop ") + dict[QString("current")].toString();
command.startDetached(commandLine);
}
}
void NetctlAdds::stopAllProfilesSlot(const bool useHelper, const QString cmd, const QString sudoCmd)
{
if (debug) qDebug() << PDEBUG;
sendNotification(QString("Info"), i18n("Stop all profiles"));
if (useHelper)
sendDBusRequest(QString("StopAll"), QList<QVariant>());
else {
QProcess command;
QString commandLine = sudoCmd + QString(" ") + cmd + QString(" stop-all");
command.startDetached(commandLine);
}
}
void NetctlAdds::switchToProfileSlot(const QStringList profiles, const bool useHelper,
const QString cmd)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Profiles" << profiles;
bool ok;
QString profile = QInputDialog::getItem(0, i18n("Select profile"), i18n("Profile:"),
profiles, 0, false, &ok);
if (!ok || profile.isEmpty()) return;
sendNotification(QString("Info"), i18n("Switch to profile %1", profile));
if (useHelper) {
QList<QVariant> args;
args.append(profile);
sendDBusRequest(QString("autoStart"), args);
} else {
QProcess command;
QString commandLine = cmd + QString(" switch-to ") + profile;
command.startDetached(commandLine);
}
}
QMap<QString, QVariant> NetctlAdds::readDataEngineConfiguration()
{
if (debug) qDebug() << PDEBUG;
QMap<QString, QVariant> configuration;
QString fileName = QStandardPaths::locate(QStandardPaths::ConfigLocation, QString("plasma-dataengine-netctl.conf"));
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << fileName;
QSettings settings(fileName, QSettings::IniFormat);
settings.beginGroup(QString("Netctl commands"));
configuration[QString("NETCTLCMD")] = settings.value(QString("NETCTLCMD"), QString("/usr/bin/netctl"));
configuration[QString("NETCTLAUTOCMD")] = settings.value(QString("NETCTLAUTOCMD"), QString("/usr/bin/netctl-auto"));
settings.endGroup();
settings.beginGroup(QString("External IP"));
configuration[QString("EXTIP4")] = settings.value(QString("EXTIP4"), QString("false"));
configuration[QString("EXTIP4CMD")] = settings.value(QString("EXTIP4CMD"), QString("curl ip4.telize.com"));
configuration[QString("EXTIP6")] = settings.value(QString("EXTIP6"), QString("false"));
configuration[QString("EXTIP6CMD")] = settings.value(QString("EXTIP6CMD"), QString("curl ip6.telize.com"));
settings.endGroup();
return configuration;
}
void NetctlAdds::writeDataEngineConfiguration(const QMap<QString, QVariant> configuration)
{
if (debug) qDebug() << PDEBUG;
QString fileName = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + QString("/plasma-dataengine-netctl.conf");
QSettings settings(fileName, QSettings::IniFormat);
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << settings.fileName();
settings.beginGroup(QString("Netctl commands"));
settings.setValue(QString("NETCTLCMD"), configuration[QString("NETCTLCMD")].toString());
settings.setValue(QString("NETCTLAUTOCMD"), configuration[QString("NETCTLAUTOCMD")].toString());
settings.endGroup();
settings.beginGroup(QString("External IP"));
settings.setValue(QString("EXTIP4"), configuration[QString("EXTIP4")].toString());
settings.setValue(QString("EXTIP4CMD"), configuration[QString("EXTIP4CMD")].toString());
settings.setValue(QString("EXTIP6"), configuration[QString("EXTIP6")].toString());
settings.setValue(QString("EXTIP6CMD"), configuration[QString("EXTIP6CMD")].toString());
settings.endGroup();
settings.sync();
}

View File

@ -0,0 +1,86 @@
/***************************************************************************
* This file is part of netctl-gui *
* *
* netctl-gui is free software: you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation, either version 3 of the *
* License, or (at your option) any later version. *
* *
* netctl-gui is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with netctl-gui. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
#ifndef NETCTLADDS_H
#define NETCTLADDS_H
#include <QImage>
#include <QMap>
#include <QObject>
#include <QQuickImageProvider>
#include <QVariant>
class NetctlAddsIconProvider : public QQuickImageProvider
{
public:
NetctlAddsIconProvider();
virtual QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize);
};
class NetctlAdds : public QObject
{
Q_OBJECT
public:
NetctlAdds(QObject *parent = 0);
~NetctlAdds();
Q_INVOKABLE bool checkHelperStatus();
Q_INVOKABLE QString getAboutText(const QString type = "header");
Q_INVOKABLE QString getInfo(const QString current, const QString status);
Q_INVOKABLE bool isDebugEnabled();
Q_INVOKABLE QString parsePattern(const QString pattern, const QMap<QString, QVariant> dict);
Q_INVOKABLE void runCmd(const QString cmd);
Q_INVOKABLE void sendNotification(const QString eventId, const QString message);
// context menu
Q_INVOKABLE void enableProfileSlot(const QMap<QString, QVariant> dict,
const bool useHelper = true,
const QString cmd = QString("/usr/bin/netctl"),
const QString sudoCmd = QString(""));
Q_INVOKABLE void restartProfileSlot(const QMap<QString, QVariant> dict,
const bool useHelper = true,
const QString cmd = QString("/usr/bin/netctl"),
const QString sudoCmd = QString(""));
Q_INVOKABLE void startProfileSlot(const QStringList profiles, const bool status,
const bool useHelper = true,
const QString cmd = QString("/usr/bin/netctl"),
const QString sudoCmd = QString(""));
Q_INVOKABLE void stopProfileSlot(const QMap<QString, QVariant> dict,
const bool useHelper = true,
const QString cmd = QString("/usr/bin/netctl"),
const QString sudoCmd = QString(""));
Q_INVOKABLE void stopAllProfilesSlot(const bool useHelper = true,
const QString cmd = QString("/usr/bin/netctl"),
const QString sudoCmd = QString(""));
Q_INVOKABLE void switchToProfileSlot(const QStringList profiles,
const bool useHelper = true,
const QString cmd = QString("/usr/bin/netctl-auto"));
// dataengine
Q_INVOKABLE QMap<QString, QVariant> readDataEngineConfiguration();
Q_INVOKABLE void writeDataEngineConfiguration(const QMap<QString, QVariant> configuration);
private:
bool debug = false;
QList<QVariant> sendDBusRequest(const QString cmd, const QList<QVariant> args = QList<QVariant>());
};
#endif /* NETCTLADDS_H */

View File

@ -0,0 +1,14 @@
[Global]
IconName=netctl-gui-widget
Name=Netctl plasmoid
Comment=Netctl plasmoid popups
[Event/Error]
Name=Error
Comment=There is an error from netctl plasmoid
Action=Popup
[Event/Info]
Name=Information
Comment=There is an information from netctl plasmoid
Action=Popup

View File

@ -0,0 +1,3 @@
module org.kde.plasma.private.netctl
plugin netctlplugin

View File

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

View File

@ -1,24 +0,0 @@
find_package(KDE4 REQUIRED)
find_package(Gettext REQUIRED)
if (NOT GETTEXT_MSGFMT_EXECUTABLE)
message(FATAL_ERROR "Please install the msgfmt binary")
endif (NOT GETTEXT_MSGFMT_EXECUTABLE)
file (GLOB _po_files *.po)
set (_gmoFiles)
foreach (_current_PO_FILE ${_po_files})
get_filename_component (_lang ${_current_PO_FILE} NAME_WE)
set (_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo)
add_custom_command (OUTPUT ${_gmoFile}
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_current_PO_FILE}
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
DEPENDS ${_current_PO_FILE}
)
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo DESTINATION ${LOCALE_INSTALL_DIR}/${_lang}/LC_MESSAGES/ RENAME plasma_applet_netctl.mo)
list (APPEND _gmoFiles ${_gmoFile})
endforeach (_current_PO_FILE)
add_custom_target (pofiles ALL DEPENDS ${_gmoFiles})

View File

@ -1,448 +0,0 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/netctl-gui/issues\n"
"POT-Creation-Date: 2014-08-24 16:44+0400\n"
"PO-Revision-Date: 2014-08-20 12:00+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Lokalize 1.5\n"
#: netctl.cpp:270
msgid "Set profile %1 disabled"
msgstr "Set profile %1 disabled"
#: netctl.cpp:273
msgid "Set profile %1 enabled"
msgstr "Set profile %1 enabled"
#: netctl.cpp:294
msgid "Restart profile %1"
msgstr "Restart profile %1"
#: netctl.cpp:315
msgid "Start profile %1"
msgstr "Start profile %1"
#: netctl.cpp:341
msgid "Stop profile %1"
msgstr "Stop profile %1"
#: netctl.cpp:361 netctl.cpp:499
msgid "Stop all profiles"
msgstr "Stop all profiles"
#: netctl.cpp:381
msgid "Switch to profile %1"
msgstr "Switch to profile %1"
#: netctl.cpp:454
msgid "Start another profile"
msgstr "Start another profile"
#: netctl.cpp:455
msgid "Stop %1"
msgstr "Stop %1"
#: netctl.cpp:456
msgid "Restart %1"
msgstr "Restart %1"
#: netctl.cpp:458
msgid "Disable %1"
msgstr "Disable %1"
#: netctl.cpp:460
msgid "Enable %1"
msgstr "Enable %1"
#: netctl.cpp:463 netctl.cpp:486
msgid "Start profile"
msgstr "Start profile"
#: netctl.cpp:494
msgid "Stop profile"
msgstr "Stop profile"
#: netctl.cpp:504
msgid "Switch to profile"
msgstr "Switch to profile"
#: netctl.cpp:512
msgid "Restart profile"
msgstr "Restart profile"
#: netctl.cpp:517
msgid "Enable profile"
msgstr "Enable profile"
#: netctl.cpp:521
msgid "Show netctl-gui"
msgstr "Show netctl-gui"
#: netctl.cpp:526
msgid "Show WiFi menu"
msgstr "Show WiFi menu"
#: netctl.cpp:553
msgid "Start GUI"
msgstr "Start GUI"
#: netctl.cpp:564
msgid "Start WiFi menu"
msgstr "Start WiFi menu"
#: netctl.cpp:604
msgid "Network is up"
msgstr "Network is up"
#: netctl.cpp:608
msgid "Network is down"
msgstr "Network is down"
#: netctl.cpp:798
msgid ""
"Version %1\n"
"(build date %2)"
msgstr ""
"Version %1\n"
"(build date %2)"
#: netctl.cpp:799
msgid "KDE widget which interacts with netctl."
msgstr "KDE widget which interacts with netctl."
#: netctl.cpp:800
msgid "Links:"
msgstr "Links:"
#: netctl.cpp:801
msgid "Homepage"
msgstr "Homepage"
#: netctl.cpp:802
msgid "Repository"
msgstr "Repository"
#: netctl.cpp:803
msgid "Bugtracker"
msgstr "Bugtracker"
#: netctl.cpp:804
msgid "Translation issue"
msgstr "Translation issue"
#: netctl.cpp:805
msgid "AUR packages"
msgstr "AUR packages"
#: netctl.cpp:807
msgid "This software is licensed under %1"
msgstr "This software is licensed under %1"
#: netctl.cpp:815
msgid "Translators: %1"
msgstr "Translators: %1"
#: netctl.cpp:816
msgid "This software uses: %1"
msgstr "This software uses: %1"
#: netctl.cpp:818
msgid "Netctl plasmoid"
msgstr "Netctl plasmoid"
#: netctl.cpp:819
msgid "Appearance"
msgstr "Appearance"
#: netctl.cpp:820
msgid "DataEngine"
msgstr "DataEngine"
#: netctl.cpp:821
msgid "About"
msgstr "About"
#. i18n: file: appearance.ui:47
#. i18n: ectx: property (text), widget (QLabel, label_inactiveIcon)
#: po/rc.cpp:3 rc.cpp:3
msgid "Inactive icon"
msgstr "Inactive icon"
#. i18n: file: appearance.ui:63
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
#. i18n: file: appearance.ui:391
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
#. i18n: file: dataengine.ui:50
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: dataengine.ui:83
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: dataengine.ui:119
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp4)
#. i18n: file: dataengine.ui:155
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp6)
#. i18n: file: widget.ui:108
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
#. i18n: file: widget.ui:144
#. i18n: ectx: property (text), widget (QPushButton, pushButton_helper)
#. i18n: file: widget.ui:177
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: widget.ui:210
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: widget.ui:246
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
#. i18n: file: widget.ui:282
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
#. i18n: file: appearance.ui:63
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
#. i18n: file: appearance.ui:391
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
#. i18n: file: dataengine.ui:50
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: dataengine.ui:83
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: dataengine.ui:119
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp4)
#. i18n: file: dataengine.ui:155
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp6)
#. i18n: file: widget.ui:108
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
#. i18n: file: widget.ui:144
#. i18n: ectx: property (text), widget (QPushButton, pushButton_helper)
#. i18n: file: widget.ui:177
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: widget.ui:210
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: widget.ui:246
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
#. i18n: file: widget.ui:282
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
#: po/rc.cpp:6 po/rc.cpp:42 po/rc.cpp:54 po/rc.cpp:60 po/rc.cpp:66
#: po/rc.cpp:72 po/rc.cpp:81 po/rc.cpp:87 po/rc.cpp:93 po/rc.cpp:99
#: po/rc.cpp:105 po/rc.cpp:111 rc.cpp:6 rc.cpp:42 rc.cpp:54 rc.cpp:60
#: rc.cpp:66 rc.cpp:72 rc.cpp:81 rc.cpp:87 rc.cpp:93 rc.cpp:99 rc.cpp:105
#: rc.cpp:111
msgid "Browse"
msgstr "Browse"
#. i18n: file: appearance.ui:80
#. i18n: ectx: property (text), widget (QLabel, label_fontColor)
#: po/rc.cpp:9 rc.cpp:9
msgid "Font color"
msgstr "Font color"
#. i18n: file: appearance.ui:112
#. i18n: ectx: property (toolTip), widget (KColorCombo, kcolorcombo_fontColor)
#: po/rc.cpp:12 rc.cpp:12
msgid "Set font color"
msgstr "Set font color"
#. i18n: file: appearance.ui:142
#. i18n: ectx: property (text), widget (QLabel, label_fontSize)
#: po/rc.cpp:15 rc.cpp:15
msgid "Font size"
msgstr "Font size"
#. i18n: file: appearance.ui:174
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontSize)
#: po/rc.cpp:18 rc.cpp:18
msgid "Set font size"
msgstr "Set font size"
#. i18n: file: appearance.ui:203
#. i18n: ectx: property (text), widget (QLabel, label_fontWeight)
#: po/rc.cpp:21 rc.cpp:21
msgid "Font weight"
msgstr "Font weight"
#. i18n: file: appearance.ui:235
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontWeight)
#: po/rc.cpp:24 rc.cpp:24
msgid "Set font weight"
msgstr "Set font weight"
#. i18n: file: appearance.ui:267
#. i18n: ectx: property (text), widget (QLabel, label_fontStyle)
#: po/rc.cpp:27 rc.cpp:27
msgid "Font style"
msgstr "Font style"
#. i18n: file: appearance.ui:299
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_fontStyle)
#: po/rc.cpp:30 rc.cpp:30
msgid "Set font style"
msgstr "Set font style"
#. i18n: file: appearance.ui:326
#. i18n: ectx: property (text), widget (QLabel, label_font)
#: po/rc.cpp:33 rc.cpp:33
msgid "Font"
msgstr "Font"
#. i18n: file: appearance.ui:358
#. i18n: ectx: property (toolTip), widget (QFontComboBox, fontComboBox_font)
#: po/rc.cpp:36 rc.cpp:36
msgid "Set font family"
msgstr "Set font family"
#. i18n: file: appearance.ui:375
#. i18n: ectx: property (text), widget (QLabel, label_activeIcon)
#: po/rc.cpp:39 rc.cpp:39
msgid "Active icon"
msgstr "Active icon"
#. i18n: file: appearance.ui:408
#. i18n: ectx: property (text), widget (QLabel, label_textAlign)
#: po/rc.cpp:45 rc.cpp:45
msgid "Text align"
msgstr "Text align"
#. i18n: file: appearance.ui:440
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_textAlign)
#: po/rc.cpp:48 rc.cpp:48
msgid "Set text align"
msgstr "Set text align"
#. i18n: file: dataengine.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#. i18n: file: widget.ui:161
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#. i18n: file: dataengine.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#. i18n: file: widget.ui:161
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#: po/rc.cpp:51 po/rc.cpp:90 rc.cpp:51 rc.cpp:90
msgid "Path to netctl"
msgstr "Path to netctl"
#. i18n: file: dataengine.ui:67
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#. i18n: file: widget.ui:194
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#. i18n: file: dataengine.ui:67
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#. i18n: file: widget.ui:194
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#: po/rc.cpp:57 po/rc.cpp:96 rc.cpp:57 rc.cpp:96
msgid "Path to netctl-auto"
msgstr "Path to netctl-auto"
#. i18n: file: dataengine.ui:100
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_extIp4)
#: po/rc.cpp:63 rc.cpp:63
msgid "Check external IPv4"
msgstr "Check external IPv4"
#. i18n: file: dataengine.ui:136
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_extIp6)
#: po/rc.cpp:69 rc.cpp:69
msgid "Check external IPv6"
msgstr "Check external IPv6"
#. i18n: file: widget.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_autoUpdate)
#: po/rc.cpp:75 rc.cpp:75
msgid "Auto update interval, msec"
msgstr "Auto update interval, msec"
#. i18n: file: widget.ui:92
#. i18n: ectx: property (text), widget (QLabel, label_gui)
#: po/rc.cpp:78 rc.cpp:78
msgid "Path to GUI"
msgstr "Path to GUI"
#. i18n: file: widget.ui:125
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_helper)
#: po/rc.cpp:84 rc.cpp:84
msgid "Use helper"
msgstr "Use helper"
#. i18n: file: widget.ui:227
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_sudo)
#: po/rc.cpp:102 rc.cpp:102
msgid "Use sudo for netctl"
msgstr "Use sudo for netctl"
#. i18n: file: widget.ui:263
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_wifi)
#: po/rc.cpp:108 rc.cpp:108
msgid "Show 'Start WiFi menu'"
msgstr "Show 'Start WiFi menu'"
#. i18n: file: widget.ui:291
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showBigInterface)
#: po/rc.cpp:114 rc.cpp:114
msgid "Show more detailed interface"
msgstr "Show more detailed interface"
#. i18n: file: widget.ui:309
#. i18n: ectx: property (toolTip), widget (QPlainTextEdit, textEdit)
#: po/rc.cpp:117 rc.cpp:117
msgid ""
"$info - active profile information\n"
"$current - current profile name\n"
"$extip4 - external IPv4\n"
"$extip6 - external IPv6\n"
"$interfaces - list of the network interfaces\n"
"$intip4 - internal IPv4\n"
"$intip6 - internal IPv6\n"
"$profiles - list of the netctl profiles\n"
"$status - current profile status (static/enabled)"
msgstr ""
"$info - active profile information\n"
"$current - current profile name\n"
"$extip4 - external IPv4\n"
"$extip6 - external IPv6\n"
"$interfaces - list of the network interfaces\n"
"$intip4 - internal IPv4\n"
"$intip6 - internal IPv6\n"
"$profiles - list of the netctl profiles\n"
"$status - current profile status (static/enabled)"
#: po/rc.cpp:126 rc.cpp:126
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Evgeniy Alekseev"
#: po/rc.cpp:127 rc.cpp:127
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "esalexeev@gmail.com"
#~ msgid "Acknowledgement"
#~ msgstr "Acknowledgement"
#~ msgid "normal"
#~ msgstr "normal"
#~ msgid "italic"
#~ msgstr "italic"
#~ msgid "Path to ip"
#~ msgstr "Path to ip"
#~ msgid "Path to interface list"
#~ msgstr "Path to interface list"
#~ msgid "Show network devices"
#~ msgstr "Show network devices"
#~ msgid "Show external IP"
#~ msgstr "Show external IP"
#~ msgid "Show internal IP"
#~ msgstr "Show internal IP"
#~ msgid "Configuration"
#~ msgstr "Configuration"

View File

@ -1,422 +0,0 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# NOGISAKA Sadata <ngsksdt@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/netctl-gui/issues\n"
"POT-Creation-Date: 2014-08-24 16:44+0400\n"
"PO-Revision-Date: 2014-10-13 16:37+0900\n"
"Last-Translator: NOGISAKA Sadata <ngsksdt@gmail.com>\n"
"Language-Team: Japanese <kde-i18n-doc@kde.org>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Lokalize 1.5\n"
#: netctl.cpp:270
msgid "Set profile %1 disabled"
msgstr "プロファイル %1 を無効にする"
#: netctl.cpp:273
msgid "Set profile %1 enabled"
msgstr "プロファイル %1 を有効にする"
#: netctl.cpp:294
msgid "Restart profile %1"
msgstr "プロファイル %1 の利用を再開"
#: netctl.cpp:315
msgid "Start profile %1"
msgstr "プロファイル %1 の利用を開始"
#: netctl.cpp:341
msgid "Stop profile %1"
msgstr "プロファイル %1 の利用を停止する"
#: netctl.cpp:361 netctl.cpp:499
msgid "Stop all profiles"
msgstr "全てのプロファイルの利用を停止する"
#: netctl.cpp:381
msgid "Switch to profile %1"
msgstr "プロファイルを %1 へ切り替える"
#: netctl.cpp:454
msgid "Start another profile"
msgstr "他のプロファイルの利用を開始"
#: netctl.cpp:455
msgid "Stop %1"
msgstr "%1 を停止"
#: netctl.cpp:456
msgid "Restart %1"
msgstr "%1 を再開"
#: netctl.cpp:458
msgid "Disable %1"
msgstr "%1 を無効にする"
#: netctl.cpp:460
msgid "Enable %1"
msgstr "%1 を有効にする"
#: netctl.cpp:463 netctl.cpp:486
msgid "Start profile"
msgstr "プロファイルの利用を開始"
#: netctl.cpp:494
msgid "Stop profile"
msgstr "プロファイルの利用を停止する"
#: netctl.cpp:504
msgid "Switch to profile"
msgstr "プロファイルを切り替える"
#: netctl.cpp:512
msgid "Restart profile"
msgstr "プロファイルの利用を再開"
#: netctl.cpp:517
msgid "Enable profile"
msgstr "プロファイルを有効にする"
#: netctl.cpp:521
msgid "Show netctl-gui"
msgstr "netctl-gui を表示"
#: netctl.cpp:526
msgid "Show WiFi menu"
msgstr "WiFi メニューを表示"
#: netctl.cpp:553
msgid "Start GUI"
msgstr "GUI を開始"
#: netctl.cpp:564
msgid "Start WiFi menu"
msgstr "WiFi メニューを開始"
#: netctl.cpp:604
msgid "Network is up"
msgstr "ネットワークは有効です"
#: netctl.cpp:608
msgid "Network is down"
msgstr "ネットワークは無効です"
#: netctl.cpp:798
msgid ""
"Version %1\n"
"(build date %2)"
msgstr ""
"バージョン:%1\n"
"(ビルド日時:%2"
#: netctl.cpp:799
msgid "KDE widget which interacts with netctl."
msgstr "netctl と連携する KDE ウィジェット"
#: netctl.cpp:800
msgid "Links:"
msgstr "リンク:"
#: netctl.cpp:801
msgid "Homepage"
msgstr "ホームページ"
#: netctl.cpp:802
msgid "Repository"
msgstr "レポジトリ"
#: netctl.cpp:803
msgid "Bugtracker"
msgstr "バグトラッカ"
#: netctl.cpp:804
msgid "Translation issue"
msgstr "翻訳に関する issue"
#: netctl.cpp:805
msgid "AUR packages"
msgstr "AUR パッケージ"
#: netctl.cpp:807
msgid "This software is licensed under %1"
msgstr "このソフトウェアは %1 の下で許諾されます"
#: netctl.cpp:815
msgid "Translators: %1"
msgstr "翻訳者:%1"
#: netctl.cpp:816
msgid "This software uses: %1"
msgstr "このソフトウェアは次を利用しています:%1"
#: netctl.cpp:818
msgid "Netctl plasmoid"
msgstr "Netctl plasmoid"
#: netctl.cpp:819
msgid "Appearance"
msgstr "外観"
#: netctl.cpp:820
msgid "DataEngine"
msgstr "DataEngine"
#: netctl.cpp:821
msgid "About"
msgstr "概要"
#. i18n: file: appearance.ui:47
#. i18n: ectx: property (text), widget (QLabel, label_inactiveIcon)
#: po/rc.cpp:3 rc.cpp:3
msgid "Inactive icon"
msgstr "非アクティブ時のアイコン"
#. i18n: file: appearance.ui:63
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
#. i18n: file: appearance.ui:391
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
#. i18n: file: dataengine.ui:50
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: dataengine.ui:83
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: dataengine.ui:119
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp4)
#. i18n: file: dataengine.ui:155
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp6)
#. i18n: file: widget.ui:108
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
#. i18n: file: widget.ui:144
#. i18n: ectx: property (text), widget (QPushButton, pushButton_helper)
#. i18n: file: widget.ui:177
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: widget.ui:210
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: widget.ui:246
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
#. i18n: file: widget.ui:282
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
#. i18n: file: appearance.ui:63
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
#. i18n: file: appearance.ui:391
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
#. i18n: file: dataengine.ui:50
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: dataengine.ui:83
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: dataengine.ui:119
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp4)
#. i18n: file: dataengine.ui:155
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp6)
#. i18n: file: widget.ui:108
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
#. i18n: file: widget.ui:144
#. i18n: ectx: property (text), widget (QPushButton, pushButton_helper)
#. i18n: file: widget.ui:177
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: widget.ui:210
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: widget.ui:246
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
#. i18n: file: widget.ui:282
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
#: po/rc.cpp:6 po/rc.cpp:42 po/rc.cpp:54 po/rc.cpp:60 po/rc.cpp:66
#: po/rc.cpp:72 po/rc.cpp:81 po/rc.cpp:87 po/rc.cpp:93 po/rc.cpp:99
#: po/rc.cpp:105 po/rc.cpp:111 rc.cpp:6 rc.cpp:42 rc.cpp:54 rc.cpp:60
#: rc.cpp:66 rc.cpp:72 rc.cpp:81 rc.cpp:87 rc.cpp:93 rc.cpp:99 rc.cpp:105
#: rc.cpp:111
msgid "Browse"
msgstr "参照"
#. i18n: file: appearance.ui:80
#. i18n: ectx: property (text), widget (QLabel, label_fontColor)
#: po/rc.cpp:9 rc.cpp:9
msgid "Font color"
msgstr "フォントの色"
#. i18n: file: appearance.ui:112
#. i18n: ectx: property (toolTip), widget (KColorCombo, kcolorcombo_fontColor)
#: po/rc.cpp:12 rc.cpp:12
msgid "Set font color"
msgstr "フォントの色を設定する"
#. i18n: file: appearance.ui:142
#. i18n: ectx: property (text), widget (QLabel, label_fontSize)
#: po/rc.cpp:15 rc.cpp:15
msgid "Font size"
msgstr "フォントの大きさ"
#. i18n: file: appearance.ui:174
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontSize)
#: po/rc.cpp:18 rc.cpp:18
msgid "Set font size"
msgstr "フォントの大きさを設定する"
#. i18n: file: appearance.ui:203
#. i18n: ectx: property (text), widget (QLabel, label_fontWeight)
#: po/rc.cpp:21 rc.cpp:21
msgid "Font weight"
msgstr "フォントの太さ"
#. i18n: file: appearance.ui:235
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontWeight)
#: po/rc.cpp:24 rc.cpp:24
msgid "Set font weight"
msgstr "フォントの太さを設定する"
#. i18n: file: appearance.ui:267
#. i18n: ectx: property (text), widget (QLabel, label_fontStyle)
#: po/rc.cpp:27 rc.cpp:27
msgid "Font style"
msgstr "フォントの字形"
#. i18n: file: appearance.ui:299
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_fontStyle)
#: po/rc.cpp:30 rc.cpp:30
msgid "Set font style"
msgstr "フォントの字形を設定する"
#. i18n: file: appearance.ui:326
#. i18n: ectx: property (text), widget (QLabel, label_font)
#: po/rc.cpp:33 rc.cpp:33
msgid "Font"
msgstr "フォント"
#. i18n: file: appearance.ui:358
#. i18n: ectx: property (toolTip), widget (QFontComboBox, fontComboBox_font)
#: po/rc.cpp:36 rc.cpp:36
msgid "Set font family"
msgstr "フォントを設定する"
#. i18n: file: appearance.ui:375
#. i18n: ectx: property (text), widget (QLabel, label_activeIcon)
#: po/rc.cpp:39 rc.cpp:39
msgid "Active icon"
msgstr "アクティブ時のアイコン"
#. i18n: file: appearance.ui:408
#. i18n: ectx: property (text), widget (QLabel, label_textAlign)
#: po/rc.cpp:45 rc.cpp:45
msgid "Text align"
msgstr "テキストの位置"
#. i18n: file: appearance.ui:440
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_textAlign)
#: po/rc.cpp:48 rc.cpp:48
msgid "Set text align"
msgstr "テキストの位置を設定する"
#. i18n: file: dataengine.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#. i18n: file: widget.ui:161
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#. i18n: file: dataengine.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#. i18n: file: widget.ui:161
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#: po/rc.cpp:51 po/rc.cpp:90 rc.cpp:51 rc.cpp:90
msgid "Path to netctl"
msgstr "netctl へのパス"
#. i18n: file: dataengine.ui:67
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#. i18n: file: widget.ui:194
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#. i18n: file: dataengine.ui:67
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#. i18n: file: widget.ui:194
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#: po/rc.cpp:57 po/rc.cpp:96 rc.cpp:57 rc.cpp:96
msgid "Path to netctl-auto"
msgstr "netctl-auto へのパス"
#. i18n: file: dataengine.ui:100
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_extIp4)
#: po/rc.cpp:63 rc.cpp:63
msgid "Check external IPv4"
msgstr "外部 IPv4 アドレスを確認"
#. i18n: file: dataengine.ui:136
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_extIp6)
#: po/rc.cpp:69 rc.cpp:69
msgid "Check external IPv6"
msgstr "外部 IPv6 アドレスを確認"
#. i18n: file: widget.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_autoUpdate)
#: po/rc.cpp:75 rc.cpp:75
msgid "Auto update interval, msec"
msgstr "自動更新の間隔(ミリ秒)"
#. i18n: file: widget.ui:92
#. i18n: ectx: property (text), widget (QLabel, label_gui)
#: po/rc.cpp:78 rc.cpp:78
msgid "Path to GUI"
msgstr "GUIへのパス"
#. i18n: file: widget.ui:125
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_helper)
#: po/rc.cpp:84 rc.cpp:84
msgid "Use helper"
msgstr "ヘルパを使用する"
#. i18n: file: widget.ui:227
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_sudo)
#: po/rc.cpp:102 rc.cpp:102
msgid "Use sudo for netctl"
msgstr "netctl に対して sudo を使用する"
#. i18n: file: widget.ui:263
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_wifi)
#: po/rc.cpp:108 rc.cpp:108
msgid "Show 'Start WiFi menu'"
msgstr "「Wifi メニューの開始」を表示"
#. i18n: file: widget.ui:291
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showBigInterface)
#: po/rc.cpp:114 rc.cpp:114
msgid "Show more detailed interface"
msgstr "インターフェースについての詳細を表示"
#. i18n: file: widget.ui:309
#. i18n: ectx: property (toolTip), widget (QPlainTextEdit, textEdit)
#: po/rc.cpp:117 rc.cpp:117
msgid ""
"$info - active profile information\n"
"$current - current profile name\n"
"$extip4 - external IPv4\n"
"$extip6 - external IPv6\n"
"$interfaces - list of the network interfaces\n"
"$intip4 - internal IPv4\n"
"$intip6 - internal IPv6\n"
"$profiles - list of the netctl profiles\n"
"$status - current profile status (static/enabled)"
msgstr ""
"$info - アクティブなプロファイルの情報\n"
"$current - 現在利用中プロファイルの情報\n"
"$extip4 - 外部 IPv4 アドレス\n"
"$extip6 - 外部 IPv6 アドレス\n"
"$interfaces - ネットワークインターフェースの一覧\n"
"$intip4 - 内部 IPv4 アドレス\n"
"$intip6 - 内部 IPv6 アドレス\n"
"$profiles - プロファイルの一覧\n"
"$status - 現在のプロファイルの状態(静的/有効)"
#: po/rc.cpp:126 rc.cpp:126
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "NOGISAKA Sadata"
#: po/rc.cpp:127 rc.cpp:127
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "ngsksdt@gmail.com "

View File

@ -1,409 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/netctl-gui/issues\n"
"POT-Creation-Date: 2014-08-24 16:44+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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: netctl.cpp:270
msgid "Set profile %1 disabled"
msgstr ""
#: netctl.cpp:273
msgid "Set profile %1 enabled"
msgstr ""
#: netctl.cpp:294
msgid "Restart profile %1"
msgstr ""
#: netctl.cpp:315
msgid "Start profile %1"
msgstr ""
#: netctl.cpp:341
msgid "Stop profile %1"
msgstr ""
#: netctl.cpp:361 netctl.cpp:499
msgid "Stop all profiles"
msgstr ""
#: netctl.cpp:381
msgid "Switch to profile %1"
msgstr ""
#: netctl.cpp:454
msgid "Start another profile"
msgstr ""
#: netctl.cpp:455
msgid "Stop %1"
msgstr ""
#: netctl.cpp:456
msgid "Restart %1"
msgstr ""
#: netctl.cpp:458
msgid "Disable %1"
msgstr ""
#: netctl.cpp:460
msgid "Enable %1"
msgstr ""
#: netctl.cpp:463 netctl.cpp:486
msgid "Start profile"
msgstr ""
#: netctl.cpp:494
msgid "Stop profile"
msgstr ""
#: netctl.cpp:504
msgid "Switch to profile"
msgstr ""
#: netctl.cpp:512
msgid "Restart profile"
msgstr ""
#: netctl.cpp:517
msgid "Enable profile"
msgstr ""
#: netctl.cpp:521
msgid "Show netctl-gui"
msgstr ""
#: netctl.cpp:526
msgid "Show WiFi menu"
msgstr ""
#: netctl.cpp:553
msgid "Start GUI"
msgstr ""
#: netctl.cpp:564
msgid "Start WiFi menu"
msgstr ""
#: netctl.cpp:604
msgid "Network is up"
msgstr ""
#: netctl.cpp:608
msgid "Network is down"
msgstr ""
#: netctl.cpp:798
msgid ""
"Version %1\n"
"(build date %2)"
msgstr ""
#: netctl.cpp:799
msgid "KDE widget which interacts with netctl."
msgstr ""
#: netctl.cpp:800
msgid "Links:"
msgstr ""
#: netctl.cpp:801
msgid "Homepage"
msgstr ""
#: netctl.cpp:802
msgid "Repository"
msgstr ""
#: netctl.cpp:803
msgid "Bugtracker"
msgstr ""
#: netctl.cpp:804
msgid "Translation issue"
msgstr ""
#: netctl.cpp:805
msgid "AUR packages"
msgstr ""
#: netctl.cpp:807
msgid "This software is licensed under %1"
msgstr ""
#: netctl.cpp:815
msgid "Translators: %1"
msgstr ""
#: netctl.cpp:816
msgid "This software uses: %1"
msgstr ""
#: netctl.cpp:818
msgid "Netctl plasmoid"
msgstr ""
#: netctl.cpp:819
msgid "Appearance"
msgstr ""
#: netctl.cpp:820
msgid "DataEngine"
msgstr ""
#: netctl.cpp:821
msgid "About"
msgstr ""
#. i18n: file: appearance.ui:47
#. i18n: ectx: property (text), widget (QLabel, label_inactiveIcon)
#: po/rc.cpp:3 rc.cpp:3
msgid "Inactive icon"
msgstr ""
#. i18n: file: appearance.ui:63
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
#. i18n: file: appearance.ui:391
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
#. i18n: file: dataengine.ui:50
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: dataengine.ui:83
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: dataengine.ui:119
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp4)
#. i18n: file: dataengine.ui:155
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp6)
#. i18n: file: widget.ui:108
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
#. i18n: file: widget.ui:144
#. i18n: ectx: property (text), widget (QPushButton, pushButton_helper)
#. i18n: file: widget.ui:177
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: widget.ui:210
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: widget.ui:246
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
#. i18n: file: widget.ui:282
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
#. i18n: file: appearance.ui:63
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
#. i18n: file: appearance.ui:391
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
#. i18n: file: dataengine.ui:50
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: dataengine.ui:83
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: dataengine.ui:119
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp4)
#. i18n: file: dataengine.ui:155
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp6)
#. i18n: file: widget.ui:108
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
#. i18n: file: widget.ui:144
#. i18n: ectx: property (text), widget (QPushButton, pushButton_helper)
#. i18n: file: widget.ui:177
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: widget.ui:210
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: widget.ui:246
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
#. i18n: file: widget.ui:282
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
#: po/rc.cpp:6 po/rc.cpp:42 po/rc.cpp:54 po/rc.cpp:60 po/rc.cpp:66
#: po/rc.cpp:72 po/rc.cpp:81 po/rc.cpp:87 po/rc.cpp:93 po/rc.cpp:99
#: po/rc.cpp:105 po/rc.cpp:111 rc.cpp:6 rc.cpp:42 rc.cpp:54 rc.cpp:60
#: rc.cpp:66 rc.cpp:72 rc.cpp:81 rc.cpp:87 rc.cpp:93 rc.cpp:99 rc.cpp:105
#: rc.cpp:111
msgid "Browse"
msgstr ""
#. i18n: file: appearance.ui:80
#. i18n: ectx: property (text), widget (QLabel, label_fontColor)
#: po/rc.cpp:9 rc.cpp:9
msgid "Font color"
msgstr ""
#. i18n: file: appearance.ui:112
#. i18n: ectx: property (toolTip), widget (KColorCombo, kcolorcombo_fontColor)
#: po/rc.cpp:12 rc.cpp:12
msgid "Set font color"
msgstr ""
#. i18n: file: appearance.ui:142
#. i18n: ectx: property (text), widget (QLabel, label_fontSize)
#: po/rc.cpp:15 rc.cpp:15
msgid "Font size"
msgstr ""
#. i18n: file: appearance.ui:174
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontSize)
#: po/rc.cpp:18 rc.cpp:18
msgid "Set font size"
msgstr ""
#. i18n: file: appearance.ui:203
#. i18n: ectx: property (text), widget (QLabel, label_fontWeight)
#: po/rc.cpp:21 rc.cpp:21
msgid "Font weight"
msgstr ""
#. i18n: file: appearance.ui:235
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontWeight)
#: po/rc.cpp:24 rc.cpp:24
msgid "Set font weight"
msgstr ""
#. i18n: file: appearance.ui:267
#. i18n: ectx: property (text), widget (QLabel, label_fontStyle)
#: po/rc.cpp:27 rc.cpp:27
msgid "Font style"
msgstr ""
#. i18n: file: appearance.ui:299
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_fontStyle)
#: po/rc.cpp:30 rc.cpp:30
msgid "Set font style"
msgstr ""
#. i18n: file: appearance.ui:326
#. i18n: ectx: property (text), widget (QLabel, label_font)
#: po/rc.cpp:33 rc.cpp:33
msgid "Font"
msgstr ""
#. i18n: file: appearance.ui:358
#. i18n: ectx: property (toolTip), widget (QFontComboBox, fontComboBox_font)
#: po/rc.cpp:36 rc.cpp:36
msgid "Set font family"
msgstr ""
#. i18n: file: appearance.ui:375
#. i18n: ectx: property (text), widget (QLabel, label_activeIcon)
#: po/rc.cpp:39 rc.cpp:39
msgid "Active icon"
msgstr ""
#. i18n: file: appearance.ui:408
#. i18n: ectx: property (text), widget (QLabel, label_textAlign)
#: po/rc.cpp:45 rc.cpp:45
msgid "Text align"
msgstr ""
#. i18n: file: appearance.ui:440
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_textAlign)
#: po/rc.cpp:48 rc.cpp:48
msgid "Set text align"
msgstr ""
#. i18n: file: dataengine.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#. i18n: file: widget.ui:161
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#. i18n: file: dataengine.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#. i18n: file: widget.ui:161
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#: po/rc.cpp:51 po/rc.cpp:90 rc.cpp:51 rc.cpp:90
msgid "Path to netctl"
msgstr ""
#. i18n: file: dataengine.ui:67
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#. i18n: file: widget.ui:194
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#. i18n: file: dataengine.ui:67
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#. i18n: file: widget.ui:194
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#: po/rc.cpp:57 po/rc.cpp:96 rc.cpp:57 rc.cpp:96
msgid "Path to netctl-auto"
msgstr ""
#. i18n: file: dataengine.ui:100
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_extIp4)
#: po/rc.cpp:63 rc.cpp:63
msgid "Check external IPv4"
msgstr ""
#. i18n: file: dataengine.ui:136
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_extIp6)
#: po/rc.cpp:69 rc.cpp:69
msgid "Check external IPv6"
msgstr ""
#. i18n: file: widget.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_autoUpdate)
#: po/rc.cpp:75 rc.cpp:75
msgid "Auto update interval, msec"
msgstr ""
#. i18n: file: widget.ui:92
#. i18n: ectx: property (text), widget (QLabel, label_gui)
#: po/rc.cpp:78 rc.cpp:78
msgid "Path to GUI"
msgstr ""
#. i18n: file: widget.ui:125
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_helper)
#: po/rc.cpp:84 rc.cpp:84
msgid "Use helper"
msgstr ""
#. i18n: file: widget.ui:227
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_sudo)
#: po/rc.cpp:102 rc.cpp:102
msgid "Use sudo for netctl"
msgstr ""
#. i18n: file: widget.ui:263
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_wifi)
#: po/rc.cpp:108 rc.cpp:108
msgid "Show 'Start WiFi menu'"
msgstr ""
#. i18n: file: widget.ui:291
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showBigInterface)
#: po/rc.cpp:114 rc.cpp:114
msgid "Show more detailed interface"
msgstr ""
#. i18n: file: widget.ui:309
#. i18n: ectx: property (toolTip), widget (QPlainTextEdit, textEdit)
#: po/rc.cpp:117 rc.cpp:117
msgid ""
"$info - active profile information\n"
"$current - current profile name\n"
"$extip4 - external IPv4\n"
"$extip6 - external IPv6\n"
"$interfaces - list of the network interfaces\n"
"$intip4 - internal IPv4\n"
"$intip6 - internal IPv6\n"
"$profiles - list of the netctl profiles\n"
"$status - current profile status (static/enabled)"
msgstr ""
#: po/rc.cpp:126 rc.cpp:126
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr ""
#: po/rc.cpp:127 rc.cpp:127
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr ""

View File

@ -1,448 +0,0 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/netctl-gui/issues\n"
"POT-Creation-Date: 2014-08-24 16:44+0400\n"
"PO-Revision-Date: 2014-08-20 12:00+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Lokalize 1.5\n"
#: netctl.cpp:270
msgid "Set profile %1 disabled"
msgstr "Выключение автозагрузки профиля %1"
#: netctl.cpp:273
msgid "Set profile %1 enabled"
msgstr "Включение автозагрузки профиля %1"
#: netctl.cpp:294
msgid "Restart profile %1"
msgstr "Перезапуск профиля %1"
#: netctl.cpp:315
msgid "Start profile %1"
msgstr "Запуск профиля %1"
#: netctl.cpp:341
msgid "Stop profile %1"
msgstr "Остановка профиля %1"
#: netctl.cpp:361 netctl.cpp:499
msgid "Stop all profiles"
msgstr "Остановить все профили"
#: netctl.cpp:381
msgid "Switch to profile %1"
msgstr "Переключение на профиль %1"
#: netctl.cpp:454
msgid "Start another profile"
msgstr "Запустить другой профиль"
#: netctl.cpp:455
msgid "Stop %1"
msgstr "Остановить %1"
#: netctl.cpp:456
msgid "Restart %1"
msgstr "Перезапустить %1"
#: netctl.cpp:458
msgid "Disable %1"
msgstr "Отключить %1"
#: netctl.cpp:460
msgid "Enable %1"
msgstr "Включить %1"
#: netctl.cpp:463 netctl.cpp:486
msgid "Start profile"
msgstr "Запустить профиль"
#: netctl.cpp:494
msgid "Stop profile"
msgstr "Остановить профиль"
#: netctl.cpp:504
msgid "Switch to profile"
msgstr "Переключить профиль"
#: netctl.cpp:512
msgid "Restart profile"
msgstr "Перезапустить профиль"
#: netctl.cpp:517
msgid "Enable profile"
msgstr "Включить профиль"
#: netctl.cpp:521
msgid "Show netctl-gui"
msgstr "Показать netctl-gui"
#: netctl.cpp:526
msgid "Show WiFi menu"
msgstr "Запустить WiFi-menu"
#: netctl.cpp:553
msgid "Start GUI"
msgstr "Запуск GUI"
#: netctl.cpp:564
msgid "Start WiFi menu"
msgstr "Запуск WiFi-menu"
#: netctl.cpp:604
msgid "Network is up"
msgstr "Сеть работает"
#: netctl.cpp:608
msgid "Network is down"
msgstr "Сеть не работает"
#: netctl.cpp:798
msgid ""
"Version %1\n"
"(build date %2)"
msgstr ""
"Версия %1\n"
"(дата сборки %2)"
#: netctl.cpp:799
msgid "KDE widget which interacts with netctl."
msgstr "Виджет KDE, который взаимодействует с netctl."
#: netctl.cpp:800
msgid "Links:"
msgstr "Ссылки:"
#: netctl.cpp:801
msgid "Homepage"
msgstr "Домашняя страница"
#: netctl.cpp:802
msgid "Repository"
msgstr "Репозиторий"
#: netctl.cpp:803
msgid "Bugtracker"
msgstr "Багтрекер"
#: netctl.cpp:804
msgid "Translation issue"
msgstr "Тикет перевода"
#: netctl.cpp:805
msgid "AUR packages"
msgstr "Пакеты в AUR"
#: netctl.cpp:807
msgid "This software is licensed under %1"
msgstr "Данное приложение лицензировано под %1"
#: netctl.cpp:815
msgid "Translators: %1"
msgstr "Переводчики: %1"
#: netctl.cpp:816
msgid "This software uses: %1"
msgstr "Данное приложение использует: %1"
#: netctl.cpp:818
msgid "Netctl plasmoid"
msgstr "Netctl plasmoid"
#: netctl.cpp:819
msgid "Appearance"
msgstr "Внешний вид"
#: netctl.cpp:820
msgid "DataEngine"
msgstr "DataEngine"
#: netctl.cpp:821
msgid "About"
msgstr "О программе"
#. i18n: file: appearance.ui:47
#. i18n: ectx: property (text), widget (QLabel, label_inactiveIcon)
#: po/rc.cpp:3 rc.cpp:3
msgid "Inactive icon"
msgstr "Иконка неактивного подключения"
#. i18n: file: appearance.ui:63
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
#. i18n: file: appearance.ui:391
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
#. i18n: file: dataengine.ui:50
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: dataengine.ui:83
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: dataengine.ui:119
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp4)
#. i18n: file: dataengine.ui:155
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp6)
#. i18n: file: widget.ui:108
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
#. i18n: file: widget.ui:144
#. i18n: ectx: property (text), widget (QPushButton, pushButton_helper)
#. i18n: file: widget.ui:177
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: widget.ui:210
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: widget.ui:246
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
#. i18n: file: widget.ui:282
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
#. i18n: file: appearance.ui:63
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
#. i18n: file: appearance.ui:391
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
#. i18n: file: dataengine.ui:50
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: dataengine.ui:83
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: dataengine.ui:119
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp4)
#. i18n: file: dataengine.ui:155
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp6)
#. i18n: file: widget.ui:108
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
#. i18n: file: widget.ui:144
#. i18n: ectx: property (text), widget (QPushButton, pushButton_helper)
#. i18n: file: widget.ui:177
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: widget.ui:210
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: widget.ui:246
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
#. i18n: file: widget.ui:282
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
#: po/rc.cpp:6 po/rc.cpp:42 po/rc.cpp:54 po/rc.cpp:60 po/rc.cpp:66
#: po/rc.cpp:72 po/rc.cpp:81 po/rc.cpp:87 po/rc.cpp:93 po/rc.cpp:99
#: po/rc.cpp:105 po/rc.cpp:111 rc.cpp:6 rc.cpp:42 rc.cpp:54 rc.cpp:60
#: rc.cpp:66 rc.cpp:72 rc.cpp:81 rc.cpp:87 rc.cpp:93 rc.cpp:99 rc.cpp:105
#: rc.cpp:111
msgid "Browse"
msgstr "Обзор"
#. i18n: file: appearance.ui:80
#. i18n: ectx: property (text), widget (QLabel, label_fontColor)
#: po/rc.cpp:9 rc.cpp:9
msgid "Font color"
msgstr "Цвет шрифта"
#. i18n: file: appearance.ui:112
#. i18n: ectx: property (toolTip), widget (KColorCombo, kcolorcombo_fontColor)
#: po/rc.cpp:12 rc.cpp:12
msgid "Set font color"
msgstr "Укажите цвет шрифта"
#. i18n: file: appearance.ui:142
#. i18n: ectx: property (text), widget (QLabel, label_fontSize)
#: po/rc.cpp:15 rc.cpp:15
msgid "Font size"
msgstr "Размер шрифта"
#. i18n: file: appearance.ui:174
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontSize)
#: po/rc.cpp:18 rc.cpp:18
msgid "Set font size"
msgstr "Укажите размер шрифта"
#. i18n: file: appearance.ui:203
#. i18n: ectx: property (text), widget (QLabel, label_fontWeight)
#: po/rc.cpp:21 rc.cpp:21
msgid "Font weight"
msgstr "Толщина шрифта"
#. i18n: file: appearance.ui:235
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontWeight)
#: po/rc.cpp:24 rc.cpp:24
msgid "Set font weight"
msgstr "Укажите ширину шрифта"
#. i18n: file: appearance.ui:267
#. i18n: ectx: property (text), widget (QLabel, label_fontStyle)
#: po/rc.cpp:27 rc.cpp:27
msgid "Font style"
msgstr "Стиль шрифта"
#. i18n: file: appearance.ui:299
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_fontStyle)
#: po/rc.cpp:30 rc.cpp:30
msgid "Set font style"
msgstr "Укажите стиль шрифта"
#. i18n: file: appearance.ui:326
#. i18n: ectx: property (text), widget (QLabel, label_font)
#: po/rc.cpp:33 rc.cpp:33
msgid "Font"
msgstr "Шрифт"
#. i18n: file: appearance.ui:358
#. i18n: ectx: property (toolTip), widget (QFontComboBox, fontComboBox_font)
#: po/rc.cpp:36 rc.cpp:36
msgid "Set font family"
msgstr "Укажите шрифт"
#. i18n: file: appearance.ui:375
#. i18n: ectx: property (text), widget (QLabel, label_activeIcon)
#: po/rc.cpp:39 rc.cpp:39
msgid "Active icon"
msgstr "Иконка активного подключения"
#. i18n: file: appearance.ui:408
#. i18n: ectx: property (text), widget (QLabel, label_textAlign)
#: po/rc.cpp:45 rc.cpp:45
msgid "Text align"
msgstr "Выравнивание текста"
#. i18n: file: appearance.ui:440
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_textAlign)
#: po/rc.cpp:48 rc.cpp:48
msgid "Set text align"
msgstr "Установите выравнивание текста"
#. i18n: file: dataengine.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#. i18n: file: widget.ui:161
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#. i18n: file: dataengine.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#. i18n: file: widget.ui:161
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#: po/rc.cpp:51 po/rc.cpp:90 rc.cpp:51 rc.cpp:90
msgid "Path to netctl"
msgstr "Путь к netctl"
#. i18n: file: dataengine.ui:67
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#. i18n: file: widget.ui:194
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#. i18n: file: dataengine.ui:67
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#. i18n: file: widget.ui:194
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#: po/rc.cpp:57 po/rc.cpp:96 rc.cpp:57 rc.cpp:96
msgid "Path to netctl-auto"
msgstr "Путь к netctl-auto"
#. i18n: file: dataengine.ui:100
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_extIp4)
#: po/rc.cpp:63 rc.cpp:63
msgid "Check external IPv4"
msgstr "Проверять внешний IPv4"
#. i18n: file: dataengine.ui:136
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_extIp6)
#: po/rc.cpp:69 rc.cpp:69
msgid "Check external IPv6"
msgstr "Проверять внешний IPv6"
#. i18n: file: widget.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_autoUpdate)
#: po/rc.cpp:75 rc.cpp:75
msgid "Auto update interval, msec"
msgstr "Интервал автообновления, мсек"
#. i18n: file: widget.ui:92
#. i18n: ectx: property (text), widget (QLabel, label_gui)
#: po/rc.cpp:78 rc.cpp:78
msgid "Path to GUI"
msgstr "Путь к GUI"
#. i18n: file: widget.ui:125
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_helper)
#: po/rc.cpp:84 rc.cpp:84
msgid "Use helper"
msgstr "Использовать хелпер"
#. i18n: file: widget.ui:227
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_sudo)
#: po/rc.cpp:102 rc.cpp:102
msgid "Use sudo for netctl"
msgstr "Использовать sudo для netctl"
#. i18n: file: widget.ui:263
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_wifi)
#: po/rc.cpp:108 rc.cpp:108
msgid "Show 'Start WiFi menu'"
msgstr "Показать 'Запустить WiFi-menu'"
#. i18n: file: widget.ui:291
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showBigInterface)
#: po/rc.cpp:114 rc.cpp:114
msgid "Show more detailed interface"
msgstr "Показать более детальный интерфейс"
#. i18n: file: widget.ui:309
#. i18n: ectx: property (toolTip), widget (QPlainTextEdit, textEdit)
#: po/rc.cpp:117 rc.cpp:117
msgid ""
"$info - active profile information\n"
"$current - current profile name\n"
"$extip4 - external IPv4\n"
"$extip6 - external IPv6\n"
"$interfaces - list of the network interfaces\n"
"$intip4 - internal IPv4\n"
"$intip6 - internal IPv6\n"
"$profiles - list of the netctl profiles\n"
"$status - current profile status (static/enabled)"
msgstr ""
"$info - информация об активном профиле\n"
"$current - имя текущего профиля\n"
"$extip4 - внешний IPv4\n"
"$extip6 - внешний IPv6\n"
"$interfaces - список сетевых интерфейсов\n"
"$intip4 - внутренний IPv4\n"
"$intip6 - внутренний IPv6\n"
"$profiles - список профилей netctl\n"
"$status - статус текущего профиля (static/enabled)"
#: po/rc.cpp:126 rc.cpp:126
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Evgeniy Alekseev"
#: po/rc.cpp:127 rc.cpp:127
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "esalexeev@gmail.com"
#~ msgid "Acknowledgement"
#~ msgstr "Благодарности"
#~ msgid "normal"
#~ msgstr "normal"
#~ msgid "italic"
#~ msgstr "italic"
#~ msgid "Path to ip"
#~ msgstr "Путь к ip"
#~ msgid "Path to interface list"
#~ msgstr "Путь к интерфейсам"
#~ msgid "Show network devices"
#~ msgstr "Показать сетевые устройства"
#~ msgid "Show external IP"
#~ msgstr "Показать внешний IP"
#~ msgid "Show internal IP"
#~ msgstr "Показать внутренний IP"
#~ msgid "Configuration"
#~ msgstr "Настройка"

View File

@ -5,8 +5,9 @@ message (STATUS "Subproject ${SUBPROJECT}")
if (BUILD_GUI)
install (FILES icon.png DESTINATION share/pixmaps RENAME netctl-gui.png)
endif ()
if (BUILD_DATAENGINE OR BUILD_PLASMOID)
if (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)
add_subdirectory (translations-plasmoid)
endif ()

View File

@ -0,0 +1,29 @@
find_package(Gettext REQUIRED)
if (BUILD_KDE4)
find_package (KDE4 REQUIRED)
set (MO_NAME plasma_applet_netctl.mo)
else ()
find_package (ECM 0.0.12 REQUIRED NO_MODULE)
set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
find_package (KF5 REQUIRED COMPONENTS I18n)
include (KDEInstallDirs)
set (MO_NAME plasma_applet_org.kde.plasma.netctl.mo)
endif ()
file (GLOB _po_files *.po)
set (_gmoFiles)
foreach (_current_PO_FILE ${_po_files})
get_filename_component (_lang ${_current_PO_FILE} NAME_WE)
set (_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo)
add_custom_command (OUTPUT ${_gmoFile}
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_current_PO_FILE}
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
DEPENDS ${_current_PO_FILE}
)
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo DESTINATION ${LOCALE_INSTALL_DIR}/${_lang}/LC_MESSAGES/ RENAME ${MO_NAME})
list (APPEND _gmoFiles ${_gmoFile})
endforeach (_current_PO_FILE)
add_custom_target (pofiles ALL DEPENDS ${_gmoFiles})

View File

@ -0,0 +1,634 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014, 2015.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/netctl-gui/issues\n"
"POT-Creation-Date: 2015-01-09 04:54+0300\n"
"PO-Revision-Date: 2015-01-09 04:55+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Lokalize 1.5\n"
#: plasmoid-kde4/netctl.cpp:238 plasmoid-kf5/plugin/netctladds.cpp:186
msgid "Set profile %1 disabled"
msgstr "Set profile %1 disabled"
#: plasmoid-kde4/netctl.cpp:241 plasmoid-kf5/plugin/netctladds.cpp:189
msgid "Set profile %1 enabled"
msgstr "Set profile %1 enabled"
#: plasmoid-kde4/netctl.cpp:262 plasmoid-kf5/plugin/netctladds.cpp:208
msgid "Restart profile %1"
msgstr "Restart profile %1"
#: plasmoid-kde4/netctl.cpp:283 plasmoid-kf5/plugin/netctladds.cpp:232
msgid "Start profile %1"
msgstr "Start profile %1"
#: plasmoid-kde4/netctl.cpp:309 plasmoid-kf5/plugin/netctladds.cpp:257
msgid "Stop profile %1"
msgstr "Stop profile %1"
#: plasmoid-kde4/netctl.cpp:329 plasmoid-kde4/netctl.cpp:467
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:132
#: plasmoid-kf5/plugin/netctladds.cpp:274
msgid "Stop all profiles"
msgstr "Stop all profiles"
#: plasmoid-kde4/netctl.cpp:349 plasmoid-kf5/plugin/netctladds.cpp:296
msgid "Switch to profile %1"
msgstr "Switch to profile %1"
#: plasmoid-kde4/netctl.cpp:422 plasmoid-kf5/plasmoid/contents/ui/main.qml:203
msgid "Start another profile"
msgstr "Start another profile"
#: plasmoid-kde4/netctl.cpp:423 plasmoid-kf5/plasmoid/contents/ui/main.qml:204
msgid "Stop %1"
msgstr "Stop %1"
#: plasmoid-kde4/netctl.cpp:424 plasmoid-kf5/plasmoid/contents/ui/main.qml:205
msgid "Restart %1"
msgstr "Restart %1"
#: plasmoid-kde4/netctl.cpp:426 plasmoid-kf5/plasmoid/contents/ui/main.qml:207
msgid "Disable %1"
msgstr "Disable %1"
#: plasmoid-kde4/netctl.cpp:428 plasmoid-kf5/plasmoid/contents/ui/main.qml:209
msgid "Enable %1"
msgstr "Enable %1"
#: plasmoid-kde4/netctl.cpp:431 plasmoid-kde4/netctl.cpp:454
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:130
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:211
msgid "Start profile"
msgstr "Start profile"
#: plasmoid-kde4/netctl.cpp:462 plasmoid-kf5/plasmoid/contents/ui/main.qml:131
msgid "Stop profile"
msgstr "Stop profile"
#: plasmoid-kde4/netctl.cpp:472 plasmoid-kf5/plasmoid/contents/ui/main.qml:133
msgid "Switch to profile"
msgstr "Switch to profile"
#: plasmoid-kde4/netctl.cpp:480 plasmoid-kf5/plasmoid/contents/ui/main.qml:134
msgid "Restart profile"
msgstr "Restart profile"
#: plasmoid-kde4/netctl.cpp:485 plasmoid-kf5/plasmoid/contents/ui/main.qml:135
msgid "Enable profile"
msgstr "Enable profile"
#: plasmoid-kde4/netctl.cpp:489
msgid "Show netctl-gui"
msgstr "Show netctl-gui"
#: plasmoid-kde4/netctl.cpp:494 plasmoid-kf5/plasmoid/contents/ui/main.qml:137
msgid "Show WiFi menu"
msgstr "Show WiFi menu"
#: plasmoid-kde4/netctl.cpp:521
msgid "Start GUI"
msgstr "Start GUI"
#: plasmoid-kde4/netctl.cpp:532
msgid "Start WiFi menu"
msgstr "Start WiFi menu"
#: plasmoid-kde4/netctl.cpp:572
msgid "Network is up"
msgstr "Network is up"
#: plasmoid-kde4/netctl.cpp:576
msgid "Network is down"
msgstr "Network is down"
#: plasmoid-kde4/netctl.cpp:766
msgid ""
"Version %1\n"
"(build date %2)"
msgstr ""
"Version %1\n"
"(build date %2)"
#: plasmoid-kde4/netctl.cpp:767 plasmoid-kf5/plugin/netctladds.cpp:88
msgid "KDE widget which interacts with netctl."
msgstr "KDE widget which interacts with netctl."
#: plasmoid-kde4/netctl.cpp:768 plasmoid-kf5/plugin/netctladds.cpp:90
msgid "Links:"
msgstr "Links:"
#: plasmoid-kde4/netctl.cpp:769 plasmoid-kf5/plugin/netctladds.cpp:91
msgid "Homepage"
msgstr "Homepage"
#: plasmoid-kde4/netctl.cpp:770 plasmoid-kf5/plugin/netctladds.cpp:92
msgid "Repository"
msgstr "Repository"
#: plasmoid-kde4/netctl.cpp:771 plasmoid-kf5/plugin/netctladds.cpp:93
msgid "Bugtracker"
msgstr "Bugtracker"
#: plasmoid-kde4/netctl.cpp:772 plasmoid-kf5/plugin/netctladds.cpp:94
msgid "Translation issue"
msgstr "Translation issue"
#: plasmoid-kde4/netctl.cpp:773 plasmoid-kf5/plugin/netctladds.cpp:95
msgid "AUR packages"
msgstr "AUR packages"
#: plasmoid-kde4/netctl.cpp:775 plasmoid-kf5/plugin/netctladds.cpp:98
msgid "This software is licensed under %1"
msgstr "This software is licensed under %1"
#: plasmoid-kde4/netctl.cpp:783 plasmoid-kf5/plugin/netctladds.cpp:100
msgid "Translators: %1"
msgstr "Translators: %1"
#: plasmoid-kde4/netctl.cpp:784 plasmoid-kf5/plugin/netctladds.cpp:108
msgid "This software uses: %1"
msgstr "This software uses: %1"
#: plasmoid-kde4/netctl.cpp:786
msgid "Netctl plasmoid"
msgstr "Netctl plasmoid"
#: plasmoid-kde4/netctl.cpp:787
#: plasmoid-kf5/plasmoid/contents/config/config.qml:31
msgid "Appearance"
msgstr "Appearance"
#: plasmoid-kde4/netctl.cpp:788
#: plasmoid-kf5/plasmoid/contents/config/config.qml:37
msgid "DataEngine"
msgstr "DataEngine"
#: plasmoid-kde4/netctl.cpp:789
#: plasmoid-kf5/plasmoid/contents/config/config.qml:43
#: plasmoid-kf5/plasmoid/contents/ui/about.qml:41
msgid "About"
msgstr "About"
#: plasmoid-kf5/plasmoid/contents/config/config.qml:25
msgid "Widget"
msgstr "Widget"
#: plasmoid-kf5/plasmoid/contents/ui/about.qml:74
msgid "Acknowledgment"
msgstr "Acknowledgment"
#. i18n: file: plasmoid-kde4/appearance.ui:408
#. i18n: ectx: property (text), widget (QLabel, label_textAlign)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:64 rc.cpp:45
msgid "Text align"
msgstr "Text align"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:72
msgid "center"
msgstr "center"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:76
msgid "right"
msgstr "right"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:80
msgid "left"
msgstr "left"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:84
msgid "justify"
msgstr "justify"
#. i18n: file: plasmoid-kde4/appearance.ui:326
#. i18n: ectx: property (text), widget (QLabel, label_font)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:107 rc.cpp:33
msgid "Font"
msgstr "Font"
#. i18n: file: plasmoid-kde4/appearance.ui:142
#. i18n: ectx: property (text), widget (QLabel, label_fontSize)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:125 rc.cpp:15
msgid "Font size"
msgstr "Font size"
#. i18n: file: plasmoid-kde4/appearance.ui:203
#. i18n: ectx: property (text), widget (QLabel, label_fontWeight)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:145 rc.cpp:21
msgid "Font weight"
msgstr "Font weight"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:153
msgid "light"
msgstr "light"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:157
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:200
msgid "normal"
msgstr "normal"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:161
msgid "demi bold"
msgstr "demi bold"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:165
msgid "bold"
msgstr "bold"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:169
msgid "black"
msgstr "black"
#. i18n: file: plasmoid-kde4/appearance.ui:267
#. i18n: ectx: property (text), widget (QLabel, label_fontStyle)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:192 rc.cpp:27
msgid "Font style"
msgstr "Font style"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:204
msgid "italic"
msgstr "italic"
#. i18n: file: plasmoid-kde4/appearance.ui:80
#. i18n: ectx: property (text), widget (QLabel, label_fontColor)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:227 rc.cpp:9
msgid "Font color"
msgstr "Font color"
#. i18n: file: plasmoid-kde4/appearance.ui:375
#. i18n: ectx: property (text), widget (QLabel, label_activeIcon)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:250 rc.cpp:39
msgid "Active icon"
msgstr "Active icon"
#. i18n: file: plasmoid-kde4/appearance.ui:63
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
#. i18n: file: plasmoid-kde4/appearance.ui:391
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
#. i18n: file: plasmoid-kde4/dataengine.ui:50
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: plasmoid-kde4/dataengine.ui:83
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: plasmoid-kde4/dataengine.ui:119
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp4)
#. i18n: file: plasmoid-kde4/dataengine.ui:155
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp6)
#. i18n: file: plasmoid-kde4/widget.ui:108
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
#. i18n: file: plasmoid-kde4/widget.ui:144
#. i18n: ectx: property (text), widget (QPushButton, pushButton_helper)
#. i18n: file: plasmoid-kde4/widget.ui:177
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: plasmoid-kde4/widget.ui:210
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: plasmoid-kde4/widget.ui:246
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
#. i18n: file: plasmoid-kde4/widget.ui:282
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:260
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:292
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:59
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:92
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:150
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:208
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:90
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:147
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:181
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:216
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:273
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:330 rc.cpp:6 rc.cpp:42
#: rc.cpp:54 rc.cpp:60 rc.cpp:66 rc.cpp:72 rc.cpp:81 rc.cpp:87 rc.cpp:93
#: rc.cpp:99 rc.cpp:105 rc.cpp:111
msgid "Browse"
msgstr "Browse"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:267
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:299
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:66
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:99
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:157
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:215
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:97
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:153
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:188
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:223
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:280
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:337
msgid "Select a path"
msgstr "Select a path"
#. i18n: file: plasmoid-kde4/appearance.ui:47
#. i18n: ectx: property (text), widget (QLabel, label_inactiveIcon)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:282 rc.cpp:3
msgid "Inactive icon"
msgstr "Inactive icon"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:309
msgid "Select a color"
msgstr "Select a color"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:318
msgid "Select a font"
msgstr "Select a font"
#. i18n: file: plasmoid-kde4/dataengine.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#. i18n: file: plasmoid-kde4/widget.ui:161
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:49
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:169 rc.cpp:51 rc.cpp:90
msgid "Path to netctl"
msgstr "Path to netctl"
#. i18n: file: plasmoid-kde4/dataengine.ui:67
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#. i18n: file: plasmoid-kde4/widget.ui:194
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:82
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:204 rc.cpp:57 rc.cpp:96
msgid "Path to netctl-auto"
msgstr "Path to netctl-auto"
#. i18n: file: plasmoid-kde4/dataengine.ui:100
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_extIp4)
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:115 rc.cpp:63
msgid "Check external IPv4"
msgstr "Check external IPv4"
#. i18n: file: plasmoid-kde4/dataengine.ui:136
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_extIp6)
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:173 rc.cpp:69
msgid "Check external IPv6"
msgstr "Check external IPv6"
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:92
msgid "inactive"
msgstr "inactive"
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:92
msgid "active"
msgstr "active"
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:91
msgid "Network status has been changed to '%1'"
msgstr "Network status has been changed to '%1'"
#. i18n: file: plasmoid-kde4/widget.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_autoUpdate)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:60 rc.cpp:75
msgid "Auto update interval, msec"
msgstr "Auto update interval, msec"
#. i18n: file: plasmoid-kde4/widget.ui:92
#. i18n: ectx: property (text), widget (QLabel, label_gui)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:80 rc.cpp:78
msgid "Path to GUI"
msgstr "Path to GUI"
#. i18n: file: plasmoid-kde4/widget.ui:125
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_helper)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:113 rc.cpp:84
msgid "Use helper"
msgstr "Use helper"
#. i18n: file: plasmoid-kde4/widget.ui:227
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_sudo)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:239 rc.cpp:102
msgid "Use sudo for netctl"
msgstr "Use sudo for netctl"
#. i18n: file: plasmoid-kde4/widget.ui:263
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_wifi)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:296 rc.cpp:108
msgid "Show 'Start WiFi menu'"
msgstr "Show 'Start WiFi menu'"
#: plasmoid-kf5/plugin/netctladds.cpp:160
msgid "Run %1"
msgstr "Run %1"
#: plasmoid-kf5/plugin/netctladds.cpp:228
#: plasmoid-kf5/plugin/netctladds.cpp:292
msgid "Select profile"
msgstr "Select profile"
#: plasmoid-kf5/plugin/netctladds.cpp:228
#: plasmoid-kf5/plugin/netctladds.cpp:292
msgid "Profile:"
msgstr "Profile:"
#. i18n: file: plasmoid-kde4/appearance.ui:112
#. i18n: ectx: property (toolTip), widget (KColorCombo, kcolorcombo_fontColor)
#: rc.cpp:12
msgid "Set font color"
msgstr "Set font color"
#. i18n: file: plasmoid-kde4/appearance.ui:174
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontSize)
#: rc.cpp:18
msgid "Set font size"
msgstr "Set font size"
#. i18n: file: plasmoid-kde4/appearance.ui:235
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontWeight)
#: rc.cpp:24
msgid "Set font weight"
msgstr "Set font weight"
#. i18n: file: plasmoid-kde4/appearance.ui:299
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_fontStyle)
#: rc.cpp:30
msgid "Set font style"
msgstr "Set font style"
#. i18n: file: plasmoid-kde4/appearance.ui:358
#. i18n: ectx: property (toolTip), widget (QFontComboBox, fontComboBox_font)
#: rc.cpp:36
msgid "Set font family"
msgstr "Set font family"
#. i18n: file: plasmoid-kde4/appearance.ui:440
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_textAlign)
#: rc.cpp:48
msgid "Set text align"
msgstr "Set text align"
#. i18n: file: plasmoid-kde4/widget.ui:291
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showBigInterface)
#: rc.cpp:114
msgid "Show more detailed interface"
msgstr "Show more detailed interface"
#. i18n: file: plasmoid-kde4/widget.ui:309
#. i18n: ectx: property (toolTip), widget (QPlainTextEdit, textEdit)
#: rc.cpp:117
msgid ""
"$info - active profile information\n"
"$current - current profile name\n"
"$extip4 - external IPv4\n"
"$extip6 - external IPv6\n"
"$interfaces - list of the network interfaces\n"
"$intip4 - internal IPv4\n"
"$intip6 - internal IPv6\n"
"$profiles - list of the netctl profiles\n"
"$status - current profile status (static/enabled)"
msgstr ""
"$info - active profile information\n"
"$current - current profile name\n"
"$extip4 - external IPv4\n"
"$extip6 - external IPv6\n"
"$interfaces - list of the network interfaces\n"
"$intip4 - internal IPv4\n"
"$intip6 - internal IPv6\n"
"$profiles - list of the netctl profiles\n"
"$status - current profile status (static/enabled)"
#: rc.cpp:126
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Evgeniy Alekseev"
#: rc.cpp:127
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "esalexeev@gmail.com"
#~ msgid "Acknowledgement"
#~ msgstr "Acknowledgement"
#, fuzzy
#~ msgid "Connection"
#~ msgstr "Configuration"
#, fuzzy
#~ msgid "Binds to interfaces"
#~ msgstr "Path to interface list"
#, fuzzy
#~ msgid "Netctl GUI"
#~ msgstr "Start GUI"
#, fuzzy
#~ msgid "Actions"
#~ msgstr "Active icon"
#, fuzzy
#~ msgid "Connect to profile"
#~ msgstr "Switch to profile"
#, fuzzy
#~ msgid "Create a new profile"
#~ msgstr "Start another profile"
#, fuzzy
#~ msgid "Profile"
#~ msgstr "Stop profile"
#, fuzzy
#~ msgid "WiFi menu"
#~ msgstr "Show WiFi menu"
#, fuzzy
#~ msgid "Use peer DNS"
#~ msgstr "Use helper"
#, fuzzy
#~ msgid "netctl-auto"
#~ msgstr "Path to netctl-auto"
#, fuzzy
#~ msgid "Enable"
#~ msgstr "Enable %1"
#, fuzzy
#~ msgid "Enable all profiles"
#~ msgstr "Enable profile"
#, fuzzy
#~ msgid "Disable all profiles"
#~ msgstr "Enable profile"
#, fuzzy
#~ msgid "Start service"
#~ msgstr "Start profile"
#, fuzzy
#~ msgid "Restart service"
#~ msgstr "Restart profile"
#, fuzzy
#~ msgid "Enable service"
#~ msgstr "Enable profile"
#, fuzzy
#~ msgid "LCP echo interval"
#~ msgstr "Show internal IP"
#, fuzzy
#~ msgid "Helper"
#~ msgstr "Use helper"
#, fuzzy
#~ msgid "netctl"
#~ msgstr "Path to netctl"
#, fuzzy
#~ msgid "Start"
#~ msgstr "Start GUI"
#, fuzzy
#~ msgid "Path to systemctl"
#~ msgstr "Path to netctl"
#, fuzzy
#~ msgid "netctl path"
#~ msgstr "Netctl plasmoid"
#, fuzzy
#~ msgid "netctl-auto path"
#~ msgstr "Path to netctl-auto"
#, fuzzy
#~ msgid "Path to profile directory"
#~ msgstr "Switch to profile %1"
#, fuzzy
#~ msgid "Path to sudo"
#~ msgstr "Path to ip"
#, fuzzy
#~ msgid "Path to wpa_cli"
#~ msgstr "Path to ip"
#, fuzzy
#~ msgid "Path to control directory"
#~ msgstr "Path to netctl"
#~ msgid "Path to interface list"
#~ msgstr "Path to interface list"
#, fuzzy
#~ msgid "Path to rfkill device list"
#~ msgstr "Path to interface list"
#, fuzzy
#~ msgid "wpa-configsection"
#~ msgstr "Configuration"
#~ msgid "Show network devices"
#~ msgstr "Show network devices"
#~ msgid "Show external IP"
#~ msgstr "Show external IP"

View File

@ -1,6 +1,7 @@
#!/bin/sh
# root of translatable sources
BASEDIR="../"
BASEDIR="../../"
PATHS="plasmoid"
PROJECT="plasma_applet_netctl"
BUGADDR="https://github.com/arcan1s/netctl-gui/issues"
# working dir
@ -10,7 +11,7 @@ WDIR=`pwd`
echo "Preparing rc files"
cd ${BASEDIR}
# we use simple sorting to make sure the lines do not jump around too much from system to system
find . -name '*.rc' -o -name '*.ui' -o -name '*.kcfg' | sort > ${WDIR}/rcfiles.list
find . -name '*.rc' -o -name '*.ui' -o -name '*.kcfg' | grep ${PATHS} | sort > ${WDIR}/rcfiles.list
xargs --arg-file=${WDIR}/rcfiles.list extractrc > ${WDIR}/rc.cpp
# additional string for KAboutData
echo 'i18nc("NAME OF TRANSLATORS","Your names");' >> ${WDIR}/rc.cpp
@ -21,7 +22,7 @@ echo "Done preparing rc files"
echo "Extracting messages"
cd ${BASEDIR}
# see above on sorting
find . -name '*.cpp' -o -name '*.h' -o -name '*.c' | sort > ${WDIR}/infiles.list
find . -name '*.cpp' -o -name '*.h' -o -name '*.qml' | grep ${PATHS} | sort > ${WDIR}/infiles.list
echo "rc.cpp" >> ${WDIR}/infiles.list
cd ${WDIR}
xgettext --from-code=UTF-8 -C -kde -ci18n -ki18n:1 -ki18nc:1c,2 -ki18np:1,2 -ki18ncp:1c,2,3 -ktr2i18n:1 \

View File

@ -0,0 +1,611 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# NOGISAKA Sadata <ngsksdt@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/netctl-gui/issues\n"
"POT-Creation-Date: 2015-01-09 04:54+0300\n"
"PO-Revision-Date: 2014-10-13 16:37+0900\n"
"Last-Translator: NOGISAKA Sadata <ngsksdt@gmail.com>\n"
"Language-Team: Japanese <kde-i18n-doc@kde.org>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Lokalize 1.5\n"
#: plasmoid-kde4/netctl.cpp:238 plasmoid-kf5/plugin/netctladds.cpp:186
msgid "Set profile %1 disabled"
msgstr "プロファイル %1 を無効にする"
#: plasmoid-kde4/netctl.cpp:241 plasmoid-kf5/plugin/netctladds.cpp:189
msgid "Set profile %1 enabled"
msgstr "プロファイル %1 を有効にする"
#: plasmoid-kde4/netctl.cpp:262 plasmoid-kf5/plugin/netctladds.cpp:208
msgid "Restart profile %1"
msgstr "プロファイル %1 の利用を再開"
#: plasmoid-kde4/netctl.cpp:283 plasmoid-kf5/plugin/netctladds.cpp:232
msgid "Start profile %1"
msgstr "プロファイル %1 の利用を開始"
#: plasmoid-kde4/netctl.cpp:309 plasmoid-kf5/plugin/netctladds.cpp:257
msgid "Stop profile %1"
msgstr "プロファイル %1 の利用を停止する"
#: plasmoid-kde4/netctl.cpp:329 plasmoid-kde4/netctl.cpp:467
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:132
#: plasmoid-kf5/plugin/netctladds.cpp:274
msgid "Stop all profiles"
msgstr "全てのプロファイルの利用を停止する"
#: plasmoid-kde4/netctl.cpp:349 plasmoid-kf5/plugin/netctladds.cpp:296
msgid "Switch to profile %1"
msgstr "プロファイルを %1 へ切り替える"
#: plasmoid-kde4/netctl.cpp:422 plasmoid-kf5/plasmoid/contents/ui/main.qml:203
msgid "Start another profile"
msgstr "他のプロファイルの利用を開始"
#: plasmoid-kde4/netctl.cpp:423 plasmoid-kf5/plasmoid/contents/ui/main.qml:204
msgid "Stop %1"
msgstr "%1 を停止"
#: plasmoid-kde4/netctl.cpp:424 plasmoid-kf5/plasmoid/contents/ui/main.qml:205
msgid "Restart %1"
msgstr "%1 を再開"
#: plasmoid-kde4/netctl.cpp:426 plasmoid-kf5/plasmoid/contents/ui/main.qml:207
msgid "Disable %1"
msgstr "%1 を無効にする"
#: plasmoid-kde4/netctl.cpp:428 plasmoid-kf5/plasmoid/contents/ui/main.qml:209
msgid "Enable %1"
msgstr "%1 を有効にする"
#: plasmoid-kde4/netctl.cpp:431 plasmoid-kde4/netctl.cpp:454
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:130
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:211
msgid "Start profile"
msgstr "プロファイルの利用を開始"
#: plasmoid-kde4/netctl.cpp:462 plasmoid-kf5/plasmoid/contents/ui/main.qml:131
msgid "Stop profile"
msgstr "プロファイルの利用を停止する"
#: plasmoid-kde4/netctl.cpp:472 plasmoid-kf5/plasmoid/contents/ui/main.qml:133
msgid "Switch to profile"
msgstr "プロファイルを切り替える"
#: plasmoid-kde4/netctl.cpp:480 plasmoid-kf5/plasmoid/contents/ui/main.qml:134
msgid "Restart profile"
msgstr "プロファイルの利用を再開"
#: plasmoid-kde4/netctl.cpp:485 plasmoid-kf5/plasmoid/contents/ui/main.qml:135
msgid "Enable profile"
msgstr "プロファイルを有効にする"
#: plasmoid-kde4/netctl.cpp:489
msgid "Show netctl-gui"
msgstr "netctl-gui を表示"
#: plasmoid-kde4/netctl.cpp:494 plasmoid-kf5/plasmoid/contents/ui/main.qml:137
msgid "Show WiFi menu"
msgstr "WiFi メニューを表示"
#: plasmoid-kde4/netctl.cpp:521
msgid "Start GUI"
msgstr "GUI を開始"
#: plasmoid-kde4/netctl.cpp:532
msgid "Start WiFi menu"
msgstr "WiFi メニューを開始"
#: plasmoid-kde4/netctl.cpp:572
msgid "Network is up"
msgstr "ネットワークは有効です"
#: plasmoid-kde4/netctl.cpp:576
msgid "Network is down"
msgstr "ネットワークは無効です"
#: plasmoid-kde4/netctl.cpp:766
msgid ""
"Version %1\n"
"(build date %2)"
msgstr ""
"バージョン:%1\n"
"(ビルド日時:%2"
#: plasmoid-kde4/netctl.cpp:767 plasmoid-kf5/plugin/netctladds.cpp:88
msgid "KDE widget which interacts with netctl."
msgstr "netctl と連携する KDE ウィジェット"
#: plasmoid-kde4/netctl.cpp:768 plasmoid-kf5/plugin/netctladds.cpp:90
msgid "Links:"
msgstr "リンク:"
#: plasmoid-kde4/netctl.cpp:769 plasmoid-kf5/plugin/netctladds.cpp:91
msgid "Homepage"
msgstr "ホームページ"
#: plasmoid-kde4/netctl.cpp:770 plasmoid-kf5/plugin/netctladds.cpp:92
msgid "Repository"
msgstr "レポジトリ"
#: plasmoid-kde4/netctl.cpp:771 plasmoid-kf5/plugin/netctladds.cpp:93
msgid "Bugtracker"
msgstr "バグトラッカ"
#: plasmoid-kde4/netctl.cpp:772 plasmoid-kf5/plugin/netctladds.cpp:94
msgid "Translation issue"
msgstr "翻訳に関する issue"
#: plasmoid-kde4/netctl.cpp:773 plasmoid-kf5/plugin/netctladds.cpp:95
msgid "AUR packages"
msgstr "AUR パッケージ"
#: plasmoid-kde4/netctl.cpp:775 plasmoid-kf5/plugin/netctladds.cpp:98
msgid "This software is licensed under %1"
msgstr "このソフトウェアは %1 の下で許諾されます"
#: plasmoid-kde4/netctl.cpp:783 plasmoid-kf5/plugin/netctladds.cpp:100
msgid "Translators: %1"
msgstr "翻訳者:%1"
#: plasmoid-kde4/netctl.cpp:784 plasmoid-kf5/plugin/netctladds.cpp:108
msgid "This software uses: %1"
msgstr "このソフトウェアは次を利用しています:%1"
#: plasmoid-kde4/netctl.cpp:786
msgid "Netctl plasmoid"
msgstr "Netctl plasmoid"
#: plasmoid-kde4/netctl.cpp:787
#: plasmoid-kf5/plasmoid/contents/config/config.qml:31
msgid "Appearance"
msgstr "外観"
#: plasmoid-kde4/netctl.cpp:788
#: plasmoid-kf5/plasmoid/contents/config/config.qml:37
msgid "DataEngine"
msgstr "DataEngine"
#: plasmoid-kde4/netctl.cpp:789
#: plasmoid-kf5/plasmoid/contents/config/config.qml:43
#: plasmoid-kf5/plasmoid/contents/ui/about.qml:41
msgid "About"
msgstr "概要"
#: plasmoid-kf5/plasmoid/contents/config/config.qml:25
msgid "Widget"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/about.qml:74
msgid "Acknowledgment"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:408
#. i18n: ectx: property (text), widget (QLabel, label_textAlign)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:64 rc.cpp:45
msgid "Text align"
msgstr "テキストの位置"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:72
msgid "center"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:76
msgid "right"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:80
msgid "left"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:84
msgid "justify"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:326
#. i18n: ectx: property (text), widget (QLabel, label_font)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:107 rc.cpp:33
msgid "Font"
msgstr "フォント"
#. i18n: file: plasmoid-kde4/appearance.ui:142
#. i18n: ectx: property (text), widget (QLabel, label_fontSize)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:125 rc.cpp:15
msgid "Font size"
msgstr "フォントの大きさ"
#. i18n: file: plasmoid-kde4/appearance.ui:203
#. i18n: ectx: property (text), widget (QLabel, label_fontWeight)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:145 rc.cpp:21
msgid "Font weight"
msgstr "フォントの太さ"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:153
msgid "light"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:157
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:200
msgid "normal"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:161
msgid "demi bold"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:165
msgid "bold"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:169
msgid "black"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:267
#. i18n: ectx: property (text), widget (QLabel, label_fontStyle)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:192 rc.cpp:27
msgid "Font style"
msgstr "フォントの字形"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:204
msgid "italic"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:80
#. i18n: ectx: property (text), widget (QLabel, label_fontColor)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:227 rc.cpp:9
msgid "Font color"
msgstr "フォントの色"
#. i18n: file: plasmoid-kde4/appearance.ui:375
#. i18n: ectx: property (text), widget (QLabel, label_activeIcon)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:250 rc.cpp:39
msgid "Active icon"
msgstr "アクティブ時のアイコン"
#. i18n: file: plasmoid-kde4/appearance.ui:63
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
#. i18n: file: plasmoid-kde4/appearance.ui:391
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
#. i18n: file: plasmoid-kde4/dataengine.ui:50
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: plasmoid-kde4/dataengine.ui:83
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: plasmoid-kde4/dataengine.ui:119
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp4)
#. i18n: file: plasmoid-kde4/dataengine.ui:155
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp6)
#. i18n: file: plasmoid-kde4/widget.ui:108
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
#. i18n: file: plasmoid-kde4/widget.ui:144
#. i18n: ectx: property (text), widget (QPushButton, pushButton_helper)
#. i18n: file: plasmoid-kde4/widget.ui:177
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: plasmoid-kde4/widget.ui:210
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: plasmoid-kde4/widget.ui:246
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
#. i18n: file: plasmoid-kde4/widget.ui:282
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:260
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:292
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:59
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:92
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:150
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:208
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:90
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:147
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:181
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:216
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:273
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:330 rc.cpp:6 rc.cpp:42
#: rc.cpp:54 rc.cpp:60 rc.cpp:66 rc.cpp:72 rc.cpp:81 rc.cpp:87 rc.cpp:93
#: rc.cpp:99 rc.cpp:105 rc.cpp:111
msgid "Browse"
msgstr "参照"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:267
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:299
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:66
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:99
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:157
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:215
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:97
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:153
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:188
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:223
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:280
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:337
msgid "Select a path"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:47
#. i18n: ectx: property (text), widget (QLabel, label_inactiveIcon)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:282 rc.cpp:3
msgid "Inactive icon"
msgstr "非アクティブ時のアイコン"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:309
#, fuzzy
msgid "Select a color"
msgstr "フォントの色を設定する"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:318
#, fuzzy
msgid "Select a font"
msgstr "フォントの大きさを設定する"
#. i18n: file: plasmoid-kde4/dataengine.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#. i18n: file: plasmoid-kde4/widget.ui:161
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:49
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:169 rc.cpp:51 rc.cpp:90
msgid "Path to netctl"
msgstr "netctl へのパス"
#. i18n: file: plasmoid-kde4/dataengine.ui:67
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#. i18n: file: plasmoid-kde4/widget.ui:194
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:82
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:204 rc.cpp:57 rc.cpp:96
msgid "Path to netctl-auto"
msgstr "netctl-auto へのパス"
#. i18n: file: plasmoid-kde4/dataengine.ui:100
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_extIp4)
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:115 rc.cpp:63
msgid "Check external IPv4"
msgstr "外部 IPv4 アドレスを確認"
#. i18n: file: plasmoid-kde4/dataengine.ui:136
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_extIp6)
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:173 rc.cpp:69
msgid "Check external IPv6"
msgstr "外部 IPv6 アドレスを確認"
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:92
#, fuzzy
msgid "inactive"
msgstr "非アクティブ時のアイコン"
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:92
#, fuzzy
msgid "active"
msgstr "非アクティブ時のアイコン"
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:91
msgid "Network status has been changed to '%1'"
msgstr ""
#. i18n: file: plasmoid-kde4/widget.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_autoUpdate)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:60 rc.cpp:75
msgid "Auto update interval, msec"
msgstr "自動更新の間隔(ミリ秒)"
#. i18n: file: plasmoid-kde4/widget.ui:92
#. i18n: ectx: property (text), widget (QLabel, label_gui)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:80 rc.cpp:78
msgid "Path to GUI"
msgstr "GUIへのパス"
#. i18n: file: plasmoid-kde4/widget.ui:125
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_helper)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:113 rc.cpp:84
msgid "Use helper"
msgstr "ヘルパを使用する"
#. i18n: file: plasmoid-kde4/widget.ui:227
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_sudo)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:239 rc.cpp:102
msgid "Use sudo for netctl"
msgstr "netctl に対して sudo を使用する"
#. i18n: file: plasmoid-kde4/widget.ui:263
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_wifi)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:296 rc.cpp:108
msgid "Show 'Start WiFi menu'"
msgstr "「Wifi メニューの開始」を表示"
#: plasmoid-kf5/plugin/netctladds.cpp:160
msgid "Run %1"
msgstr ""
#: plasmoid-kf5/plugin/netctladds.cpp:228
#: plasmoid-kf5/plugin/netctladds.cpp:292
#, fuzzy
msgid "Select profile"
msgstr "プロファイルの利用を停止する"
#: plasmoid-kf5/plugin/netctladds.cpp:228
#: plasmoid-kf5/plugin/netctladds.cpp:292
#, fuzzy
msgid "Profile:"
msgstr "プロファイルの利用を停止する"
#. i18n: file: plasmoid-kde4/appearance.ui:112
#. i18n: ectx: property (toolTip), widget (KColorCombo, kcolorcombo_fontColor)
#: rc.cpp:12
msgid "Set font color"
msgstr "フォントの色を設定する"
#. i18n: file: plasmoid-kde4/appearance.ui:174
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontSize)
#: rc.cpp:18
msgid "Set font size"
msgstr "フォントの大きさを設定する"
#. i18n: file: plasmoid-kde4/appearance.ui:235
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontWeight)
#: rc.cpp:24
msgid "Set font weight"
msgstr "フォントの太さを設定する"
#. i18n: file: plasmoid-kde4/appearance.ui:299
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_fontStyle)
#: rc.cpp:30
msgid "Set font style"
msgstr "フォントの字形を設定する"
#. i18n: file: plasmoid-kde4/appearance.ui:358
#. i18n: ectx: property (toolTip), widget (QFontComboBox, fontComboBox_font)
#: rc.cpp:36
msgid "Set font family"
msgstr "フォントを設定する"
#. i18n: file: plasmoid-kde4/appearance.ui:440
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_textAlign)
#: rc.cpp:48
msgid "Set text align"
msgstr "テキストの位置を設定する"
#. i18n: file: plasmoid-kde4/widget.ui:291
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showBigInterface)
#: rc.cpp:114
msgid "Show more detailed interface"
msgstr "インターフェースについての詳細を表示"
#. i18n: file: plasmoid-kde4/widget.ui:309
#. i18n: ectx: property (toolTip), widget (QPlainTextEdit, textEdit)
#: rc.cpp:117
msgid ""
"$info - active profile information\n"
"$current - current profile name\n"
"$extip4 - external IPv4\n"
"$extip6 - external IPv6\n"
"$interfaces - list of the network interfaces\n"
"$intip4 - internal IPv4\n"
"$intip6 - internal IPv6\n"
"$profiles - list of the netctl profiles\n"
"$status - current profile status (static/enabled)"
msgstr ""
"$info - アクティブなプロファイルの情報\n"
"$current - 現在利用中プロファイルの情報\n"
"$extip4 - 外部 IPv4 アドレス\n"
"$extip6 - 外部 IPv6 アドレス\n"
"$interfaces - ネットワークインターフェースの一覧\n"
"$intip4 - 内部 IPv4 アドレス\n"
"$intip6 - 内部 IPv6 アドレス\n"
"$profiles - プロファイルの一覧\n"
"$status - 現在のプロファイルの状態(静的/有効)"
#: rc.cpp:126
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "NOGISAKA Sadata"
#: rc.cpp:127
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "ngsksdt@gmail.com "
#, fuzzy
#~ msgid "Netctl GUI"
#~ msgstr "GUI を開始"
#, fuzzy
#~ msgid "Actions"
#~ msgstr "アクティブ時のアイコン"
#, fuzzy
#~ msgid "Connect to profile"
#~ msgstr "プロファイルを切り替える"
#, fuzzy
#~ msgid "Create a new profile"
#~ msgstr "他のプロファイルの利用を開始"
#, fuzzy
#~ msgid "Profile"
#~ msgstr "プロファイルの利用を停止する"
#, fuzzy
#~ msgid "WiFi menu"
#~ msgstr "WiFi メニューを表示"
#, fuzzy
#~ msgid "Use peer DNS"
#~ msgstr "ヘルパを使用する"
#, fuzzy
#~ msgid "netctl-auto"
#~ msgstr "netctl-auto へのパス"
#, fuzzy
#~ msgid "Enable"
#~ msgstr "%1 を有効にする"
#, fuzzy
#~ msgid "Enable all profiles"
#~ msgstr "プロファイルを有効にする"
#, fuzzy
#~ msgid "Disable all profiles"
#~ msgstr "プロファイルを有効にする"
#, fuzzy
#~ msgid "Start service"
#~ msgstr "プロファイルの利用を開始"
#, fuzzy
#~ msgid "Restart service"
#~ msgstr "プロファイルの利用を再開"
#, fuzzy
#~ msgid "Enable service"
#~ msgstr "プロファイルを有効にする"
#, fuzzy
#~ msgid "Helper"
#~ msgstr "ヘルパを使用する"
#, fuzzy
#~ msgid "netctl"
#~ msgstr "netctl へのパス"
#, fuzzy
#~ msgid "Start"
#~ msgstr "GUI を開始"
#, fuzzy
#~ msgid "Path to systemctl"
#~ msgstr "netctl へのパス"
#, fuzzy
#~ msgid "netctl path"
#~ msgstr "Netctl plasmoid"
#, fuzzy
#~ msgid "netctl-auto path"
#~ msgstr "netctl-auto へのパス"
#, fuzzy
#~ msgid "Path to profile directory"
#~ msgstr "プロファイルを %1 へ切り替える"
#, fuzzy
#~ msgid "Path to sudo"
#~ msgstr "GUIへのパス"
#, fuzzy
#~ msgid "Path to wpa_cli"
#~ msgstr "netctl へのパス"
#, fuzzy
#~ msgid "Path to control directory"
#~ msgstr "netctl へのパス"
#, fuzzy
#~ msgid "Path to interface list"
#~ msgstr "netctl へのパス"

View File

@ -0,0 +1,494 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/netctl-gui/issues\n"
"POT-Creation-Date: 2015-01-09 04:54+0300\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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: plasmoid-kde4/netctl.cpp:238 plasmoid-kf5/plugin/netctladds.cpp:186
msgid "Set profile %1 disabled"
msgstr ""
#: plasmoid-kde4/netctl.cpp:241 plasmoid-kf5/plugin/netctladds.cpp:189
msgid "Set profile %1 enabled"
msgstr ""
#: plasmoid-kde4/netctl.cpp:262 plasmoid-kf5/plugin/netctladds.cpp:208
msgid "Restart profile %1"
msgstr ""
#: plasmoid-kde4/netctl.cpp:283 plasmoid-kf5/plugin/netctladds.cpp:232
msgid "Start profile %1"
msgstr ""
#: plasmoid-kde4/netctl.cpp:309 plasmoid-kf5/plugin/netctladds.cpp:257
msgid "Stop profile %1"
msgstr ""
#: plasmoid-kde4/netctl.cpp:329 plasmoid-kde4/netctl.cpp:467
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:132
#: plasmoid-kf5/plugin/netctladds.cpp:274
msgid "Stop all profiles"
msgstr ""
#: plasmoid-kde4/netctl.cpp:349 plasmoid-kf5/plugin/netctladds.cpp:296
msgid "Switch to profile %1"
msgstr ""
#: plasmoid-kde4/netctl.cpp:422 plasmoid-kf5/plasmoid/contents/ui/main.qml:203
msgid "Start another profile"
msgstr ""
#: plasmoid-kde4/netctl.cpp:423 plasmoid-kf5/plasmoid/contents/ui/main.qml:204
msgid "Stop %1"
msgstr ""
#: plasmoid-kde4/netctl.cpp:424 plasmoid-kf5/plasmoid/contents/ui/main.qml:205
msgid "Restart %1"
msgstr ""
#: plasmoid-kde4/netctl.cpp:426 plasmoid-kf5/plasmoid/contents/ui/main.qml:207
msgid "Disable %1"
msgstr ""
#: plasmoid-kde4/netctl.cpp:428 plasmoid-kf5/plasmoid/contents/ui/main.qml:209
msgid "Enable %1"
msgstr ""
#: plasmoid-kde4/netctl.cpp:431 plasmoid-kde4/netctl.cpp:454
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:130
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:211
msgid "Start profile"
msgstr ""
#: plasmoid-kde4/netctl.cpp:462 plasmoid-kf5/plasmoid/contents/ui/main.qml:131
msgid "Stop profile"
msgstr ""
#: plasmoid-kde4/netctl.cpp:472 plasmoid-kf5/plasmoid/contents/ui/main.qml:133
msgid "Switch to profile"
msgstr ""
#: plasmoid-kde4/netctl.cpp:480 plasmoid-kf5/plasmoid/contents/ui/main.qml:134
msgid "Restart profile"
msgstr ""
#: plasmoid-kde4/netctl.cpp:485 plasmoid-kf5/plasmoid/contents/ui/main.qml:135
msgid "Enable profile"
msgstr ""
#: plasmoid-kde4/netctl.cpp:489
msgid "Show netctl-gui"
msgstr ""
#: plasmoid-kde4/netctl.cpp:494 plasmoid-kf5/plasmoid/contents/ui/main.qml:137
msgid "Show WiFi menu"
msgstr ""
#: plasmoid-kde4/netctl.cpp:521
msgid "Start GUI"
msgstr ""
#: plasmoid-kde4/netctl.cpp:532
msgid "Start WiFi menu"
msgstr ""
#: plasmoid-kde4/netctl.cpp:572
msgid "Network is up"
msgstr ""
#: plasmoid-kde4/netctl.cpp:576
msgid "Network is down"
msgstr ""
#: plasmoid-kde4/netctl.cpp:766
msgid ""
"Version %1\n"
"(build date %2)"
msgstr ""
#: plasmoid-kde4/netctl.cpp:767 plasmoid-kf5/plugin/netctladds.cpp:88
msgid "KDE widget which interacts with netctl."
msgstr ""
#: plasmoid-kde4/netctl.cpp:768 plasmoid-kf5/plugin/netctladds.cpp:90
msgid "Links:"
msgstr ""
#: plasmoid-kde4/netctl.cpp:769 plasmoid-kf5/plugin/netctladds.cpp:91
msgid "Homepage"
msgstr ""
#: plasmoid-kde4/netctl.cpp:770 plasmoid-kf5/plugin/netctladds.cpp:92
msgid "Repository"
msgstr ""
#: plasmoid-kde4/netctl.cpp:771 plasmoid-kf5/plugin/netctladds.cpp:93
msgid "Bugtracker"
msgstr ""
#: plasmoid-kde4/netctl.cpp:772 plasmoid-kf5/plugin/netctladds.cpp:94
msgid "Translation issue"
msgstr ""
#: plasmoid-kde4/netctl.cpp:773 plasmoid-kf5/plugin/netctladds.cpp:95
msgid "AUR packages"
msgstr ""
#: plasmoid-kde4/netctl.cpp:775 plasmoid-kf5/plugin/netctladds.cpp:98
msgid "This software is licensed under %1"
msgstr ""
#: plasmoid-kde4/netctl.cpp:783 plasmoid-kf5/plugin/netctladds.cpp:100
msgid "Translators: %1"
msgstr ""
#: plasmoid-kde4/netctl.cpp:784 plasmoid-kf5/plugin/netctladds.cpp:108
msgid "This software uses: %1"
msgstr ""
#: plasmoid-kde4/netctl.cpp:786
msgid "Netctl plasmoid"
msgstr ""
#: plasmoid-kde4/netctl.cpp:787
#: plasmoid-kf5/plasmoid/contents/config/config.qml:31
msgid "Appearance"
msgstr ""
#: plasmoid-kde4/netctl.cpp:788
#: plasmoid-kf5/plasmoid/contents/config/config.qml:37
msgid "DataEngine"
msgstr ""
#: plasmoid-kde4/netctl.cpp:789
#: plasmoid-kf5/plasmoid/contents/config/config.qml:43
#: plasmoid-kf5/plasmoid/contents/ui/about.qml:41
msgid "About"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/config/config.qml:25
msgid "Widget"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/about.qml:74
msgid "Acknowledgment"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:408
#. i18n: ectx: property (text), widget (QLabel, label_textAlign)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:64 rc.cpp:45
msgid "Text align"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:72
msgid "center"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:76
msgid "right"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:80
msgid "left"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:84
msgid "justify"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:326
#. i18n: ectx: property (text), widget (QLabel, label_font)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:107 rc.cpp:33
msgid "Font"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:142
#. i18n: ectx: property (text), widget (QLabel, label_fontSize)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:125 rc.cpp:15
msgid "Font size"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:203
#. i18n: ectx: property (text), widget (QLabel, label_fontWeight)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:145 rc.cpp:21
msgid "Font weight"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:153
msgid "light"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:157
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:200
msgid "normal"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:161
msgid "demi bold"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:165
msgid "bold"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:169
msgid "black"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:267
#. i18n: ectx: property (text), widget (QLabel, label_fontStyle)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:192 rc.cpp:27
msgid "Font style"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:204
msgid "italic"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:80
#. i18n: ectx: property (text), widget (QLabel, label_fontColor)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:227 rc.cpp:9
msgid "Font color"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:375
#. i18n: ectx: property (text), widget (QLabel, label_activeIcon)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:250 rc.cpp:39
msgid "Active icon"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:63
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
#. i18n: file: plasmoid-kde4/appearance.ui:391
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
#. i18n: file: plasmoid-kde4/dataengine.ui:50
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: plasmoid-kde4/dataengine.ui:83
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: plasmoid-kde4/dataengine.ui:119
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp4)
#. i18n: file: plasmoid-kde4/dataengine.ui:155
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp6)
#. i18n: file: plasmoid-kde4/widget.ui:108
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
#. i18n: file: plasmoid-kde4/widget.ui:144
#. i18n: ectx: property (text), widget (QPushButton, pushButton_helper)
#. i18n: file: plasmoid-kde4/widget.ui:177
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: plasmoid-kde4/widget.ui:210
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: plasmoid-kde4/widget.ui:246
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
#. i18n: file: plasmoid-kde4/widget.ui:282
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:260
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:292
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:59
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:92
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:150
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:208
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:90
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:147
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:181
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:216
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:273
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:330 rc.cpp:6 rc.cpp:42
#: rc.cpp:54 rc.cpp:60 rc.cpp:66 rc.cpp:72 rc.cpp:81 rc.cpp:87 rc.cpp:93
#: rc.cpp:99 rc.cpp:105 rc.cpp:111
msgid "Browse"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:267
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:299
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:66
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:99
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:157
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:215
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:97
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:153
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:188
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:223
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:280
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:337
msgid "Select a path"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:47
#. i18n: ectx: property (text), widget (QLabel, label_inactiveIcon)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:282 rc.cpp:3
msgid "Inactive icon"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:309
msgid "Select a color"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:318
msgid "Select a font"
msgstr ""
#. i18n: file: plasmoid-kde4/dataengine.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#. i18n: file: plasmoid-kde4/widget.ui:161
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:49
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:169 rc.cpp:51 rc.cpp:90
msgid "Path to netctl"
msgstr ""
#. i18n: file: plasmoid-kde4/dataengine.ui:67
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#. i18n: file: plasmoid-kde4/widget.ui:194
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:82
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:204 rc.cpp:57 rc.cpp:96
msgid "Path to netctl-auto"
msgstr ""
#. i18n: file: plasmoid-kde4/dataengine.ui:100
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_extIp4)
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:115 rc.cpp:63
msgid "Check external IPv4"
msgstr ""
#. i18n: file: plasmoid-kde4/dataengine.ui:136
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_extIp6)
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:173 rc.cpp:69
msgid "Check external IPv6"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:92
msgid "inactive"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:92
msgid "active"
msgstr ""
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:91
msgid "Network status has been changed to '%1'"
msgstr ""
#. i18n: file: plasmoid-kde4/widget.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_autoUpdate)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:60 rc.cpp:75
msgid "Auto update interval, msec"
msgstr ""
#. i18n: file: plasmoid-kde4/widget.ui:92
#. i18n: ectx: property (text), widget (QLabel, label_gui)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:80 rc.cpp:78
msgid "Path to GUI"
msgstr ""
#. i18n: file: plasmoid-kde4/widget.ui:125
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_helper)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:113 rc.cpp:84
msgid "Use helper"
msgstr ""
#. i18n: file: plasmoid-kde4/widget.ui:227
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_sudo)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:239 rc.cpp:102
msgid "Use sudo for netctl"
msgstr ""
#. i18n: file: plasmoid-kde4/widget.ui:263
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_wifi)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:296 rc.cpp:108
msgid "Show 'Start WiFi menu'"
msgstr ""
#: plasmoid-kf5/plugin/netctladds.cpp:160
msgid "Run %1"
msgstr ""
#: plasmoid-kf5/plugin/netctladds.cpp:228
#: plasmoid-kf5/plugin/netctladds.cpp:292
msgid "Select profile"
msgstr ""
#: plasmoid-kf5/plugin/netctladds.cpp:228
#: plasmoid-kf5/plugin/netctladds.cpp:292
msgid "Profile:"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:112
#. i18n: ectx: property (toolTip), widget (KColorCombo, kcolorcombo_fontColor)
#: rc.cpp:12
msgid "Set font color"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:174
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontSize)
#: rc.cpp:18
msgid "Set font size"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:235
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontWeight)
#: rc.cpp:24
msgid "Set font weight"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:299
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_fontStyle)
#: rc.cpp:30
msgid "Set font style"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:358
#. i18n: ectx: property (toolTip), widget (QFontComboBox, fontComboBox_font)
#: rc.cpp:36
msgid "Set font family"
msgstr ""
#. i18n: file: plasmoid-kde4/appearance.ui:440
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_textAlign)
#: rc.cpp:48
msgid "Set text align"
msgstr ""
#. i18n: file: plasmoid-kde4/widget.ui:291
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showBigInterface)
#: rc.cpp:114
msgid "Show more detailed interface"
msgstr ""
#. i18n: file: plasmoid-kde4/widget.ui:309
#. i18n: ectx: property (toolTip), widget (QPlainTextEdit, textEdit)
#: rc.cpp:117
msgid ""
"$info - active profile information\n"
"$current - current profile name\n"
"$extip4 - external IPv4\n"
"$extip6 - external IPv6\n"
"$interfaces - list of the network interfaces\n"
"$intip4 - internal IPv4\n"
"$intip6 - internal IPv6\n"
"$profiles - list of the netctl profiles\n"
"$status - current profile status (static/enabled)"
msgstr ""
#: rc.cpp:126
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr ""
#: rc.cpp:127
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr ""

View File

@ -0,0 +1,634 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014, 2015.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/netctl-gui/issues\n"
"POT-Creation-Date: 2015-01-09 04:54+0300\n"
"PO-Revision-Date: 2015-01-09 04:57+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Lokalize 1.5\n"
#: plasmoid-kde4/netctl.cpp:238 plasmoid-kf5/plugin/netctladds.cpp:186
msgid "Set profile %1 disabled"
msgstr "Выключение автозагрузки профиля %1"
#: plasmoid-kde4/netctl.cpp:241 plasmoid-kf5/plugin/netctladds.cpp:189
msgid "Set profile %1 enabled"
msgstr "Включение автозагрузки профиля %1"
#: plasmoid-kde4/netctl.cpp:262 plasmoid-kf5/plugin/netctladds.cpp:208
msgid "Restart profile %1"
msgstr "Перезапуск профиля %1"
#: plasmoid-kde4/netctl.cpp:283 plasmoid-kf5/plugin/netctladds.cpp:232
msgid "Start profile %1"
msgstr "Запуск профиля %1"
#: plasmoid-kde4/netctl.cpp:309 plasmoid-kf5/plugin/netctladds.cpp:257
msgid "Stop profile %1"
msgstr "Остановка профиля %1"
#: plasmoid-kde4/netctl.cpp:329 plasmoid-kde4/netctl.cpp:467
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:132
#: plasmoid-kf5/plugin/netctladds.cpp:274
msgid "Stop all profiles"
msgstr "Остановить все профили"
#: plasmoid-kde4/netctl.cpp:349 plasmoid-kf5/plugin/netctladds.cpp:296
msgid "Switch to profile %1"
msgstr "Переключение на профиль %1"
#: plasmoid-kde4/netctl.cpp:422 plasmoid-kf5/plasmoid/contents/ui/main.qml:203
msgid "Start another profile"
msgstr "Запустить другой профиль"
#: plasmoid-kde4/netctl.cpp:423 plasmoid-kf5/plasmoid/contents/ui/main.qml:204
msgid "Stop %1"
msgstr "Остановить %1"
#: plasmoid-kde4/netctl.cpp:424 plasmoid-kf5/plasmoid/contents/ui/main.qml:205
msgid "Restart %1"
msgstr "Перезапустить %1"
#: plasmoid-kde4/netctl.cpp:426 plasmoid-kf5/plasmoid/contents/ui/main.qml:207
msgid "Disable %1"
msgstr "Отключить %1"
#: plasmoid-kde4/netctl.cpp:428 plasmoid-kf5/plasmoid/contents/ui/main.qml:209
msgid "Enable %1"
msgstr "Включить %1"
#: plasmoid-kde4/netctl.cpp:431 plasmoid-kde4/netctl.cpp:454
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:130
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:211
msgid "Start profile"
msgstr "Запустить профиль"
#: plasmoid-kde4/netctl.cpp:462 plasmoid-kf5/plasmoid/contents/ui/main.qml:131
msgid "Stop profile"
msgstr "Остановить профиль"
#: plasmoid-kde4/netctl.cpp:472 plasmoid-kf5/plasmoid/contents/ui/main.qml:133
msgid "Switch to profile"
msgstr "Переключить профиль"
#: plasmoid-kde4/netctl.cpp:480 plasmoid-kf5/plasmoid/contents/ui/main.qml:134
msgid "Restart profile"
msgstr "Перезапустить профиль"
#: plasmoid-kde4/netctl.cpp:485 plasmoid-kf5/plasmoid/contents/ui/main.qml:135
msgid "Enable profile"
msgstr "Включить профиль"
#: plasmoid-kde4/netctl.cpp:489
msgid "Show netctl-gui"
msgstr "Показать netctl-gui"
#: plasmoid-kde4/netctl.cpp:494 plasmoid-kf5/plasmoid/contents/ui/main.qml:137
msgid "Show WiFi menu"
msgstr "Запустить WiFi-menu"
#: plasmoid-kde4/netctl.cpp:521
msgid "Start GUI"
msgstr "Запуск GUI"
#: plasmoid-kde4/netctl.cpp:532
msgid "Start WiFi menu"
msgstr "Запуск WiFi-menu"
#: plasmoid-kde4/netctl.cpp:572
msgid "Network is up"
msgstr "Сеть работает"
#: plasmoid-kde4/netctl.cpp:576
msgid "Network is down"
msgstr "Сеть не работает"
#: plasmoid-kde4/netctl.cpp:766
msgid ""
"Version %1\n"
"(build date %2)"
msgstr ""
"Версия %1\n"
"(дата сборки %2)"
#: plasmoid-kde4/netctl.cpp:767 plasmoid-kf5/plugin/netctladds.cpp:88
msgid "KDE widget which interacts with netctl."
msgstr "Виджет KDE, который взаимодействует с netctl."
#: plasmoid-kde4/netctl.cpp:768 plasmoid-kf5/plugin/netctladds.cpp:90
msgid "Links:"
msgstr "Ссылки:"
#: plasmoid-kde4/netctl.cpp:769 plasmoid-kf5/plugin/netctladds.cpp:91
msgid "Homepage"
msgstr "Домашняя страница"
#: plasmoid-kde4/netctl.cpp:770 plasmoid-kf5/plugin/netctladds.cpp:92
msgid "Repository"
msgstr "Репозиторий"
#: plasmoid-kde4/netctl.cpp:771 plasmoid-kf5/plugin/netctladds.cpp:93
msgid "Bugtracker"
msgstr "Багтрекер"
#: plasmoid-kde4/netctl.cpp:772 plasmoid-kf5/plugin/netctladds.cpp:94
msgid "Translation issue"
msgstr "Тикет перевода"
#: plasmoid-kde4/netctl.cpp:773 plasmoid-kf5/plugin/netctladds.cpp:95
msgid "AUR packages"
msgstr "Пакеты в AUR"
#: plasmoid-kde4/netctl.cpp:775 plasmoid-kf5/plugin/netctladds.cpp:98
msgid "This software is licensed under %1"
msgstr "Данное приложение лицензировано под %1"
#: plasmoid-kde4/netctl.cpp:783 plasmoid-kf5/plugin/netctladds.cpp:100
msgid "Translators: %1"
msgstr "Переводчики: %1"
#: plasmoid-kde4/netctl.cpp:784 plasmoid-kf5/plugin/netctladds.cpp:108
msgid "This software uses: %1"
msgstr "Данное приложение использует: %1"
#: plasmoid-kde4/netctl.cpp:786
msgid "Netctl plasmoid"
msgstr "Netctl plasmoid"
#: plasmoid-kde4/netctl.cpp:787
#: plasmoid-kf5/plasmoid/contents/config/config.qml:31
msgid "Appearance"
msgstr "Внешний вид"
#: plasmoid-kde4/netctl.cpp:788
#: plasmoid-kf5/plasmoid/contents/config/config.qml:37
msgid "DataEngine"
msgstr "DataEngine"
#: plasmoid-kde4/netctl.cpp:789
#: plasmoid-kf5/plasmoid/contents/config/config.qml:43
#: plasmoid-kf5/plasmoid/contents/ui/about.qml:41
msgid "About"
msgstr "О программе"
#: plasmoid-kf5/plasmoid/contents/config/config.qml:25
msgid "Widget"
msgstr "Виджет"
#: plasmoid-kf5/plasmoid/contents/ui/about.qml:74
msgid "Acknowledgment"
msgstr "Acknowledgment"
#. i18n: file: plasmoid-kde4/appearance.ui:408
#. i18n: ectx: property (text), widget (QLabel, label_textAlign)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:64 rc.cpp:45
msgid "Text align"
msgstr "Выравнивание текста"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:72
msgid "center"
msgstr "по центру"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:76
msgid "right"
msgstr "справа"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:80
msgid "left"
msgstr "слева"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:84
msgid "justify"
msgstr "по ширине"
#. i18n: file: plasmoid-kde4/appearance.ui:326
#. i18n: ectx: property (text), widget (QLabel, label_font)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:107 rc.cpp:33
msgid "Font"
msgstr "Шрифт"
#. i18n: file: plasmoid-kde4/appearance.ui:142
#. i18n: ectx: property (text), widget (QLabel, label_fontSize)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:125 rc.cpp:15
msgid "Font size"
msgstr "Размер шрифта"
#. i18n: file: plasmoid-kde4/appearance.ui:203
#. i18n: ectx: property (text), widget (QLabel, label_fontWeight)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:145 rc.cpp:21
msgid "Font weight"
msgstr "Толщина шрифта"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:153
msgid "light"
msgstr "маленький"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:157
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:200
msgid "normal"
msgstr "нормальный"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:161
msgid "demi bold"
msgstr "нежирный"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:165
msgid "bold"
msgstr "жирный"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:169
msgid "black"
msgstr "очень жирный"
#. i18n: file: plasmoid-kde4/appearance.ui:267
#. i18n: ectx: property (text), widget (QLabel, label_fontStyle)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:192 rc.cpp:27
msgid "Font style"
msgstr "Стиль шрифта"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:204
msgid "italic"
msgstr "italic"
#. i18n: file: plasmoid-kde4/appearance.ui:80
#. i18n: ectx: property (text), widget (QLabel, label_fontColor)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:227 rc.cpp:9
msgid "Font color"
msgstr "Цвет шрифта"
#. i18n: file: plasmoid-kde4/appearance.ui:375
#. i18n: ectx: property (text), widget (QLabel, label_activeIcon)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:250 rc.cpp:39
msgid "Active icon"
msgstr "Иконка активного подключения"
#. i18n: file: plasmoid-kde4/appearance.ui:63
#. i18n: ectx: property (text), widget (QPushButton, pushButton_inactiveIcon)
#. i18n: file: plasmoid-kde4/appearance.ui:391
#. i18n: ectx: property (text), widget (QPushButton, pushButton_activeIcon)
#. i18n: file: plasmoid-kde4/dataengine.ui:50
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: plasmoid-kde4/dataengine.ui:83
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: plasmoid-kde4/dataengine.ui:119
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp4)
#. i18n: file: plasmoid-kde4/dataengine.ui:155
#. i18n: ectx: property (text), widget (QPushButton, pushButton_extIp6)
#. i18n: file: plasmoid-kde4/widget.ui:108
#. i18n: ectx: property (text), widget (QPushButton, pushButton_gui)
#. i18n: file: plasmoid-kde4/widget.ui:144
#. i18n: ectx: property (text), widget (QPushButton, pushButton_helper)
#. i18n: file: plasmoid-kde4/widget.ui:177
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctl)
#. i18n: file: plasmoid-kde4/widget.ui:210
#. i18n: ectx: property (text), widget (QPushButton, pushButton_netctlAuto)
#. i18n: file: plasmoid-kde4/widget.ui:246
#. i18n: ectx: property (text), widget (QPushButton, pushButton_sudo)
#. i18n: file: plasmoid-kde4/widget.ui:282
#. i18n: ectx: property (text), widget (QPushButton, pushButton_wifi)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:260
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:292
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:59
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:92
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:150
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:208
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:90
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:147
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:181
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:216
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:273
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:330 rc.cpp:6 rc.cpp:42
#: rc.cpp:54 rc.cpp:60 rc.cpp:66 rc.cpp:72 rc.cpp:81 rc.cpp:87 rc.cpp:93
#: rc.cpp:99 rc.cpp:105 rc.cpp:111
msgid "Browse"
msgstr "Обзор"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:267
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:299
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:66
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:99
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:157
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:215
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:97
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:153
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:188
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:223
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:280
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:337
msgid "Select a path"
msgstr "Выберете путь"
#. i18n: file: plasmoid-kde4/appearance.ui:47
#. i18n: ectx: property (text), widget (QLabel, label_inactiveIcon)
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:282 rc.cpp:3
msgid "Inactive icon"
msgstr "Иконка неактивного подключения"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:309
msgid "Select a color"
msgstr "Укажите цвет"
#: plasmoid-kf5/plasmoid/contents/ui/appearance.qml:318
msgid "Select a font"
msgstr "Укажите шрифт"
#. i18n: file: plasmoid-kde4/dataengine.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#. i18n: file: plasmoid-kde4/widget.ui:161
#. i18n: ectx: property (text), widget (QLabel, label_netctl)
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:49
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:169 rc.cpp:51 rc.cpp:90
msgid "Path to netctl"
msgstr "Путь к netctl"
#. i18n: file: plasmoid-kde4/dataengine.ui:67
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#. i18n: file: plasmoid-kde4/widget.ui:194
#. i18n: ectx: property (text), widget (QLabel, label_netctlAuto)
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:82
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:204 rc.cpp:57 rc.cpp:96
msgid "Path to netctl-auto"
msgstr "Путь к netctl-auto"
#. i18n: file: plasmoid-kde4/dataengine.ui:100
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_extIp4)
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:115 rc.cpp:63
msgid "Check external IPv4"
msgstr "Проверять внешний IPv4"
#. i18n: file: plasmoid-kde4/dataengine.ui:136
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_extIp6)
#: plasmoid-kf5/plasmoid/contents/ui/dataengine.qml:173 rc.cpp:69
msgid "Check external IPv6"
msgstr "Проверять внешний IPv6"
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:92
msgid "inactive"
msgstr "неактивен"
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:92
msgid "active"
msgstr "активен"
#: plasmoid-kf5/plasmoid/contents/ui/main.qml:91
msgid "Network status has been changed to '%1'"
msgstr "Сетевой статус был изменен на '%1'"
#. i18n: file: plasmoid-kde4/widget.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_autoUpdate)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:60 rc.cpp:75
msgid "Auto update interval, msec"
msgstr "Интервал автообновления, мсек"
#. i18n: file: plasmoid-kde4/widget.ui:92
#. i18n: ectx: property (text), widget (QLabel, label_gui)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:80 rc.cpp:78
msgid "Path to GUI"
msgstr "Путь к GUI"
#. i18n: file: plasmoid-kde4/widget.ui:125
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_helper)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:113 rc.cpp:84
msgid "Use helper"
msgstr "Использовать хелпер"
#. i18n: file: plasmoid-kde4/widget.ui:227
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_sudo)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:239 rc.cpp:102
msgid "Use sudo for netctl"
msgstr "Использовать sudo для netctl"
#. i18n: file: plasmoid-kde4/widget.ui:263
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_wifi)
#: plasmoid-kf5/plasmoid/contents/ui/widget.qml:296 rc.cpp:108
msgid "Show 'Start WiFi menu'"
msgstr "Показать 'Запустить WiFi-menu'"
#: plasmoid-kf5/plugin/netctladds.cpp:160
msgid "Run %1"
msgstr "Запуск %1"
#: plasmoid-kf5/plugin/netctladds.cpp:228
#: plasmoid-kf5/plugin/netctladds.cpp:292
msgid "Select profile"
msgstr "Выберете профиль"
#: plasmoid-kf5/plugin/netctladds.cpp:228
#: plasmoid-kf5/plugin/netctladds.cpp:292
msgid "Profile:"
msgstr "Профиль:"
#. i18n: file: plasmoid-kde4/appearance.ui:112
#. i18n: ectx: property (toolTip), widget (KColorCombo, kcolorcombo_fontColor)
#: rc.cpp:12
msgid "Set font color"
msgstr "Укажите цвет шрифта"
#. i18n: file: plasmoid-kde4/appearance.ui:174
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontSize)
#: rc.cpp:18
msgid "Set font size"
msgstr "Укажите размер шрифта"
#. i18n: file: plasmoid-kde4/appearance.ui:235
#. i18n: ectx: property (toolTip), widget (QSpinBox, spinBox_fontWeight)
#: rc.cpp:24
msgid "Set font weight"
msgstr "Укажите ширину шрифта"
#. i18n: file: plasmoid-kde4/appearance.ui:299
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_fontStyle)
#: rc.cpp:30
msgid "Set font style"
msgstr "Укажите стиль шрифта"
#. i18n: file: plasmoid-kde4/appearance.ui:358
#. i18n: ectx: property (toolTip), widget (QFontComboBox, fontComboBox_font)
#: rc.cpp:36
msgid "Set font family"
msgstr "Укажите шрифт"
#. i18n: file: plasmoid-kde4/appearance.ui:440
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_textAlign)
#: rc.cpp:48
msgid "Set text align"
msgstr "Установите выравнивание текста"
#. i18n: file: plasmoid-kde4/widget.ui:291
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_showBigInterface)
#: rc.cpp:114
msgid "Show more detailed interface"
msgstr "Показать более детальный интерфейс"
#. i18n: file: plasmoid-kde4/widget.ui:309
#. i18n: ectx: property (toolTip), widget (QPlainTextEdit, textEdit)
#: rc.cpp:117
msgid ""
"$info - active profile information\n"
"$current - current profile name\n"
"$extip4 - external IPv4\n"
"$extip6 - external IPv6\n"
"$interfaces - list of the network interfaces\n"
"$intip4 - internal IPv4\n"
"$intip6 - internal IPv6\n"
"$profiles - list of the netctl profiles\n"
"$status - current profile status (static/enabled)"
msgstr ""
"$info - информация об активном профиле\n"
"$current - имя текущего профиля\n"
"$extip4 - внешний IPv4\n"
"$extip6 - внешний IPv6\n"
"$interfaces - список сетевых интерфейсов\n"
"$intip4 - внутренний IPv4\n"
"$intip6 - внутренний IPv6\n"
"$profiles - список профилей netctl\n"
"$status - статус текущего профиля (static/enabled)"
#: rc.cpp:126
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Evgeniy Alekseev"
#: rc.cpp:127
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "esalexeev@gmail.com"
#~ msgid "Acknowledgement"
#~ msgstr "Благодарности"
#, fuzzy
#~ msgid "Connection"
#~ msgstr "Настройка"
#, fuzzy
#~ msgid "Binds to interfaces"
#~ msgstr "Путь к интерфейсам"
#, fuzzy
#~ msgid "Netctl GUI"
#~ msgstr "Запуск GUI"
#, fuzzy
#~ msgid "Actions"
#~ msgstr "Иконка активного подключения"
#, fuzzy
#~ msgid "Connect to profile"
#~ msgstr "Переключить профиль"
#, fuzzy
#~ msgid "Create a new profile"
#~ msgstr "Запустить другой профиль"
#, fuzzy
#~ msgid "Profile"
#~ msgstr "Остановить профиль"
#, fuzzy
#~ msgid "WiFi menu"
#~ msgstr "Запустить WiFi-menu"
#, fuzzy
#~ msgid "Use peer DNS"
#~ msgstr "Использовать хелпер"
#, fuzzy
#~ msgid "netctl-auto"
#~ msgstr "Путь к netctl-auto"
#, fuzzy
#~ msgid "Enable"
#~ msgstr "Включить %1"
#, fuzzy
#~ msgid "Enable all profiles"
#~ msgstr "Включить профиль"
#, fuzzy
#~ msgid "Disable all profiles"
#~ msgstr "Включить профиль"
#, fuzzy
#~ msgid "Start service"
#~ msgstr "Запустить профиль"
#, fuzzy
#~ msgid "Restart service"
#~ msgstr "Перезапустить профиль"
#, fuzzy
#~ msgid "Enable service"
#~ msgstr "Включить профиль"
#, fuzzy
#~ msgid "LCP echo interval"
#~ msgstr "Показать внутренний IP"
#, fuzzy
#~ msgid "Helper"
#~ msgstr "Использовать хелпер"
#, fuzzy
#~ msgid "netctl"
#~ msgstr "Путь к netctl"
#, fuzzy
#~ msgid "Start"
#~ msgstr "Запуск GUI"
#, fuzzy
#~ msgid "Path to systemctl"
#~ msgstr "Путь к netctl"
#, fuzzy
#~ msgid "netctl path"
#~ msgstr "Netctl plasmoid"
#, fuzzy
#~ msgid "netctl-auto path"
#~ msgstr "Путь к netctl-auto"
#, fuzzy
#~ msgid "Path to profile directory"
#~ msgstr "Переключение на профиль %1"
#, fuzzy
#~ msgid "Path to sudo"
#~ msgstr "Путь к ip"
#, fuzzy
#~ msgid "Path to wpa_cli"
#~ msgstr "Путь к ip"
#, fuzzy
#~ msgid "Path to control directory"
#~ msgstr "Путь к netctl"
#~ msgid "Path to interface list"
#~ msgstr "Путь к интерфейсам"
#, fuzzy
#~ msgid "Path to rfkill device list"
#~ msgstr "Путь к интерфейсам"
#, fuzzy
#~ msgid "wpa-configsection"
#~ msgstr "Настройка"
#~ msgid "Show network devices"
#~ msgstr "Показать сетевые устройства"
#~ msgid "Show external IP"
#~ msgstr "Показать внешний IP"

View File

@ -31,22 +31,22 @@ include_directories (${CMAKE_CURRENT_SOURCE_DIR}/../${PROJECT_LIBRARY}/include/
link_directories (${PROJECT_LIBRARY}/src/lib)
if (USE_QT5)
find_package(Qt5 COMPONENTS Core DBus Test REQUIRED)
add_definitions(${Qt5Core_DEFINITIONS} ${Qt5DBus_DEFINITIONS} ${Qt5Test_DEFINITIONS})
include_directories (${Qt5Core_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS} ${Qt5Test_INCLUDE_DIRS})
set (QT_NEEDED_LIBS ${Qt5Core_LIBRARIES} ${Qt5DBus_LIBRARIES} ${Qt5Test_LIBRARIES})
qt5_wrap_cpp (NETCTL_MOC_SOURCES ${NETCTL_HEADERS})
qt5_wrap_cpp (NETCTLAUTO_MOC_SOURCES ${NETCTLAUTO_HEADERS})
qt5_wrap_cpp (PROFILE_MOC_SOURCES ${PROFILE_HEADERS})
qt5_wrap_cpp (WPASUP_MOC_SOURCES ${WPASUP_HEADERS})
find_package (Qt5 COMPONENTS Core DBus Test REQUIRED)
add_definitions (${Qt5Core_DEFINITIONS} ${Qt5DBus_DEFINITIONS} ${Qt5Test_DEFINITIONS})
include_directories (${Qt5Core_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS} ${Qt5Test_INCLUDE_DIRS})
set (QT_NEEDED_LIBS ${Qt5Core_LIBRARIES} ${Qt5DBus_LIBRARIES} ${Qt5Test_LIBRARIES})
qt5_wrap_cpp (NETCTL_MOC_SOURCES ${NETCTL_HEADERS})
qt5_wrap_cpp (NETCTLAUTO_MOC_SOURCES ${NETCTLAUTO_HEADERS})
qt5_wrap_cpp (PROFILE_MOC_SOURCES ${PROFILE_HEADERS})
qt5_wrap_cpp (WPASUP_MOC_SOURCES ${WPASUP_HEADERS})
else ()
find_package (Qt4 COMPONENTS QtCore QtDBus QtTest REQUIRED)
include (${QT_USE_FILE})
set (QT_NEEDED_LIBS ${QT_QTCORE_LIBRARY} ${QT_QTDBUS_LIBRARY} ${QT_QTTEST_LIBRARY})
qt4_wrap_cpp (NETCTL_MOC_SOURCES ${NETCTL_HEADERS})
qt4_wrap_cpp (NETCTLAUTO_MOC_SOURCES ${NETCTLAUTO_HEADERS})
qt4_wrap_cpp (PROFILE_MOC_SOURCES ${PROFILE_HEADERS})
qt4_wrap_cpp (WPASUP_MOC_SOURCES ${WPASUP_HEADERS})
find_package (Qt4 COMPONENTS QtCore QtDBus QtTest REQUIRED)
include (${QT_USE_FILE})
set (QT_NEEDED_LIBS ${QT_QTCORE_LIBRARY} ${QT_QTDBUS_LIBRARY} ${QT_QTTEST_LIBRARY})
qt4_wrap_cpp (NETCTL_MOC_SOURCES ${NETCTL_HEADERS})
qt4_wrap_cpp (NETCTLAUTO_MOC_SOURCES ${NETCTLAUTO_HEADERS})
qt4_wrap_cpp (PROFILE_MOC_SOURCES ${PROFILE_HEADERS})
qt4_wrap_cpp (WPASUP_MOC_SOURCES ${WPASUP_HEADERS})
endif()
# netctl

View File

@ -31,6 +31,7 @@
#define PROJECT_BUILD_HELPER "@BUILD_HELPER@"
#define PROJECT_BUILD_LIBRARY "@BUILD_LIBRARY@"
#define PROJECT_BUILD_PLASMOID "@BUILD_PLASMOID@"
#cmakedefine BUILD_KDE4
// additional components
#define PROJECT_BUILD_DOCS "@BUILD_DOCS@"
#define PROJECT_BUILD_TEST "@BUILD_TEST@"
@ -38,6 +39,7 @@
#define PROJECT_DBUS_SYSTEMCONF_PATH "@DBUS_SYSTEMCONF_PATH@"
#define PROJECT_SYSTEMD_SERVICE_PATH "@SYSTEMD_SERVICE_PATH@"
#define PROJECT_USE_CAPABILITIES "@USE_CAPABILITIES@"
#define PROJECT_USE_KDE4 "@BUILD_KDE4@"
#define PROJECT_USE_QT5 "@USE_QT5@"
// dbus configuration