Compare commits

..

147 Commits

Author SHA1 Message Date
fe2f147d45 update requiremets 2015-08-16 15:52:31 +03:00
6c42b3dc7e update requirements 2015-08-16 15:35:42 +03:00
000708b6a2 renaming 2015-08-16 15:29:51 +03:00
4300e1d18a add files to build packages 2015-08-16 15:27:19 +03:00
c244166016 add note to readme 2015-05-22 01:03:49 +03:00
e3cb503b2e bump readme 2015-05-22 01:02:56 +03:00
fba0a91eb9 rename package to *-git 2015-05-22 00:53:18 +03:00
a098c9d2c4 rebuild package to git version 2015-05-22 00:48:28 +03:00
4a6ec00b20 drop kf5, create branch for 2.2.1 2015-05-19 21:53:19 +03:00
7ae90bf82d release 2.2.1 2015-02-24 00:14:04 +03:00
bcf26156d1 * implement interval to extupgrade (ApiVer = 1) (fix #45)
* improve extscript logic
* add cache values to both of them
2015-02-24 00:02:59 +03:00
4cee2535ee add desktop files reconfiguring
fix target on cmake builds
improve cmake version check logic
2015-02-17 03:37:06 +03:00
e1ebd87871 update pkg logic 2015-02-16 13:12:38 +03:00
4cef889fd4 implement is-active properties 2015-02-16 03:45:49 +03:00
d785839d1d remote sensors from deplist 2015-02-16 02:20:22 +03:00
cf6ccc293b update readme 2015-02-16 02:13:37 +03:00
e9ee6150c1 release 2.2.0 (KF5 developer preview) 2015-02-15 19:14:19 +03:00
30577e91ec changes in notifications 2015-02-14 21:25:18 +03:00
e5006ed2d6 fix update pkg
add notify flag
2015-02-13 08:11:56 +03:00
3bd73d0458 fix cppcheck warnings
improvements of interaction with items
2015-02-12 02:57:05 +03:00
4dbf5150fc update supporting files 2015-02-11 07:38:30 +03:00
061244b1d0 update translations
add notifications
edit resizing
fix reading ps
some fixes
2015-02-11 05:04:56 +03:00
8055647f34 * remove panel hidding functions (comment in)
* remove ps calls from DE. Now processes are reading from /proc
* remove qdbus calls from DE. Now mpris information is reading using
  native DBus functions
* update graphicalitem in KDE4

TODO:
* widgets resizing
* tests and optimizations
* update DE configuration for KDE4 package
2015-02-10 18:50:36 +03:00
d74c7cb030 add forgotten freeing 2015-02-09 14:09:18 +03:00
f5006af977 add remove button 2015-02-09 14:08:51 +03:00
16d7d2bc20 update DP
update aw-kde4
2015-02-08 12:57:25 +03:00
6e27717dc8 rollback gi 2015-02-07 01:29:22 +03:00
d1f1d79752 Merge branch 'master' of github.com:arcan1s/awesome-widgets
Conflicts:
	sources/awesome-widget-kde4/graphicalitem.cpp
2015-02-07 01:28:14 +03:00
862d14dc0e udpate aw-kde4 2015-02-06 16:22:31 +03:00
685c0390b4 end porting core part
todo: panels control, windows preview
2015-02-05 12:31:34 +03:00
35a5aa6a6c fix memory leak 2015-02-05 05:32:38 +03:00
681fec4cac start work on desktop panel 2015-02-05 04:26:19 +03:00
bb88892125 add notifications
edit widget.qml
fix bug in monitor
2015-02-04 05:20:00 +03:00
f01fd96cf6 add support of smartctl (TODO remove qdbus calls)
end work on awesome-widget (prerelease state)
2015-02-04 04:17:40 +03:00
eac1319889 some work on tooltip 2015-02-03 08:33:46 +03:00
86d4bd76ea some fixes 2015-02-03 02:01:43 +03:00
27fd4e8f1e end work on awesomewidget
edit setdatabysource method
2015-02-02 08:21:56 +03:00
9611677254 some updates 2015-02-01 03:34:16 +03:00
a61cff7caa remove fucking connector 2015-01-31 07:20:22 +03:00
4966a0a5bf some work on configuration interface
correct file locations
create configuration slots
TODO сделать этот ебаный коннектор или выкинуть его нахуй
2015-01-31 06:10:21 +03:00
b1abf74e89 work on interface 2015-01-30 08:35:22 +03:00
16170c72b0 move back desktop files
add widget configuration
append plugin slots
rewrite KF5 and DE to use ExtUpgrade class
some fixes
2015-01-30 02:43:31 +03:00
c5a0ba3796 end work on core part. Now widget works normally
(except for configuration and appearance)
2015-01-28 07:53:31 +03:00
cce37d66e5 dataengine fixes 2015-01-25 17:26:54 +03:00
c850aaf2a3 some work on porting 2015-01-24 19:16:00 +03:00
43efbbba72 minor changes 2015-01-23 08:36:27 +03:00
3a0cbee39f realize keys methods 2015-01-21 08:06:48 +03:00
213595b3c1 split plugin to classes
rewrite extscripts
fix building
implement several methods
2015-01-20 01:08:21 +03:00
f5fbb80d91 work on plugin 2015-01-19 08:31:48 +03:00
0288e6e1eb edit translations build 2015-01-18 04:16:40 +03:00
6667b45919 edit translations 2015-01-17 23:24:14 +03:00
9ff07241b1 implement general methods to plugin 2015-01-17 02:30:16 +03:00
cc7b7b5659 create skel for aw 2015-01-16 05:27:41 +03:00
3e709f549d port dataengine to kf5 2015-01-16 04:09:39 +03:00
adcf6c942f start work on porting 2015-01-15 18:46:56 +03:00
7415a6830f release 2.1.0 2014-12-31 01:04:50 +03:00
c23846f7b4 update readme 2014-12-28 16:49:43 +03:00
e957a2723b Merge branch 'master' of github.com:arcan1s/awesome-widgets 2014-12-26 02:31:29 +03:00
5369bbda65 remove script 2014-12-26 02:31:13 +03:00
6a8842163e update text in version.h 2014-12-25 00:14:03 +03:00
56e7ee3d11 approve translation 2014-12-24 00:05:40 +03:00
ce72c46cd9 Merge pull request #40 from underr/master
pt_BR translation
2014-12-24 00:00:59 +03:00
78ab09c1da pt_BR translation 2014-12-23 14:21:32 -02:00
498a965488 add skel to create rpm and debs 2014-12-23 10:32:18 +03:00
d1d4a97fa4 apply fix to extscripts 2014-12-22 06:19:25 +03:00
8f1e8606d4 update Ukrainian transaltion 2014-12-18 01:37:06 +03:00
b682c6dbd6 update Spanish translation 2014-12-16 09:36:02 +03:00
c8bf047e76 implement #36
fix (?) initialization
update translations
2014-12-15 02:41:39 +03:00
a336d9aa04 fix #37 2014-12-12 01:04:31 +03:00
2272b0c2c0 auto commit 2014-12-12 00:02:48 +03:00
0533ee8cd5 add #38 2014-12-07 03:04:35 +03:00
be792a4c5a add graphical settings 2014-12-03 04:33:13 +00:00
997e13706b add comments to template 2014-11-29 22:48:52 +03:00
6bcb6798a2 fix #37 2014-11-28 21:02:45 +03:00
4e3593a2a9 fix build 2014-11-25 04:00:01 +03:00
4b471593c7 update changelogs 2014-11-24 09:36:17 +03:00
695a85be29 update translations, implement copy method 2014-11-21 05:13:01 +03:00
bae34ba898 update translations, version and readme 2014-11-21 03:28:11 +03:00
93db63b16c * fix naming
* fix notification
2014-11-20 06:13:09 +03:00
0cd2ff6813 rewrite all ui interfaces t oKDE standards 2014-11-20 06:01:56 +03:00
222db43dc1 update extscripts and dp ui files to kde standards 2014-11-20 04:21:24 +03:00
e4be3b2e02 simplify custom script class
remove QGraphicsView border
2014-11-20 04:07:14 +03:00
543e39a7ac Merge branch 'master' of github.com:arcan1s/awesome-widgets 2014-11-20 03:18:53 +03:00
ca60a85241 update graphicalitem 2014-11-19 16:19:23 +03:00
2c3c575493 * add .desktop suffix to files if they have not
* remove frameshape
2014-11-19 15:04:10 +03:00
5f37a9d8c7 fix direction 2014-11-19 12:28:43 +03:00
c3420a8393 some simplification of graphicalitem 2014-11-19 12:08:54 +03:00
5ce3a5c213 fix configuration 2014-11-19 11:14:55 +03:00
179a97b01b implement tooltip to configuration interface 2014-11-18 12:58:56 +03:00
f0c79a4dab implement contextual menu to listWidgets 2014-11-18 11:54:23 +03:00
f56f319075 some update on graphical items 2014-11-18 06:56:22 +03:00
f7b7d5b6b4 fix run 2014-11-17 17:38:02 +03:00
3193de1a85 implement ExtScripts configuration 2014-11-17 17:04:31 +03:00
8cdfdd4e81 start work on porting extscripts to *.desktop configuration 2014-11-17 10:29:09 +03:00
16d7ca2005 update extscript to inherit from QDialog 2014-11-17 10:01:57 +03:00
e54ab7e1a5 small update 2014-11-16 22:37:55 +03:00
a335979830 implement grapicalitem settings 2014-11-16 13:33:09 +03:00
8460d07875 implement tryDelete() method 2014-11-16 11:40:16 +03:00
5ec26c7747 implement graphical item to aw (except for configuration) 2014-11-14 07:16:55 +03:00
8aafdb6fc4 update gi to use desktop conf files 2014-11-14 04:19:53 +03:00
9eedaf246f rename ring to circle 2014-11-13 12:03:48 +03:00
e7714042bb yet another fix margin 2014-11-13 11:21:51 +03:00
0f4bbbfba1 some intermediate commit 2014-11-12 05:16:05 +03:00
7069758b73 add colorsettings to DP tooltip
remove deprecated settings from AW
2014-11-10 01:53:27 +03:00
bbc9d72606 fix margin 2014-11-10 00:51:43 +03:00
b53b1111f9 fix tooltip to DP 2014-11-09 08:22:05 +03:00
64fdc4bebe move tooltip to proxydiwget 2014-11-09 04:50:22 +03:00
583046e195 update translations 2014-11-08 18:41:33 +03:00
71b3a4e6ab implement #35 2014-11-07 05:36:36 +03:00
4b90fac0c4 implement #28 2014-11-07 04:56:32 +03:00
2fa0acf13d some intermediate commit 2014-11-06 20:42:53 +03:00
0f9d2e52ab fix #24 2014-11-04 00:06:22 +03:00
373bab14db some edit of external scripts 2014-11-04 00:04:13 +03:00
7e095c4349 implement script function 2014-11-03 06:33:39 +03:00
a4af7ffc07 some improvemance of external scripts 2014-11-03 05:03:14 +03:00
0ab4878b22 update translations 2014-11-01 23:26:47 +03:00
1748829901 implement script feature to the widget 2014-10-31 07:20:14 +03:00
6a41fa2b8a implement script feature to dataengine 2014-10-31 06:13:49 +03:00
2cd04e1f7f end work on extscript class 2014-10-31 04:43:17 +03:00
0a61d926f8 create properties 2014-10-31 01:54:35 +03:00
45c248b101 some intermediate commit 2014-10-30 01:05:09 +03:00
6a784d2e28 remove install script from git pkgbuild 2014-10-27 04:33:16 +03:00
13023a4985 add workaround for #34 to AW 2014-10-27 04:20:13 +03:00
6463ed3bf7 add pkgbuild-git 2014-10-26 17:06:39 +03:00
5bf3847bc9 add checkupdates function 2014-10-15 16:41:31 +04:00
4fc2e238bd fix regexp matching 2014-10-14 05:15:13 +04:00
c18bb61521 implement about window 2014-10-12 15:01:07 +04:00
9e82210463 implement autoupdate function to aw (see #32) 2014-10-11 03:38:19 +04:00
171d545562 add skel for #32 2014-10-10 23:36:11 +04:00
c6fa1f2a79 update tasks 2014-10-08 22:39:39 +04:00
14cee9dbc7 release 2.0.5 2014-10-05 00:20:09 +04:00
5759273e4c add workaroud for resizing 2014-10-04 01:17:34 +04:00
4387bb1e76 some fixes which was introduced with the latest patches 2014-10-02 06:13:10 +04:00
03af5f0e49 upd task, add ability to use $ symbol over $$ 2014-10-02 05:10:02 +04:00
7f6afbcb4d add resizing 2014-10-01 03:15:28 +04:00
4a320bc5d6 more correct destuction 2014-10-01 02:59:47 +04:00
29d34525a3 fix plasma crash caused by label destruction 2014-10-01 02:57:06 +04:00
0ab74b493c fix #31, update submodules 2014-10-01 02:33:10 +04:00
952fa97fcc Merge branch 'master' of github.com:arcan1s/awesome-widgets 2014-10-01 02:02:13 +04:00
677ed1ab5e fix update netdev 2014-10-01 02:01:18 +04:00
deb0b3bdbb chenge forceupdate logic 2014-09-29 00:59:19 +04:00
20c85f0d42 fix number of issue 2014-09-28 23:12:33 +04:00
f9a37f0cb2 edit echange log, fix #20 2014-09-26 01:43:22 +04:00
0c8013c26b add tooltip bottom 2014-09-26 01:41:27 +04:00
6b9e19ed58 Merge branch 'master' of github.com:arcan1s/awesome-widgets 2014-09-25 23:25:08 +04:00
432ab694fd update changelog 2014-09-25 23:24:33 +04:00
c506183247 fix battery tooltip 2014-09-24 09:51:46 +04:00
105 changed files with 18634 additions and 8389 deletions

View File

@ -1,4 +1,46 @@
V.2.0.4:
Ver.2.2.1:
+ add key X-AW-Interval to ExtUpgrade (ApiVer = 1, default = 3600)
+ add values cache to ExtScript and ExtUpgrade
+ add support isActive to ExtUpgrade
* change cmake version check
* improve logic of ExtScript and ExtUpgrade
Ver.2.2.0:
* port to Plasma 5
+ add support of windows list in tooltip
+ add notifications on system events
+ add ability to show selected tag
+ add tags $downN, $upN
+ add new engine netdev
+ add support of smartctl
- remove ability to hide panel on hotkey
* small changes in widget logic
* edit window preview painting
* KDE4 code upgrade to new ABI
* dataengine optimization
* PKGCMD was replaced by ExtUpgrade
Ver.2.1.0:
+ add support of custom scripts
+ add support of desktop preview to DP
+ add bar support
+ add autoupdate function
- remove custom command
- fix #34
* fix notifications
* rewrite UI to KDE standards
* fix margins on graphical objects
* rewrite DP abd DE to use library calls
* edit GPU properties definition
* edit regexp matching
Ver.2.0.5:
+ add tooltip bottom (#30)
* fix network interface update
* fix battery tooltip bug
* edit DP layout (#31)
Ver.2.0.4:
* more correct work with batteries
Ver.2.0.3:

View File

@ -1,3 +1,45 @@
Вер.2.2.1:
+ добавлен ключ X-AW-Interval в ExtUpgrade (ApiVer = 1, default = 3600)
+ добавлено кеширование значений в ExtScript и ExtUpgrade
+ добавлена поддержка isActive в ExtUpgrade
* изменена проверка версий cmake
* улучшена логика работы ExtScript и ExtUpgrade
Вер.2.2.0:
* портирование на Plasma 5
+ добавлена поддержка списка окон в тултипе
+ добавлены уведомления на системные события
+ добавлена возможность показать выбранный тег
+ добавлены теги $downN, $upN
+ добавлен инструмент netdev
+ добавлена поддержка smartctl
- убрана возможность сокрытия панелей
* незначительно изменена логика работы виджета
* исправлена отрисовка превью окон
* обновление кодовой базы KDE4 под новый ABI
* оптимизация работы dataengine
* PKGCMD были заменены на ExtUpgrade
Вер.2.1.0:
+ добавлена функция автообновления
+ добавлена поддерка кастомных скриптов
+ добавлена поддержка превью рабочего стола для DP
+ добавлена поддержка баров
- удалена поддержка кастомных команд
- фикс #34
* исправлены уведомления
* переписан UI в соответствии со стандартами KDE
* исправлены границы для графических объектов
* переписан DP и DE на использование библиотечных функций
* изменено определение свойств GPU
* изменен поиск регулярных выражений
Вер.2.0.5:
+ добавлен нижний край к тултипу (#30)
* исправлен баг с обновлением сетевого интерфейса
* исправлен баг с тултипом батареи
* отредактирована разметка DP (#31)
Вер.2.0.4:
* более корректная работа с батареями

View File

@ -1,41 +0,0 @@
# Maintainer: Evgeniy "arcanis" Alexeev <arcanis.arch at gmail dot com>
pkgname=kdeplasma-applets-awesome-widgets
_pkgname=awesome-widgets
pkgver=2.0.4
pkgrel=1
pkgdesc="Collection of minimalistic Plasmoids which look like Awesome WM widgets (ex-PyTextMonitor)"
arch=('i686' 'x86_64')
url="http://arcanis.name/projects/awesome-widgets"
license=('GPL3')
depends=('kdebase-workspace' 'lm_sensors')
optdepends=("amarok: for music player monitor"
"clementine: for music player monitor"
"catalyst: for GPU monitor"
"hddtemp: for HDD temperature monitor"
"mpd: for music player monitor"
"nvidia-utils: for GPU monitor"
"qmmp: for music player monitor")
makedepends=('automoc4' 'cmake')
source=(https://github.com/arcan1s/awesome-widgets/releases/download/V.${pkgver}/${_pkgname}-${pkgver}-src.tar.xz)
install=${pkgname}.install
md5sums=('21a3de6376bb7ebb779bfc927e98eb91')
backup=('usr/share/config/extsysmon.conf')
prepare() {
rm -rf "${srcdir}/build"
mkdir "${srcdir}/build"
}
build () {
cd "${srcdir}/build"
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$(kde4-config --prefix) \
"../${_pkgname}"
make
}
package() {
cd "${srcdir}/build"
make DESTDIR="${pkgdir}" install
}

273
README.md
View File

@ -1,250 +1,28 @@
awesome-widgets (ex-pytextmonitor)
==================================
**NOTE** KDE4 version is dropped from development since 2.2.1. Only critical bug
fixes will be applied.
Information
-----------
A collection of minimalistic widgets which looks like Awesome WM widgets.
A collection of minimalistic widgets which looks like Awesome Window Manager widgets.
**NOTE** [LOOKING FOR TRANSLATORS!](https://github.com/arcan1s/awesome-widgets/issues/14)
Configuration
-------------
Features
========
For edited output you must open Settings window and setup output format in lines:
* easy and fully configurable native Plasma widget which may be used as Conky widget or as Awesome-like information panel
* panel which shows active desktop status
* clear Conky-like configuration with html tags support
* custom command support (it may be simple action as well as special custom tag)
* graphical item support - tooltips, bars
* tag `$time` - time in default format. For example, *fri Nov 6 04:48:01 2013*
* tag `$isotime` - time in iso format
* tag `$shorttime` - time in short locale format
* tag `$longtime` - time in long locale format
* tag `$ctime` - custom time format
* tag `$uptime` - uptime, *---d--h--m*
* tag `$cuptime` - custom uptime format
* tag `$cpu` - total load cpu, *%*
* tag `$cpuN` - load CPU for core N, *%*
* tag `$cpucl` - average cpu clock, *MHz*
* tag `$cpuclN` - cpu clock for core N, *MHz*
* tag `$tempN` - temperature for device N. For example, `$temp0`
* tag `$fanN` - fan speed for device N. For example, `$fan0`
* tag `$gpu` - GPU usage, *%*. `aticonfig` or `nvidia-smi` must be installed
* tag `$gputemp` - GPU temperature. `aticonfig` or `nvidia-smi` must be installed
* tag `$mem` - usage memory, *%*
* tag `$memmb` - usage memory, *MB*
* tag `$memgb` - usage memory, *GB*
* tag `$memfreemb` - free RAM, *MB*
* tag `$memfreegb` - free RAM, *GB*
* tag `$memtotmb` - total RAM, *MB*
* tag `$memtotgb` - total RAM, *GB*
* tag `$memusedmb` - used and cached RAM, *MB*
* tag `$memusedgb` - used and cached RAM, *GB*
* tag `$swap` - swap, *%*
* tag `$swapmb` - swap, *MB*
* tag `$swapgb` - swap, *GB*
* tag `$swapfreemb` - free swap, *MB*
* tag `$swapfreegb` - free swap, *GB*
* tag `$swaptotmb` - total swap, *MB*
* tag `$swaptotgb` - total swap, *GB*
* tag `$hddN` - usage for mount point N, *%*. For example, `$hdd0`
* tag `$hddmbN` - usage for mount point N, *MB*. For example, `$hddmb0`
* tag `$hddgbN` - usage for mount point N, *GB*. For example, `$hddgb0`
* tag `$hddfreembN` - free space for mount point N, *MB*. For example, `$hddfreemb0`
* tag `$hddfreegbN` - free space for mount point N, *GB*. For example, `$hddfreegb0`
* tag `$hddtotmbN` - total size of mount point N, *MB*. For example, `$hddtotmb0`
* tag `$hddtotgbN` - total size of mount point N, *GB*. For example, `$hddtotgb0`
* tag `$hddrN` - read speed of disk N, *KB/s*. For example, `$hddr0`
* tag `$hddwN` - write speed of disk N, *KB/s*. For example, `$hddw0`
* tag `$hddtempN` - temperature for HDD N. For example, `$hddtemp0`
* tag `$down` - download speed, *KB/s*
* tag `$up` - upload speed, *KB/s*
* tag `$netdev` - current network device
* tag `$bat` - average battery charge, *%*
* tag `$batN` - battery N charge, *%*
* tag `$ac` - status AC device. Return (\*) if AC device is online or *( )* if offline
* tag `$album` - current song album. One of supported music players must be installed
* tag `$artist` - current song artist. One of supported music players must be installed
* tag `$duration` - current song duration. One of supported music players must be installed
* tag `$progress` - current song progress. One of supported music players must be installed
* tag `$title` - current song title. One of supported music players must be installed
* tag `$pscount` - number of running processes
* tag `$pstotal` - total number of processes
* tag `$ps` - list of running processes
* tag `$pkgcountN` - number of packages, which available to upgrade for command N. For example, `$pkgcount0`
* tag `$customN` - returns output for custom command N. For example, `$custom0`
* tag `$desktop` - name of the current desktop
* tag `$ndesktop` - number of the current desktop
* tag `$tdesktops` - total number of desktops
See [links](#Links) for more details.
Tips & tricks
-------------
You may use different colors for labels. Just put label text into html code. See [issue](https://github.com/arcan1s/awesome-widgets/issues/9) for more details.
Numbering of elements of temperature, HDD usage, HDD speed, HDD temperature refers to elements order from second tab (*Advanced settings*). You should add item to the required listWidget first. And the first element in the listWidget will be `$tag0`. See [issue](https://github.com/arcan1s/awesome-widgets/issues/17) for more details.
Advanced settings
-----------------
**Enable background**
Uncheck to disable default background and set transparent one.
**Enable popup**
Uncheck box if you do not use popup messages.
**Custom time**
* tag `$dddd` - weekday in long format
* tag `$ddd` - weekday in short format
* tag `$dd` - day
* tag `$d` - day without zero
* tag `$MMMM` - month in long format
* tag `$MMM` - month in short format
* tag `$MM` - month
* tag `$M` - month without zero
* tag `$yyyy` - year
* tag `$yy` - year in short format
* tag `$hh` - hours
* tag `$h` - hours without zero
* tag `$mm` - minutes
* tag `$m` - minutes without zero
* tag `$ss` - seconds
* tag `$s` - seconds without zero
**Custom uptime**
* tag `$dd` - uptime days
* tag `$d` - uptime days without zero
* tag `$hh` - uptime hours
* tag `$h` - uptime hours without zero
* tag `$mm` - uptime minutes
* tag `$m` - uptime minutes without zero
**Temperature units**
Select units for temperature. Available units are Celsius, Farenheit, Kelvin, Reaumur, cm^-1, kJ/mol, kcal/mol.
**Temperature devices**
List of devices, which will be observed in temp label (items come from `sensors`). List widget is editable,
**Mount points**
List of mount points, which will be observed in hdd label (items come from `mount`). List widget is editable.
**HDD (speed)**
List of hard disk devices, which will be observed in hddspeed label (items come from DataEngine). List widget is editable.
**HDD (temperature)**
List of hard disk devices, which will be observed in hddtemp label (items come from `find`). List widget is editable.
**Network device**
Use specified device as active. Will disable auto select network device.
**AC online tag**
Line which will be shown when AC is online.
**AC offline tag**
Line which will be shown when AC is offline.
Tooltip settings
----------------
Since version 1.7.0 CPU, CPU clock, memory, swap and network labels support graphical tooltip. To enable them just make the needed checkboxes a fully checked. The number of stored values can be set in the tab. Colors of graphs are configurable too.
DataEngine settings
-------------------
**ACPI path**
Path to APCI devices. Default is `/sys/class/power_supply/`.
**Custom command**
Commands, which will be run for custom label.
**Desktop cmd**
Type a command which will be run for desktop DataEngine. Default is `qdbus org.kde.kwin /KWin currentDesktop`.
**GPU device**
Select one of supported GPU devices. `auto` will enable auto selection, `disable` will disable definition of GPU states. Default is `auto`.
**HDD**
Select one of HDDs for HDD temperature monitor. `all` will enable monitor for all devices, `disable` will disable definition of HDD temperature. Default is `all`.
**hddtemp cmd**
Type a command which will be run for hddtemp DataEngine. Default is `sudo hddtemp`.
**MPD address**
Address of MPD server. Default is `localhost`.
**MPD port**
Port of MPD server. Default is `6600`.
**MPRIS player name**
MPRIS player name. The DBus interface of an music player should be enabled. Default is `auto`.
**Package manager**
List of commands, which will be run. Number of null lines is a number of unneeded lines. Defaults:
* *Arch*: `PKGCMD=pacman -Qu`, `PKGNULL=0`
* *Debian*: `PKGCMD=apt-show-versions -u -b`, `PKGNULL=0`
* *Ubuntu*: `PKGCMD=aptitude search '~U'`, `PKGNULL=0`
* *Fedora*: `PKGCMD=yum list updates`, `PKGNULL=3`
* *FreeBSD*: `PKGCMD=pkg_version -I -l '<'`, `PKGNULL=0`
* *Mandriva*: `PKGCMD=urpmq --auto-select`, `PKGNULL=0`
**Music player**
Select one of supported music playes for player label.
Desktop panel
=================
Since version 1.11.0 it provides a minimalistic panel for monitoring on desktops written on `C++`. And yes, it looks like the same panel in Awesome.
Desktop panel configuration
---------------------------
**Enable background**
Uncheck to disable default background and set transparent one.
**Vertical layout**
Use vertical layout instead of horizontal one.
**Add stretch**
Add stretch (spacer) to the selected side of the widget.
**Mark**
Type symbol (or string) which will be shown if this desktop is active now.
**Pattern tags**
* tag `$mark` - show mark if this desktop is active
* tag `$name` - name of the current desktop
* tag `$number` - number of the current desktop
* tag `$total` - total number of desktops
**Command**
Type command which will be run on left click on the selected desktop. Available variables are same as for pattern. Default is `dbus org.kde.kwin /KWin setCurrentDesktop $number`.
**Didn't find required feature?** [Just ask for it!](https://github.com/arcan1s/awesome-widgets/issues)
Instruction
===========
@ -253,22 +31,21 @@ Dependencies
------------
* kdebase-workspace
* kdebindings-python2
* lm_sensors (*for definition temperature device*)
Optional dependencies
---------------------
* sysstat (*for notification*)
* proprietary video driver
* hddtemp (make sure that it may be run with `sudo` without password. Just add following line to `/etc/sudoers`: `$USERNAME ALL=NOPASSWD: /usr/bin/hddtemp`)
* music player (amarok, clementine, mpd or qmmp)
* hddtemp
* smartmontools
* music player (mpd or supported MPRIS)
Make dependencies
-----------------
* automoc4
* cmake
* automoc4
Installation
------------
@ -277,13 +54,7 @@ Installation
* install
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`kde4-config --localprefix` ../
make && make install
Also you may install it to `/`:
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` ../
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ../
make && sudo make install
Additional information
@ -292,13 +63,15 @@ Additional information
TODO (wish list)
----------------
* 3rdpatry modules support (C++, Python and Shell modules in the plan)
* graphical bars support
See [milestones](https://github.com/arcan1s/awesome-widgets/milestones) for more details.
Links
-----
* [Homepage](http://arcanis.name/projects/awesome-widgets/)
* [Migration to 2.*](http://arcanis.name/en/2014/09/04/migration-to-v2/)
* [Scripts and bars](http://arcanis.name/en/2014/12/19/aw-v21-bells-and-whistles/)
* Plasmoid on [kde-look](http://kde-look.org/content/show.php/Awesome+Widgets?content=157124)
* DataEngine on [kde-look](http://kde-look.org/content/show.php/Extended+Systemmonitor+DataEngine?content=158773)
* Archlinux [AUR](https://aur.archlinux.org/packages/kdeplasma-applets-awesome-widgets/) package
* Archlinux [AUR](https://aur.archlinux.org/packages/kdeplasma-applets-awesome-widgets-git/) package
* [OpenSuse](http://software.opensuse.org/package/awesome-widgets) package

View File

@ -1,34 +0,0 @@
#!/bin/bash
SRCDIR="sources"
MAJOR=$(grep -m1 PROJECT_VERSION_MAJOR sources/CMakeLists.txt | awk '{print $3}' | sed 's/.$//g')
MINOR=$(grep -m1 PROJECT_VERSION_MINOR sources/CMakeLists.txt | awk '{print $3}' | sed 's/.$//g')
PATCH=$(grep -m1 PROJECT_VERSION_PATCH sources/CMakeLists.txt | awk '{print $3}' | sed 's/.$//g')
VERSION="${MAJOR}.${MINOR}.${PATCH}"
# build dataengine
ARCHIVE="ext-sysmon"
# create archive
[[ -e ${ARCHIVE}-${VERSION}-src.tar.xz ]] && rm -f ${ARCHIVE}-${VERSION}-src.tar.xz
[[ -d ${ARCHIVE} ]] && rm -rf "${ARCHIVE}"
cp -r "${SRCDIR}/${ARCHIVE}" "${ARCHIVE}"
tar cJf "${ARCHIVE}-${VERSION}-src.tar.xz" "${ARCHIVE}"
rm -rf "${ARCHIVE}"
# build widget
ARCHIVE="awesome-widgets"
FILES="AUTHORS CHANGELOG CHANGELOG-RU COPYING"
IGNORELIST="build usr"
# create archive
[[ -e ${ARCHIVE}-${VERSION}-src.tar.xz ]] && rm -f "${ARCHIVE}-${VERSION}-src.tar.xz"
[[ -d ${ARCHIVE} ]] && rm -rf "${ARCHIVE}"
cp -r "${SRCDIR}" "${ARCHIVE}"
for FILE in ${FILES[*]}; do cp -r "$FILE" "${ARCHIVE}"; done
for FILE in ${IGNORELIST[*]}; do rm -rf "${ARCHIVE}/${FILE}"; done
tar cJf "${ARCHIVE}-${VERSION}-src.tar.xz" "${ARCHIVE}"
rm -rf "${ARCHIVE}"
# update md5sum
MD5SUMS=$(md5sum ${ARCHIVE}-${VERSION}-src.tar.xz | awk '{print $1}')
sed -i "/md5sums=('[0-9A-Fa-f]*/s/[^'][^)]*/md5sums=('${MD5SUMS}'/" PKGBUILD
sed -i "s/pkgver=[0-9.]*/pkgver=${VERSION}/" PKGBUILD

View File

@ -1,15 +0,0 @@
post_install() {
kbuildsycoca4 > /dev/null 2>&1
cat << __EOF
To migrate to version 2.* and newer see this article:
http://arcanis.name/en/2014/09/04/migration-to-v2/
__EOF
}
post_upgrade() {
post_install "$1"
}
post_remove() {
post_install "$1"
}

56
packages/PKGBUILD Normal file
View File

@ -0,0 +1,56 @@
# Maintainer: Evgeniy Alekseev <arcanis at archlinux dot org>
pkgname=kdeplasma-applets-awesome-widgets-git
_pkgname=awesome-widgets
pkgver=2.2.1.r2.ga098c9d
pkgrel=1
pkgdesc="Collection of minimalistic Plasmoids which look like Awesome WM widgets (ex-PyTextMonitor)"
arch=('i686' 'x86_64')
url="http://arcanis.name/projects/awesome-widgets"
license=('GPL3')
depends=('kdebase-workspace' 'lm_sensors')
optdepends=("amarok: for music player monitor"
"clementine: for music player monitor"
"catalyst: for GPU monitor"
"hddtemp: for HDD temperature monitor"
"smartmontools: for HDD temperature monitor"
"mpd: for music player monitor"
"nvidia-utils: for GPU monitor"
"qmmp: for music player monitor")
makedepends=('automoc4' 'cmake' 'git')
source=(${_pkgname}::git+https://github.com/arcan1s/awesome-widgets.git#branch=release-2.2.1)
install=${pkgname}.install
md5sums=('SKIP')
backup=('usr/share/config/plasma-dataengine-extsysmon.conf')
pkgver() {
cd "${srcdir}/${_pkgname}"
git describe --tags --long | sed 's/V\.//' | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
}
prepare() {
rm -rf "${srcdir}/${_pkgname}/build"
mkdir "${srcdir}/${_pkgname}/build"
# update submobules
cd "${srcdir}/${_pkgname}"
git submodule init
git submodule update --recursive
}
build () {
cd "${srcdir}/${_pkgname}/build"
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$(kde4-config --prefix) \
"../sources"
make
}
package() {
cd "${srcdir}/${_pkgname}/build"
make DESTDIR="${pkgdir}" install
}

View File

@ -0,0 +1,4 @@
cmake
g++
git
kdelibs5-dev

View File

View File

@ -0,0 +1,11 @@
post_install() {
kbuildsycoca4 > /dev/null 2>&1
}
post_upgrade() {
post_install "$1"
}
post_remove() {
post_install "$1"
}

View File

@ -0,0 +1,23 @@
[Buildset]
BuildItems=@Variant(\x00\x00\x00\t\x00\x00\x00\x00\x01\x00\x00\x00\x0b\x00\x00\x00\x00\x01\x00\x00\x00\x1e\x00a\x00w\x00e\x00s\x00o\x00m\x00e\x00-\x00w\x00i\x00d\x00g\x00e\x00t\x00s)
[CMake]
Build Directory Count=1
Current Build Directory Index=0
ProjectRootRelative=./
[CMake][CMake Build Directory 0]
Build Directory Path=file:///home/arcanis/Documents/github/awesome-widgets/build
Build Type=Debug
CMake Binary=file:///usr/bin/cmake
Environment Profile=
Extra Arguments=
Install Directory=file:///usr
[Defines And Includes][Compiler]
Name=GCC
Path=gcc
Type=GCC
[Project]
VersionControlSupport=kdevgit

218
sources/3rdparty/about/about.ui vendored Normal file
View File

@ -0,0 +1,218 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>About</class>
<widget class="QWidget" name="About">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>450</width>
<height>359</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab_About">
<attribute name="title">
<string>About</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QScrollArea" name="scrollArea_about">
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents_about">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>418</width>
<height>284</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="label_name">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::TextBrowserInteraction</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_version">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::TextBrowserInteraction</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_description">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignJustify|Qt::AlignVCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::TextBrowserInteraction</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_links">
<property name="text">
<string/>
</property>
<property name="textFormat">
<enum>Qt::RichText</enum>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::TextBrowserInteraction</set>
</property>
</widget>
</item>
<item>
<spacer name="spacer_about">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_ackn">
<attribute name="title">
<string>Acknowledgement</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QScrollArea" name="scrollArea_ackn">
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents_ackn">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>418</width>
<height>284</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QLabel" name="label_translators">
<property name="text">
<string/>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::TextBrowserInteraction</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_trdparty">
<property name="text">
<string/>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::TextBrowserInteraction</set>
</property>
</widget>
</item>
<item>
<spacer name="spacer_ackn">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>229</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item>
<widget class="QLabel" name="label_license">
<property name="text">
<string/>
</property>
<property name="textFormat">
<enum>Qt::RichText</enum>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::TextBrowserInteraction</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -5,24 +5,44 @@ cmake_policy (SET CMP0002 OLD)
cmake_policy (SET CMP0011 NEW)
cmake_policy (SET CMP0015 NEW)
project (awesome-widgets)
project (awesomewidgets)
set (PROJECT_AUTHOR "Evgeniy Alekseev")
set (PROJECT_CONTACT "esalexeev@gmail.com")
set (PROJECT_LICENSE "GPLv3")
set (PROJECT_VERSION_MAJOR 2)
set (PROJECT_VERSION_MINOR 0)
set (PROJECT_VERSION_PATCH 4)
set (PROJECT_VERSION_MINOR 2)
set (PROJECT_VERSION_PATCH 1)
set (PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
set (PROJECT_TRDPARTY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty)
string (TIMESTAMP CURRENT_DATE "%Y-%m-%d %H:%M" UTC)
string (TIMESTAMP CURRENT_YEAR "%Y")
message (STATUS "Project: ${PROJECT_NAME}")
message (STATUS "Version: ${PROJECT_VERSION}")
message (STATUS "Build date: ${CURRENT_DATE}")
option(BUILD_DEB_PACKAGE "Build deb package" OFF)
option(BUILD_RPM_PACKAGE "Build rpm package" OFF)
# flags
if (CMAKE_COMPILER_IS_GNUCXX)
set (CMAKE_CXX_FLAGS "-Wall -Wno-cpp -std=c++11")
set (CMAKE_CXX_FLAGS_DEBUG "-g -O0")
set (CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
set (CMAKE_CXX_FLAGS "-Wall -Wno-cpp -std=c++11")
set (CMAKE_CXX_FLAGS_DEBUG "-g -O0")
set (CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
# avoid newer gcc warnings
add_definitions (-D_DEFAULT_SOURCE)
else ()
message (STATUS "Unknown compiler")
message (STATUS "Unknown compiler")
endif ()
configure_file (${CMAKE_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h)
set (PROJECT_TRDPARTY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty)
add_subdirectory (extsysmon)
add_subdirectory (awesome-widget)
add_subdirectory (ext-sysmon)
add_subdirectory (desktop-panel)
# translations
add_subdirectory (translations)
include(packages-recipe.cmake)

View File

@ -7,24 +7,27 @@ message (STATUS "Subproject ${SUBPROJECT}")
find_package (KDE4 REQUIRED)
add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
add_subdirectory (po)
include (KDE4Defaults)
include_directories (${CMAKE_SOURCE_DIR}
${CMAKE_BINARY_DIR}
${KDE4_INCLUDES}
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_BINARY_DIR}/../
${PROJECT_TRDPARTY_DIR})
${PROJECT_TRDPARTY_DIR}
../extsysmon
${CMAKE_CURRENT_BINARY_DIR}/../extsysmon)
# set sources
file (GLOB SUBPROJECT_DESKTOP_IN *.desktop)
file (RELATIVE_PATH SUBPROJECT_DESKTOP ${CMAKE_SOURCE_DIR} ${SUBPROJECT_DESKTOP_IN})
file (GLOB_RECURSE SUBPROJECT_SOURCE *.cpp ${PROJECT_TRDPARTY_DIR}/task/*.cpp
${PROJECT_TRDPARTY_DIR}/fontdialog/*.cpp)
${PROJECT_TRDPARTY_DIR}/fontdialog/*.cpp
../extsysmon/extscript.cpp
../extsysmon/extupgrade.cpp)
set (TASK_HEADER ${PROJECT_TRDPARTY_DIR}/task/task.h)
file (GLOB SUBPROJECT_UI *.ui)
file (GLOB SUBPROJECT_UI *.ui ${PROJECT_TRDPARTY_DIR}/about/*.ui)
file (GLOB SUBPROJECT_NOTIFY *.notifyrc)
set (SUBPROJECT_DESKTOPS ${CMAKE_CURRENT_SOURCE_DIR}/desktops)
# prepare
configure_file (${SUBPROJECT_DESKTOP_IN} ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP})
@ -39,3 +42,4 @@ target_link_libraries (${PLUGIN_NAME} ${KDE4_PLASMA_LIBS} ${KDE4_KDEUI_LIBS} ${K
install (TARGETS ${PLUGIN_NAME} DESTINATION ${PLUGIN_INSTALL_DIR})
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP} DESTINATION ${SERVICES_INSTALL_DIR})
install (FILES ${SUBPROJECT_NOTIFY} DESTINATION ${DATA_INSTALL_DIR}/${PLUGIN_NAME})
install (DIRECTORY ${SUBPROJECT_DESKTOPS} DESTINATION ${DATA_INSTALL_DIR}/${PLUGIN_NAME})

View File

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>700</width>
<height>594</height>
<height>588</height>
</rect>
</property>
<property name="sizePolicy">
@ -41,39 +41,88 @@
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>677</width>
<height>677</height>
<y>-250</y>
<width>675</width>
<height>822</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_8">
<item>
<widget class="QCheckBox" name="checkBox_background">
<property name="text">
<string>Enable background</string>
</property>
</widget>
<layout class="QHBoxLayout" name="layout_popup">
<item>
<spacer name="spacer_popup">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="checkBox_popup">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Enable popup on mouse click</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="checkBox_popup">
<property name="text">
<string>Enable popup on mouse click</string>
</property>
</widget>
<layout class="QHBoxLayout" name="layout_background">
<item>
<spacer name="spacer_background">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="checkBox_background">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Enable background</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_timeFormat">
<item>
<widget class="QLabel" name="label_timeFormat">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Custom time format</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
@ -96,9 +145,6 @@ $m - minutes w\o zero
$ss - seconds
$s - seconds w\o zero</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
@ -107,15 +153,18 @@ $s - seconds w\o zero</string>
<layout class="QHBoxLayout" name="layout_uptimeFormat">
<item>
<widget class="QLabel" name="label_uptimeFormat">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Custom uptime format</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
@ -128,9 +177,6 @@ $h - uptime hours without zero
$mm - uptime minutes
$m - uptime minutes without zero</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
@ -139,38 +185,16 @@ $m - uptime minutes without zero</string>
<layout class="QHBoxLayout" name="layout_tempUnits">
<item>
<widget class="QLabel" name="label_tempUnits">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Temperature units</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="spacer_tempUnits">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QComboBox" name="comboBox_tempUnits">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
<item>
<property name="text">
<string notr="true">Celsius</string>
@ -334,15 +358,12 @@ $m - uptime minutes without zero</string>
<layout class="QHBoxLayout" name="layout_netdev">
<item>
<widget class="QCheckBox" name="checkBox_netdev">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Disable auto select device and set specified device</string>
</property>
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="text">
<string>Set network device</string>
</property>
@ -350,12 +371,6 @@ $m - uptime minutes without zero</string>
</item>
<item>
<widget class="QComboBox" name="comboBox_netdev">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="editable">
<bool>true</bool>
</property>
@ -367,15 +382,18 @@ $m - uptime minutes without zero</string>
<layout class="QHBoxLayout" name="layout_acOnline">
<item>
<widget class="QLabel" name="label_acOnline">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>AC online tag</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
@ -386,9 +404,6 @@ $m - uptime minutes without zero</string>
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
@ -397,15 +412,18 @@ $m - uptime minutes without zero</string>
<layout class="QHBoxLayout" name="layout_acOffline">
<item>
<widget class="QLabel" name="label_acOffline">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>AC offline tag</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
@ -416,8 +434,77 @@ $m - uptime minutes without zero</string>
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="layout_bars">
<item>
<layout class="QHBoxLayout" name="layout_barsAdd">
<item>
<widget class="QLabel" name="label_bars">
<property name="text">
<string>Bars</string>
</property>
</widget>
</item>
<item>
<spacer name="spacer_bars">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton_bars">
<property name="text">
<string>Add</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QListWidget" name="listWidget_bars">
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_updates">
<item>
<spacer name="spacer_updates">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="checkBox_updates">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Check for updates</string>
</property>
</widget>
</item>

View File

@ -51,41 +51,16 @@
<layout class="QHBoxLayout" name="layout_interval">
<item>
<widget class="QLabel" name="label_interval">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Time interval</string>
</property>
</widget>
</item>
<item>
<spacer name="spacer_interval">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSpinBox" name="spinBox_interval">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_interval">
<property name="minimum">
<number>1</number>
</property>
@ -106,30 +81,14 @@
<layout class="QHBoxLayout" name="layout_font">
<item>
<widget class="QLabel" name="label_font">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Font</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="spacer_font">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QFontComboBox" name="fontComboBox">
<property name="minimumSize">
@ -146,41 +105,16 @@
<layout class="QHBoxLayout" name="layout_size">
<item>
<widget class="QLabel" name="label_size">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Font size</string>
</property>
</widget>
</item>
<item>
<spacer name="spacer_size">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSpinBox" name="spinBox_size">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_size">
<property name="minimum">
<number>1</number>
</property>
@ -201,39 +135,16 @@
<layout class="QHBoxLayout" name="layout_color">
<item>
<widget class="QLabel" name="label_color">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Font color</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="spacer_color">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="KColorCombo" name="kcolorcombo">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
</widget>
<widget class="KColorCombo" name="kcolorcombo"/>
</item>
</layout>
</item>
@ -241,38 +152,16 @@
<layout class="QHBoxLayout" name="layout_style">
<item>
<widget class="QLabel" name="label_style">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Font style</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="spacer_style">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QComboBox" name="comboBox_style">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
<item>
<property name="text">
<string notr="true">normal</string>
@ -291,41 +180,16 @@
<layout class="QHBoxLayout" name="layout_weight">
<item>
<widget class="QLabel" name="label_weight">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Font weight</string>
</property>
</widget>
</item>
<item>
<spacer name="spacer_weight">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>19</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSpinBox" name="spinBox_weight">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_weight">
<property name="minimum">
<number>100</number>
</property>

View File

@ -25,14 +25,20 @@
#include <QGraphicsProxyWidget>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QMessageBox>
#include <QNetworkAccessManager>
#include <QNetworkInterface>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QProcessEnvironment>
#include <QTextCodec>
#include <QTimer>
#include "customlabel.h"
#include "graphicalitem.h"
#include <pdebug/pdebug.h>
#include <task/taskadds.h>
#include "version.h"
AwesomeWidget::AwesomeWidget(QObject *parent, const QVariantList &args)
@ -62,6 +68,16 @@ AwesomeWidget::~AwesomeWidget()
}
void AwesomeWidget::checkUpdates()
{
if (debug) qDebug() << PDEBUG;
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyRecieved(QNetworkReply *)));
manager->get(QNetworkRequest(QUrl(VERSION_API)));
}
QList<QAction *> AwesomeWidget::contextualActions()
{
if (debug) qDebug() << PDEBUG;
@ -83,9 +99,12 @@ void AwesomeWidget::createActions()
connect(contextMenu[1], SIGNAL(triggered(bool)), this, SLOT(showReadme()));
contextMenu.append(new QAction(QIcon::fromTheme(QString("stock-refresh")),
i18n("Update text"), this));
connect(contextMenu[2], SIGNAL(triggered(bool)), this, SLOT(updateNetworkDevice()));
connect(contextMenu[2], SIGNAL(triggered(bool)), extsysmonEngine, SLOT(updateAllSources()));
connect(contextMenu[2], SIGNAL(triggered(bool)), sysmonEngine, SLOT(updateAllSources()));
connect(contextMenu[2], SIGNAL(triggered(bool)), this, SLOT(updateNetworkDevice()));
contextMenu.append(new QAction(QIcon::fromTheme(QString("system-software-update")),
i18n("Check for updates"), this));
connect(contextMenu[3], SIGNAL(triggered(bool)), this, SLOT(checkUpdates()));
}
@ -178,7 +197,7 @@ void AwesomeWidget::init()
if (debug) qDebug() << PDEBUG;
// dataengines
extsysmonEngine = dataEngine(QString("ext-sysmon"));
extsysmonEngine = dataEngine(QString("extsysmon"));
sysmonEngine = dataEngine(QString("systemmonitor"));
connect(sysmonEngine, SIGNAL(sourceAdded(QString)), this, SLOT(addDiskDevice(QString)));
timeEngine = dataEngine(QString("time"));
@ -191,6 +210,7 @@ void AwesomeWidget::init()
toolTipView = new QGraphicsView(toolTipScene);
toolTipView->setStyleSheet(QString("background: transparent"));
toolTipView->setContentsMargins(0, 0, 0, 0);
toolTipView->setFrameShape(QFrame::NoFrame);
toolTipView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
toolTipView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
Plasma::ToolTipManager::self()->setContent(this, toolTip);
@ -201,11 +221,10 @@ void AwesomeWidget::init()
mainLayout->setContentsMargins(1, 1, 1, 1);
setLayout(mainLayout);
textLabel = new CustomLabel(this, debug);
textLabel->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
QGraphicsProxyWidget *pw = new QGraphicsProxyWidget(this);
pw->setAttribute(Qt::WA_TranslucentBackground, true);
pw->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
pw->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
textLabel->setAttribute(Qt::WA_TranslucentBackground, true);
textLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
pw->setWidget(textLabel);
mainLayout->addItem(pw, 0, 0);
@ -217,6 +236,39 @@ void AwesomeWidget::init()
connect(timer, SIGNAL(timeout()), this, SLOT(updateText()));
connect(timer, SIGNAL(timeout()), this, SLOT(updateTooltip()));
timer->start();
// check for updates
connect(this, SIGNAL(thereIsUpdates(QString)), this, SLOT(showUpdates(QString)));
if (configuration[QString("checkUpdates")].toInt() == 2)
checkUpdates();
}
void AwesomeWidget::replyRecieved(QNetworkReply *reply)
{
if (debug) qDebug() << PDEBUG;
QString answer = reply->readAll();
if (!answer.contains(QString("tag_name"))) return;
QString version = QString(VERSION);
if (debug) qDebug() << PDEBUG << answer;
for (int i=0; i<answer.split(QString("tag_name")).count(); i++) {
version = answer.split(QString("tag_name"))[1].split(QChar(','))[0];
version.remove(QChar('"'));
version.remove(QChar(':'));
version.remove(QString("V."));
break;
}
int old_major = QString(VERSION).split(QChar('.'))[0].toInt();
int old_minor = QString(VERSION).split(QChar('.'))[1].toInt();
int old_patch = QString(VERSION).split(QChar('.'))[2].toInt();
int new_major = QString(version).split(QChar('.'))[0].toInt();
int new_minor = QString(version).split(QChar('.'))[1].toInt();
int new_patch = QString(version).split(QChar('.'))[2].toInt();
if ((old_major < new_major) ||
((old_major == new_major) && (old_minor < new_minor)) ||
((old_major == new_major) && (old_minor == new_minor) && (old_patch < new_patch)))
emit(thereIsUpdates(version));
}
@ -239,8 +291,7 @@ QStringList AwesomeWidget::findKeys()
QStringList selectedKeys;
for (int i=0; i<keys.count(); i++)
if (configuration[QString("text")]
.indexOf(QString("$") + keys[i]) > -1) {
if (configuration[QString("text")].contains(QString("$") + keys[i])) {
if (debug) qDebug() << PDEBUG << ":" << "Found key" << keys[i];
selectedKeys.append(keys[i]);
}
@ -352,6 +403,65 @@ QStringList AwesomeWidget::getKeys()
}
QStringList AwesomeWidget::findGraphicalItems()
{
if (debug) qDebug() << PDEBUG;
QStringList orderedKeys;
for (int i=0; i<graphicalItems.count(); i++)
orderedKeys.append(graphicalItems[i]->name() + graphicalItems[i]->bar());
orderedKeys.sort();
QStringList selectedKeys;
for (int i=orderedKeys.count()-1; i>=0; i--)
if (configuration[QString("text")].contains(QString("$") + orderedKeys[i])) {
if (debug) qDebug() << PDEBUG << ":" << "Found key" << orderedKeys[i];
selectedKeys.append(orderedKeys[i]);
}
return selectedKeys;
}
void AwesomeWidget::getGraphicalItems()
{
if (debug) qDebug() << PDEBUG;
graphicalItems.clear();
// create directory at $HOME
QString localDir = KStandardDirs::locateLocal("data", "plasma_applet_awesome-widget/desktops");
if (KStandardDirs::makeDir(localDir))
if (debug) qDebug() << PDEBUG << ":" << "Created directory" << localDir;
QStringList dirs = KGlobal::dirs()->findDirs("data", "plasma_applet_awesome-widget/desktops");
QStringList names;
for (int i=0; i<dirs.count(); i++) {
QStringList files = QDir(dirs[i]).entryList(QDir::Files, QDir::Name);
for (int j=0; j<files.count(); j++) {
if (!files[j].endsWith(QString(".desktop"))) continue;
if (names.contains(files[j])) continue;
if (debug) qDebug() << PDEBUG << ":" << "Found file" << files[j] << "in" << dirs[i];
names.append(files[j]);
graphicalItems.append(new GraphicalItem(0, files[j], dirs, debug));
}
}
}
GraphicalItem *AwesomeWidget::getItemByTag(const QString tag)
{
if (debug) qDebug() << PDEBUG;
GraphicalItem *item = nullptr;
for (int i=0; i< graphicalItems.count(); i++) {
if ((graphicalItems[i]->name() + graphicalItems[i]->bar()) != tag) continue;
item = graphicalItems[i];
break;
}
return item;
}
void AwesomeWidget::showKsysguard()
{
if (debug) qDebug() << PDEBUG;
@ -373,4 +483,21 @@ void AwesomeWidget::showReadme()
}
void AwesomeWidget::showUpdates(QString version)
{
if (debug) qDebug() << PDEBUG;
QString text;
text += i18n("Current version : %1", QString(VERSION)) + QString("\n");
text += i18n("New version : %1", version) + QString("\n\n");
text += i18n("Click \"Ok\" to download");
int select = QMessageBox::information(0, i18n("There are updates"), text, QMessageBox::Ok | QMessageBox::Cancel);
switch (select) {
case QMessageBox::Ok:
QDesktopServices::openUrl(QString(RELEASES) + version);
break;
}
}
K_EXPORT_PLASMA_APPLET(awesome-widget, AwesomeWidget)

View File

@ -23,6 +23,7 @@
#include <Plasma/DataEngine>
#include <Plasma/ToolTipContent>
#include <ui_about.h>
#include <ui_advanced.h>
#include <ui_appearance.h>
#include <ui_deconfig.h>
@ -31,8 +32,12 @@
class CustomLabel;
class ExtScript;
class ExtUpgrade;
class GraphicalItem;
class QGraphicsGridLayout;
class QGraphicsScene;
class QNetworkReply;
class AwesomeWidget : public Plasma::Applet
{
@ -49,12 +54,12 @@ public:
// de configuration
QMap<QString, QString> readDataEngineConfiguration();
void writeDataEngineConfiguration(const QMap<QString, QString> settings);
QMap<QString, QString> updateDataEngineConfiguration(const QMap<QString, QString> rawConfig);
public slots:
// contextual actions
void showKsysguard();
void showReadme();
void showUpdates(QString version);
// dataengine
void addDiskDevice(const QString source);
void connectToEngine();
@ -65,17 +70,27 @@ public slots:
void configChanged();
// update events
void sendNotification(const QString eventId, const QString message);
void updateNetworkDevice();
void updateNetworkDevice(const bool delay = true);
void updateText(const bool clear = false);
void updateTooltip();
private slots:
void checkUpdates();
void reinit();
void replyRecieved(QNetworkReply *reply);
// configuration interface
void addNewCustomCommand(QTableWidgetItem *item);
void addNewPkgCommand(QTableWidgetItem *item);
void addBar();
void addCustomScript();
void addPkgCommand();
void contextMenuBars(const QPoint pos);
void contextMenuCustomCommand(const QPoint pos);
void contextMenuPkgCommand(const QPoint pos);
void copyBar(const QString original);
void copyCustomCommand(const QString original);
void copyPkgCommand(const QString original);
void editBar(QListWidgetItem *item);
void editCustomCommand(QListWidgetItem *item);
void editPkgCommand(QListWidgetItem *item);
void editFanItem(QListWidgetItem *item);
void editHddItem(QListWidgetItem *item);
void editHddSpeedItem(QListWidgetItem *item);
@ -84,6 +99,9 @@ private slots:
void setFontFormating();
void setFormating();
signals:
void thereIsUpdates(QString version);
protected:
QList<QAction *> contextualActions();
void createConfigurationInterface(KConfigDialog *parent);
@ -93,27 +111,33 @@ private:
void createActions();
QStringList findKeys();
QStringList getKeys();
QStringList findGraphicalItems();
void getGraphicalItems();
GraphicalItem *getItemByTag(const QString tag);
QList<ExtScript *> initScripts();
QList<ExtUpgrade *> initUpgrades();
// ui
QGraphicsGridLayout *mainLayout = nullptr;
CustomLabel *textLabel = nullptr;
QTimer *timer;
QTimer *timer = nullptr;
QList<QAction *> contextMenu;
// tooltip
Plasma::ToolTipContent toolTip;
QGraphicsScene *toolTipScene;
QGraphicsView *toolTipView;
QGraphicsScene *toolTipScene = nullptr;
QGraphicsView *toolTipView = nullptr;
// values
int networkDeviceUpdate;
int networkDeviceUpdate = 0;
QMap<QString, int> counts;
QMap<QString, QList<float>> tooltipValues;
QMap<QString, QString> values;
// debug
bool debug;
// data engine
Plasma::DataEngine *extsysmonEngine;
Plasma::DataEngine *sysmonEngine;
Plasma::DataEngine *timeEngine;
Plasma::DataEngine *extsysmonEngine = nullptr;
Plasma::DataEngine *sysmonEngine = nullptr;
Plasma::DataEngine *timeEngine = nullptr;
// configuration interface
Ui::About uiAboutConfig;
Ui::AdvancedWindow uiAdvancedConfig;
Ui::AppearanceWindow uiAppConfig;
Ui::ConfigWindow uiWidConfig;
@ -122,6 +146,8 @@ private:
// configuration
QMap<QString, QString> configuration;
QStringList diskDevices, keys, formatLine, foundKeys;
QList<GraphicalItem *> graphicalItems;
QStringList foundBars;
};

View File

@ -20,14 +20,20 @@
#include <KConfigDialog>
#include <KGlobal>
#include <KStandardDirs>
#include <QDesktopServices>
#include <QDir>
#include <QInputDialog>
#include <QMenu>
#include <QNetworkInterface>
#include <QTextCodec>
#include <extscript.h>
#include <extupgrade.h>
#include <graphicalitem.h>
#include <fontdialog/fontdialog.h>
#include <pdebug/pdebug.h>
#include <task/taskadds.h>
#include "version.h"
QMap<QString, QString> AwesomeWidget::readDataEngineConfiguration()
@ -36,23 +42,19 @@ QMap<QString, QString> AwesomeWidget::readDataEngineConfiguration()
QMap<QString, QString> rawConfig;
rawConfig[QString("ACPIPATH")] = QString("/sys/class/power_supply/");
rawConfig[QString("CUSTOM")] = QString("wget -qO- http://ifconfig.me/ip");
rawConfig[QString("DESKTOPCMD")] = QString("qdbus org.kde.kwin /KWin currentDesktop");
rawConfig[QString("GPUDEV")] = QString("auto");
rawConfig[QString("HDDDEV")] = QString("all");
rawConfig[QString("HDDTEMPCMD")] = QString("sudo hddtemp");
rawConfig[QString("MPDADDRESS")] = QString("localhost");
rawConfig[QString("MPDPORT")] = QString("6600");
rawConfig[QString("MPRIS")] = QString("auto");
rawConfig[QString("PKGCMD")] = QString("pacman -Qu");
rawConfig[QString("PKGNULL")] = QString("0");
rawConfig[QString("PLAYER")] = QString("mpris");
QString fileName = KGlobal::dirs()->findResource("config", "extsysmon.conf");
QString fileName = KGlobal::dirs()->findResource("config", "plasma-dataengine-extsysmon.conf");
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << fileName;
QFile configFile(fileName);
if (!configFile.open(QIODevice::ReadOnly))
return updateDataEngineConfiguration(rawConfig);
return rawConfig;
QString fileStr;
QStringList value;
while (true) {
@ -70,7 +72,7 @@ QMap<QString, QString> AwesomeWidget::readDataEngineConfiguration()
}
configFile.close();
return updateDataEngineConfiguration(rawConfig);
return rawConfig;
}
@ -78,8 +80,8 @@ void AwesomeWidget::writeDataEngineConfiguration(const QMap<QString, QString> se
{
if (debug) qDebug() << PDEBUG;
QMap<QString, QString> config = updateDataEngineConfiguration(settings);
QString fileName = KGlobal::dirs()->locateLocal("config", "extsysmon.conf");
QMap<QString, QString> config = settings;
QString fileName = KGlobal::dirs()->locateLocal("config", "plasma-dataengine-extsysmon.conf");
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << fileName;
QFile configFile(fileName);
if (!configFile.open(QIODevice::WriteOnly)) return;
@ -91,37 +93,6 @@ void AwesomeWidget::writeDataEngineConfiguration(const QMap<QString, QString> se
}
QMap<QString, QString> AwesomeWidget::updateDataEngineConfiguration(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("CUSTOM")) &&
(key != QString("DESKTOPCMD")) &&
(key != QString("HDDTEMPCMD")) &&
(key != QString("PKGCMD")))
value.remove(QChar(' '));
config[key] = value;
}
// pkgcmd
for (int i=config[QString("PKGNULL")].split(QString(","), QString::SkipEmptyParts).count();
i<config[QString("PKGCMD")].split(QString(","), QString::SkipEmptyParts).count()+1;
i++)
config[QString("PKGNULL")] += QString(",0");
for (int i=0; i<config.keys().count(); i++)
if (debug) qDebug() << PDEBUG << ":" << config.keys()[i] + QString("=") + config[config.keys()[i]];
return config;
}
void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
{
if (debug) qDebug() << PDEBUG;
@ -139,11 +110,15 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
uiDEConfig.setupUi(deConfigWidget);
QWidget *tooltipWidget = new QWidget;
uiTooltipConfig.setupUi(tooltipWidget);
QWidget *aboutWidget = new QWidget;
uiAboutConfig.setupUi(aboutWidget);
//widget
uiWidConfig.textEdit_elements->setPlainText(configuration[QString("text")]);
uiWidConfig.comboBox_tags->clear();
uiWidConfig.comboBox_tags->addItems(getKeys());
for (int i=0; i<graphicalItems.count(); i++)
uiWidConfig.comboBox_tags->addItem(graphicalItems[i]->name() + graphicalItems[i]->bar());
// advanced
if (configuration[QString("background")].toInt() == 0)
@ -295,6 +270,19 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
Qt::MatchFixedString));
uiAdvancedConfig.lineEdit_acOnline->setText(configuration[QString("acOnline")]);
uiAdvancedConfig.lineEdit_acOffline->setText(configuration[QString("acOffline")]);
uiAdvancedConfig.listWidget_bars->clear();
for (int i=0; i<graphicalItems.count(); i++) {
QListWidgetItem *item = new QListWidgetItem(graphicalItems[i]->fileName());
QStringList tooltip;
tooltip.append(i18n("Tag: %1", graphicalItems[i]->name() + graphicalItems[i]->bar()));
tooltip.append(i18n("Comment: %1", graphicalItems[i]->comment()));
item->setToolTip(tooltip.join(QChar('\n')));
uiAdvancedConfig.listWidget_bars->addItem(item);
}
if (configuration[QString("checkUpdates")].toInt() == 0)
uiAdvancedConfig.checkBox_updates->setCheckState(Qt::Unchecked);
else
uiAdvancedConfig.checkBox_updates->setCheckState(Qt::Checked);
// tooltip
uiTooltipConfig.spinBox_tooltipNum->setValue(configuration[QString("tooltipNumber")].toInt());
@ -356,15 +344,18 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
// dataengine
QMap<QString, QString> deSettings = readDataEngineConfiguration();
uiDEConfig.lineEdit_acpi->setText(deSettings[QString("ACPIPATH")]);
uiDEConfig.tableWidget_customCommand->clear();
uiDEConfig.tableWidget_customCommand->setRowCount(deSettings[QString("CUSTOM")].split(QString("@@")).count() + 1);
headerList.clear();
headerList.append(i18n("Custom command"));
uiDEConfig.tableWidget_customCommand->setHorizontalHeaderLabels(headerList);
uiDEConfig.tableWidget_customCommand->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
for (int i=0; i<deSettings[QString("CUSTOM")].split(QString("@@")).count(); i++)
uiDEConfig.tableWidget_customCommand->setItem(i, 0, new QTableWidgetItem(deSettings[QString("CUSTOM")].split(QString("@@"))[i]));
uiDEConfig.lineEdit_desktopCmd->setText(deSettings[QString("DESKTOPCMD")]);
QList<ExtScript *> externalScripts = initScripts();
uiDEConfig.listWidget_custom->clear();
for (int i=0; i<externalScripts.count(); i++) {
QListWidgetItem *item = new QListWidgetItem(externalScripts[i]->fileName());
QStringList tooltip;
tooltip.append(i18n("Name: %1", externalScripts[i]->name()));
tooltip.append(i18n("Comment: %1", externalScripts[i]->comment()));
tooltip.append(i18n("Exec: %1", externalScripts[i]->executable()));
item->setToolTip(tooltip.join(QChar('\n')));
uiDEConfig.listWidget_custom->addItem(item);
}
externalScripts.clear();
uiDEConfig.comboBox_gpudev->setCurrentIndex(
uiDEConfig.comboBox_gpudev->findText(deSettings[QString("GPUDEV")], Qt::MatchFixedString));
cmd = QString("find /dev -name [hms]d[a-z]");
@ -386,27 +377,49 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
uiDEConfig.spinBox_mpdport->setValue(deSettings[QString("MPDPORT")].toInt());
uiDEConfig.comboBox_mpris->addItem(deSettings[QString("MPRIS")]);
uiDEConfig.comboBox_mpris->setCurrentIndex(uiDEConfig.comboBox_mpris->count() - 1);
uiDEConfig.tableWidget_pkgCommand->clear();
uiDEConfig.tableWidget_pkgCommand->setRowCount(deSettings[QString("PKGCMD")].split(QChar(',')).count() + 1);
headerList.clear();
headerList.append(i18n("Package manager"));
headerList.append(i18n("Null lines"));
uiDEConfig.tableWidget_pkgCommand->setHorizontalHeaderLabels(headerList);
uiDEConfig.tableWidget_pkgCommand->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
for (int i=0; i<deSettings[QString("PKGCMD")].split(QChar(',')).count(); i++) {
uiDEConfig.tableWidget_pkgCommand->setItem(i, 0, new QTableWidgetItem(deSettings[QString("PKGCMD")].split(QChar(','))[i]));
uiDEConfig.tableWidget_pkgCommand->setItem(i, 1, new QTableWidgetItem(deSettings[QString("PKGNULL")].split(QChar(','))[i]));
QList<ExtUpgrade *> externalUpgrade = initUpgrades();
uiDEConfig.listWidget_pkgCommand->clear();
for (int i=0; i<externalUpgrade.count(); i++) {
QListWidgetItem *item = new QListWidgetItem(externalUpgrade[i]->fileName());
QStringList tooltip;
tooltip.append(i18n("Name: %1", externalUpgrade[i]->name()));
tooltip.append(i18n("Comment: %1", externalUpgrade[i]->comment()));
tooltip.append(i18n("Exec: %1", externalUpgrade[i]->executable()));
item->setToolTip(tooltip.join(QChar('\n')));
uiDEConfig.listWidget_pkgCommand->addItem(item);
}
uiDEConfig.tableWidget_pkgCommand->setItem(uiDEConfig.tableWidget_pkgCommand->rowCount() - 1, 1,
new QTableWidgetItem(QString("0")));
externalUpgrade.clear();
uiDEConfig.comboBox_playerSelect->setCurrentIndex(
uiDEConfig.comboBox_playerSelect->findText(deSettings[QString("PLAYER")], Qt::MatchFixedString));
// about
uiAboutConfig.label_name->setText(QString(NAME));
uiAboutConfig.label_version->setText(i18n("Version %1\n(build date %2)", QString(VERSION), QString(BUILD_DATE)));
uiAboutConfig.label_description->setText(i18n("A set of minimalistic plasmoid widgets"));
uiAboutConfig.label_links->setText(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")));
uiAboutConfig.label_license->setText(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>"));
// 2nd tab
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]);
uiAboutConfig.label_translators->setText(i18n("Translators: %1", QString(TRANSLATORS)));
uiAboutConfig.label_trdparty->setText(i18n("This software uses: %1", trdPartyList.join(QString(", "))));
parent->addPage(configWidget, i18n("Widget"), Applet::icon());
parent->addPage(advWidget, i18n("Advanced"), QString("system-run"));
parent->addPage(tooltipWidget, i18n("Tooltip"), QString("preferences-desktop-color"));
parent->addPage(appWidget, i18n("Appearance"), QString("preferences-desktop-theme"));
parent->addPage(deConfigWidget, i18n("DataEngine"), QString("utilities-system-monitor"));
parent->addPage(aboutWidget, i18n("About"), QString("help-about"));
connect(uiAdvancedConfig.listWidget_fanDevice, SIGNAL(itemActivated(QListWidgetItem *)),
this, SLOT(editFanItem(QListWidgetItem *)));
@ -418,14 +431,21 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
this, SLOT(editMountItem(QListWidgetItem *)));
connect(uiAdvancedConfig.listWidget_tempDevice, SIGNAL(itemActivated(QListWidgetItem *)),
this, SLOT(editTempItem(QListWidgetItem *)));
connect(uiDEConfig.tableWidget_customCommand, SIGNAL(itemChanged(QTableWidgetItem *)),
this, SLOT(addNewCustomCommand(QTableWidgetItem *)));
connect(uiDEConfig.tableWidget_customCommand, SIGNAL(customContextMenuRequested(QPoint)),
connect(uiAdvancedConfig.listWidget_bars, SIGNAL(itemActivated(QListWidgetItem *)),
this, SLOT(editBar(QListWidgetItem *)));
connect(uiAdvancedConfig.listWidget_bars, SIGNAL(customContextMenuRequested(QPoint)),
this, SLOT(contextMenuBars(QPoint)));
connect(uiDEConfig.listWidget_custom, SIGNAL(itemActivated(QListWidgetItem *)),
this, SLOT(editCustomCommand(QListWidgetItem *)));
connect(uiDEConfig.listWidget_custom, SIGNAL(customContextMenuRequested(QPoint)),
this, SLOT(contextMenuCustomCommand(QPoint)));
connect(uiDEConfig.tableWidget_pkgCommand, SIGNAL(itemChanged(QTableWidgetItem *)),
this, SLOT(addNewPkgCommand(QTableWidgetItem *)));
connect(uiDEConfig.tableWidget_pkgCommand, SIGNAL(customContextMenuRequested(QPoint)),
connect(uiDEConfig.listWidget_pkgCommand, SIGNAL(itemActivated(QListWidgetItem *)),
this, SLOT(editPkgCommand(QListWidgetItem *)));
connect(uiDEConfig.listWidget_pkgCommand, SIGNAL(customContextMenuRequested(QPoint)),
this, SLOT(contextMenuPkgCommand(QPoint)));
connect(uiAdvancedConfig.pushButton_bars, SIGNAL(clicked(bool)), this, SLOT(addBar()));
connect(uiDEConfig.pushButton_custom, SIGNAL(clicked(bool)), this, SLOT(addCustomScript()));
connect(uiDEConfig.pushButton_pkgCommand, SIGNAL(clicked(bool)), this, SLOT(addPkgCommand()));
connect(uiWidConfig.pushButton_tags, SIGNAL(clicked(bool)), this, SLOT(setFormating()));
connect(uiWidConfig.pushButton_br, SIGNAL(clicked(bool)), this, SLOT(setFormating()));
connect(uiWidConfig.pushButton_font, SIGNAL(clicked(bool)), this, SLOT(setFontFormating()));
@ -489,6 +509,7 @@ void AwesomeWidget::configAccepted()
cg.writeEntry("customNetdev", uiAdvancedConfig.comboBox_netdev->currentText());
cg.writeEntry("acOnline", uiAdvancedConfig.lineEdit_acOnline->text());
cg.writeEntry("acOffline", uiAdvancedConfig.lineEdit_acOffline->text());
cg.writeEntry("checkUpdates", QString::number(uiAdvancedConfig.checkBox_updates->checkState()));
// tooltip
cg.writeEntry("tooltipNumber", QString::number(uiTooltipConfig.spinBox_tooltipNum->value()));
@ -520,28 +541,12 @@ void AwesomeWidget::configAccepted()
// dataengine
QMap<QString, QString> deSettings;
deSettings[QString("ACPIPATH")] = uiDEConfig.lineEdit_acpi->text();
items.clear();
for (int i=0; i<uiDEConfig.tableWidget_customCommand->rowCount(); i++)
if (uiDEConfig.tableWidget_customCommand->item(i, 0) != 0)
items.append(uiDEConfig.tableWidget_customCommand->item(i, 0)->text());
deSettings[QString("CUSTOM")] = items.join(QString("@@"));
deSettings[QString("DESKTOPCMD")] = uiDEConfig.lineEdit_desktopCmd->text();
deSettings[QString("GPUDEV")] = uiDEConfig.comboBox_gpudev->currentText();
deSettings[QString("HDDDEV")] = uiDEConfig.comboBox_hdddev->currentText();
deSettings[QString("HDDTEMPCMD")] = uiDEConfig.lineEdit_hddtempCmd->text();
deSettings[QString("MPDADDRESS")] = uiDEConfig.lineEdit_mpdaddress->text();
deSettings[QString("MPDPORT")] = QString::number(uiDEConfig.spinBox_mpdport->value());
deSettings[QString("MPRIS")] = uiDEConfig.comboBox_mpris->currentText();
items.clear();
for (int i=0; i<uiDEConfig.tableWidget_pkgCommand->rowCount(); i++)
if (uiDEConfig.tableWidget_pkgCommand->item(i, 0) != 0)
items.append(uiDEConfig.tableWidget_pkgCommand->item(i, 0)->text());
deSettings[QString("PKGCMD")] = items.join(QChar(','));
items.clear();
for (int i=0; i<uiDEConfig.tableWidget_pkgCommand->rowCount(); i++)
if (uiDEConfig.tableWidget_pkgCommand->item(i, 0) != 0)
items.append(uiDEConfig.tableWidget_pkgCommand->item(i, 1)->text());
deSettings[QString("PKGNULL")] = items.join(QChar(','));
deSettings[QString("PLAYER")] = uiDEConfig.comboBox_playerSelect->currentText();
writeDataEngineConfiguration(deSettings);
}
@ -571,6 +576,7 @@ void AwesomeWidget::configChanged()
configuration[QString("customNetdev")] = cg.readEntry("customNetdev", "lo");
configuration[QString("acOnline")] = cg.readEntry("acOnline", "(*)");
configuration[QString("acOffline")] = cg.readEntry("acOffline", "( )");
configuration[QString("checkUpdates")] = cg.readEntry("checkUpdates", "2");
// tooltip
tooltipValues.clear();
@ -630,7 +636,7 @@ void AwesomeWidget::configChanged()
fontStyle = QString("italic");
else
fontStyle = QString("normal");
formatLine[0] = QString("<html><head><style type=\"text/css\">p, li { white-space: pre-wrap; }</style>\
formatLine[0] = QString("<html><head><style type=\"text/css\">body { white-space: pre-wrap; }</style>\
</head><body style=\"font-family:'%1'; font-size:%2pt; font-weight:%3; font-style:%4; color:%5;\">")
.arg(font.family())
.arg(font.pointSize())
@ -645,15 +651,15 @@ void AwesomeWidget::configChanged()
QStringList acpiDevices = QDir(deSettings[QString("ACPIPATH")]).entryList(QDir::Dirs | QDir::NoDotAndDotDot);
QRegExp batRegexp = QRegExp(QString("BAT.*"));
for (int i=0; i<acpiDevices.count(); i++)
if (acpiDevices[i].indexOf(batRegexp) > -1)
if (acpiDevices[i].contains(batRegexp))
counts[QString("bat")]++;
counts[QString("cpu")] = getNumberCpus();
counts[QString("custom")] = deSettings[QString("CUSTOM")].split(QString("@@")).count();
counts[QString("custom")] = initScripts().count();
counts[QString("disk")] = configuration[QString("disk")].split(QString("@@")).count();
counts[QString("fan")] = configuration[QString("fanDevice")].split(QString("@@")).count();
counts[QString("hddtemp")] = configuration[QString("hdd")].split(QString("@@")).count();
counts[QString("mount")] = configuration[QString("mount")].split(QString("@@")).count();
counts[QString("pkg")] = deSettings[QString("PKGCMD")].split(QChar(',')).count();
counts[QString("pkg")] = initUpgrades().count();
counts[QString("temp")] = configuration[QString("tempDevice")].split(QString("@@")).count();
counts[QString("tooltip")] = 0;
counts[QString("tooltip")] += configuration[QString("cpuTooltip")].toInt();
@ -668,56 +674,360 @@ void AwesomeWidget::configChanged()
}
void AwesomeWidget::addNewCustomCommand(QTableWidgetItem *item)
void AwesomeWidget::addBar()
{
if (debug) qDebug() << PDEBUG;
if (item->row() == (uiDEConfig.tableWidget_customCommand->rowCount() - 1))
uiDEConfig.tableWidget_customCommand->insertRow(
uiDEConfig.tableWidget_customCommand->rowCount());
int number = 0;
while (true) {
bool exit = true;
for (int i=0; i<graphicalItems.count(); i++)
if (graphicalItems[i]->name() == QString("bar%1").arg(number)) {
number++;
exit = false;
break;
}
if (exit) break;
}
QStringList dirs = KGlobal::dirs()->findDirs("data", "plasma_applet_awesome-widget/desktops");
bool ok;
QString name = QInputDialog::getText(0, i18n("Enter file name"),
i18n("File name"), QLineEdit::Normal,
QString(""), &ok);
if ((!ok) || (name.isEmpty())) return;
if (!name.endsWith(QString(".desktop"))) name += QString(".desktop");
QStringList bars;
bars.append(keys.filter((QRegExp(QString("cpu(?!cl).*")))));
bars.append(keys.filter((QRegExp(QString("^gpu$")))));
bars.append(keys.filter((QRegExp(QString("^mem$")))));
bars.append(keys.filter((QRegExp(QString("^swap$")))));
bars.append(keys.filter((QRegExp(QString("^hdd[0-9].*")))));
bars.append(keys.filter((QRegExp(QString("^bat.*")))));
GraphicalItem *item = new GraphicalItem(0, name, dirs, debug);
item->setName(QString("bar%1").arg(number));
if (item->showConfiguration(bars) == 1) {
getGraphicalItems();
QListWidgetItem *widgetItem = new QListWidgetItem(item->fileName());
QStringList tooltip;
tooltip.append(i18n("Tag: %1", item->name() + item->bar()));
tooltip.append(i18n("Comment: %1", item->comment()));
widgetItem->setToolTip(tooltip.join(QChar('\n')));
uiAdvancedConfig.listWidget_bars->addItem(widgetItem);
uiAdvancedConfig.listWidget_bars->sortItems();
}
delete item;
}
void AwesomeWidget::addNewPkgCommand(QTableWidgetItem *item)
void AwesomeWidget::addCustomScript()
{
if (debug) qDebug() << PDEBUG;
if ((item->row() == (uiDEConfig.tableWidget_pkgCommand->rowCount() - 1)) &&
(item->column() == 0)) {
uiDEConfig.tableWidget_pkgCommand->insertRow(
uiDEConfig.tableWidget_pkgCommand->rowCount());
uiDEConfig.tableWidget_pkgCommand->setItem(
uiDEConfig.tableWidget_pkgCommand->rowCount() - 1, 1,
new QTableWidgetItem(QString("0")));
QStringList dirs = KGlobal::dirs()->findDirs("data", "awesomewidgets/scripts");
bool ok;
QString name = QInputDialog::getText(0, i18n("Enter file name"),
i18n("File name"), QLineEdit::Normal,
QString(""), &ok);
if ((!ok) || (name.isEmpty())) return;
if (!name.endsWith(QString(".desktop"))) name += QString(".desktop");
ExtScript *script = new ExtScript(0, name, dirs, debug);
if (script->showConfiguration() == 1) {
QListWidgetItem *widgetItem = new QListWidgetItem(script->fileName());
QStringList tooltip;
tooltip.append(i18n("Name: %1", script->name()));
tooltip.append(i18n("Comment: %1", script->comment()));
tooltip.append(i18n("Exec: %1", script->executable()));
widgetItem->setToolTip(tooltip.join(QChar('\n')));
uiDEConfig.listWidget_custom->addItem(widgetItem);
uiDEConfig.listWidget_custom->sortItems();
}
delete script;
}
void AwesomeWidget::addPkgCommand()
{
if (debug) qDebug() << PDEBUG;
QStringList dirs = KGlobal::dirs()->findDirs("data", "awesomewidgets/upgrade");
bool ok;
QString name = QInputDialog::getText(0, i18n("Enter file name"),
i18n("File name"), QLineEdit::Normal,
QString(""), &ok);
if ((!ok) || (name.isEmpty())) return;
if (!name.endsWith(QString(".desktop"))) name += QString(".desktop");
ExtUpgrade *upgrade = new ExtUpgrade(0, name, dirs, debug);
if (upgrade->showConfiguration() == 1) {
QListWidgetItem *widgetItem = new QListWidgetItem(upgrade->fileName());
QStringList tooltip;
tooltip.append(i18n("Name: %1", upgrade->name()));
tooltip.append(i18n("Comment: %1", upgrade->comment()));
tooltip.append(i18n("Exec: %1", upgrade->executable()));
widgetItem->setToolTip(tooltip.join(QChar('\n')));
uiDEConfig.listWidget_pkgCommand->addItem(widgetItem);
uiDEConfig.listWidget_pkgCommand->sortItems();
}
delete upgrade;
}
void AwesomeWidget::contextMenuBars(const QPoint pos)
{
if (debug) qDebug() << PDEBUG;
if (uiAdvancedConfig.listWidget_bars->currentItem() == 0) return;
QMenu menu(uiAdvancedConfig.listWidget_bars);
QAction *edit = menu.addAction(QIcon::fromTheme("document-edit"), i18n("Edit"));
QAction *copy = menu.addAction(QIcon::fromTheme("edit-copy"), i18n("Copy"));
QAction *remove = menu.addAction(QIcon::fromTheme("edit-delete"), i18n("Remove"));
QAction *action = menu.exec(uiAdvancedConfig.listWidget_bars->viewport()->mapToGlobal(pos));
if (action == edit)
editBar(uiAdvancedConfig.listWidget_bars->currentItem());
else if (action == copy)
copyBar(uiAdvancedConfig.listWidget_bars->currentItem()->text());
else if (action == remove)
for (int i=0; i<graphicalItems.count(); i++) {
if (graphicalItems[i]->fileName() != uiAdvancedConfig.listWidget_bars->currentItem()->text())
continue;
if (graphicalItems[i]->tryDelete() == 1) {
graphicalItems.removeAt(i);
uiAdvancedConfig.listWidget_bars->takeItem(uiAdvancedConfig.listWidget_bars->currentRow());
}
break;
}
}
void AwesomeWidget::contextMenuCustomCommand(const QPoint pos)
{
if (debug) qDebug() << PDEBUG;
if (uiDEConfig.tableWidget_customCommand->currentItem() == 0) return;
if (uiDEConfig.listWidget_custom->currentItem() == 0) return;
QMenu menu(uiDEConfig.tableWidget_customCommand);
QMenu menu(uiDEConfig.listWidget_custom);
QAction *edit = menu.addAction(QIcon::fromTheme("document-edit"), i18n("Edit"));
QAction *copy = menu.addAction(QIcon::fromTheme("edit-copy"), i18n("Copy"));
QAction *remove = menu.addAction(QIcon::fromTheme("edit-delete"), i18n("Remove"));
QAction *action = menu.exec(uiDEConfig.tableWidget_customCommand->viewport()->mapToGlobal(pos));
if (action == remove)
uiDEConfig.tableWidget_customCommand->removeRow(
uiDEConfig.tableWidget_customCommand->currentRow());
QAction *action = menu.exec(uiDEConfig.listWidget_custom->viewport()->mapToGlobal(pos));
if (action == edit)
editCustomCommand(uiDEConfig.listWidget_custom->currentItem());
else if (action == copy)
copyCustomCommand(uiDEConfig.listWidget_custom->currentItem()->text());
else if (action == remove) {
QStringList dirs = KGlobal::dirs()->findDirs("data", "awesomewidgets/scripts");
ExtScript *script = new ExtScript(0, uiDEConfig.listWidget_custom->currentItem()->text(), dirs, debug);
if (script->tryDelete() == 1)
uiDEConfig.listWidget_custom->takeItem(uiDEConfig.listWidget_custom->currentRow());
delete script;
}
}
void AwesomeWidget::contextMenuPkgCommand(const QPoint pos)
{
if (debug) qDebug() << PDEBUG;
if (uiDEConfig.tableWidget_pkgCommand->currentItem() == 0) return;
if (uiDEConfig.listWidget_pkgCommand->currentItem() == 0) return;
QMenu menu(uiDEConfig.tableWidget_pkgCommand);
QMenu menu(uiDEConfig.listWidget_pkgCommand);
QAction *edit = menu.addAction(QIcon::fromTheme("document-edit"), i18n("Edit"));
QAction *copy = menu.addAction(QIcon::fromTheme("edit-copy"), i18n("Copy"));
QAction *remove = menu.addAction(QIcon::fromTheme("edit-delete"), i18n("Remove"));
QAction *action = menu.exec(uiDEConfig.tableWidget_pkgCommand->viewport()->mapToGlobal(pos));
if (action == remove)
uiDEConfig.tableWidget_pkgCommand->removeRow(
uiDEConfig.tableWidget_pkgCommand->currentRow());
QAction *action = menu.exec(uiDEConfig.listWidget_pkgCommand->viewport()->mapToGlobal(pos));
if (action == edit)
editPkgCommand(uiDEConfig.listWidget_pkgCommand->currentItem());
else if (action == copy)
copyPkgCommand(uiDEConfig.listWidget_pkgCommand->currentItem()->text());
else if (action == remove) {
QStringList dirs = KGlobal::dirs()->findDirs("data", "awesomewidgets/upgrade");
ExtUpgrade *upgrade = new ExtUpgrade(0, uiDEConfig.listWidget_pkgCommand->currentItem()->text(), dirs, debug);
if (upgrade->tryDelete() == 1)
uiDEConfig.listWidget_pkgCommand->takeItem(uiDEConfig.listWidget_pkgCommand->currentRow());
delete upgrade;
}
}
void AwesomeWidget::copyBar(const QString original)
{
if (debug) qDebug() << PDEBUG;
int number = 0;
while (true) {
bool exit = true;
for (int i=0; i<graphicalItems.count(); i++)
if (graphicalItems[i]->name() == QString("bar%1").arg(number)) {
number++;
exit = false;
break;
}
if (exit) break;
}
QStringList dirs = KGlobal::dirs()->findDirs("data", "plasma_applet_awesome-widget/desktops");
bool ok;
QString name = QInputDialog::getText(0, i18n("Enter file name"),
i18n("File name"), QLineEdit::Normal,
QString(""), &ok);
if ((!ok) || (name.isEmpty())) return;
if (!name.endsWith(QString(".desktop"))) name += QString(".desktop");
QStringList bars;
bars.append(keys.filter((QRegExp(QString("cpu(?!cl).*")))));
bars.append(keys.filter((QRegExp(QString("^gpu$")))));
bars.append(keys.filter((QRegExp(QString("^mem$")))));
bars.append(keys.filter((QRegExp(QString("^swap$")))));
bars.append(keys.filter((QRegExp(QString("^hdd[0-9].*")))));
bars.append(keys.filter((QRegExp(QString("^bat.*")))));
GraphicalItem *originalItem = nullptr;
for (int i=0; i<graphicalItems.count(); i++) {
if (graphicalItems[i]->fileName() != original) continue;
originalItem = graphicalItems[i];
break;
}
GraphicalItem *item = new GraphicalItem(0, name, dirs, debug);
item->setName(QString("bar%1").arg(number));
item->setComment(originalItem->comment());
item->setBar(originalItem->bar());
item->setActiveColor(originalItem->activeColor());
item->setInactiveColor(originalItem->inactiveColor());
item->setType(originalItem->type());
item->setDirection(originalItem->direction());
item->setHeight(originalItem->height());
item->setWidth(originalItem->width());
delete originalItem;
if (item->showConfiguration(bars) == 1) {
getGraphicalItems();
QListWidgetItem *widgetItem = new QListWidgetItem(item->fileName());
QStringList tooltip;
tooltip.append(i18n("Tag: %1", item->name() + item->bar()));
tooltip.append(i18n("Comment: %1", item->comment()));
widgetItem->setToolTip(tooltip.join(QChar('\n')));
uiAdvancedConfig.listWidget_bars->addItem(widgetItem);
uiAdvancedConfig.listWidget_bars->sortItems();
}
delete item;
}
void AwesomeWidget::copyCustomCommand(const QString original)
{
if (debug) qDebug() << PDEBUG;
QStringList dirs = KGlobal::dirs()->findDirs("data", "awesomewidgets/scripts");
bool ok;
QString name = QInputDialog::getText(0, i18n("Enter file name"),
i18n("File name"), QLineEdit::Normal,
QString(""), &ok);
if ((!ok) || (name.isEmpty())) return;
if (!name.endsWith(QString(".desktop"))) name += QString(".desktop");
ExtScript *originalScript = new ExtScript(0, original, dirs, debug);
ExtScript *script = new ExtScript(0, name, dirs, debug);
script->setActive(originalScript->isActive());
script->setComment(originalScript->comment());
script->setExecutable(originalScript->executable());
script->setHasOutput(originalScript->hasOutput());
script->setInterval(originalScript->interval());
script->setName(originalScript->name());
script->setPrefix(originalScript->prefix());
script->setRedirect(originalScript->redirect());
delete originalScript;
if (script->showConfiguration() == 1) {
QListWidgetItem *widgetItem = new QListWidgetItem(script->fileName());
QStringList tooltip;
tooltip.append(i18n("Name: %1", script->name()));
tooltip.append(i18n("Comment: %1", script->comment()));
tooltip.append(i18n("Exec: %1", script->executable()));
widgetItem->setToolTip(tooltip.join(QChar('\n')));
uiDEConfig.listWidget_custom->addItem(widgetItem);
uiDEConfig.listWidget_custom->sortItems();
}
delete script;
}
void AwesomeWidget::copyPkgCommand(const QString original)
{
if (debug) qDebug() << PDEBUG;
QStringList dirs = KGlobal::dirs()->findDirs("data", "awesomewidgets/upgrade");
bool ok;
QString name = QInputDialog::getText(0, i18n("Enter file name"),
i18n("File name"), QLineEdit::Normal,
QString(""), &ok);
if ((!ok) || (name.isEmpty())) return;
if (!name.endsWith(QString(".desktop"))) name += QString(".desktop");
ExtUpgrade *originalUpgrade = new ExtUpgrade(0, original, dirs, debug);
ExtUpgrade *upgrade = new ExtUpgrade(0, name, dirs, debug);
upgrade->setActive(originalUpgrade->isActive());
upgrade->setComment(originalUpgrade->comment());
upgrade->setExecutable(originalUpgrade->executable());
upgrade->setName(originalUpgrade->name());
upgrade->setNull(originalUpgrade->null());
upgrade->setInterval(originalUpgrade->interval());
delete originalUpgrade;
if (upgrade->showConfiguration() == 1) {
QListWidgetItem *widgetItem = new QListWidgetItem(upgrade->fileName());
QStringList tooltip;
tooltip.append(i18n("Name: %1", upgrade->name()));
tooltip.append(i18n("Comment: %1", upgrade->comment()));
tooltip.append(i18n("Exec: %1", upgrade->executable()));
widgetItem->setToolTip(tooltip.join(QChar('\n')));
uiDEConfig.listWidget_pkgCommand->addItem(widgetItem);
uiDEConfig.listWidget_pkgCommand->sortItems();
}
delete upgrade;
}
void AwesomeWidget::editBar(QListWidgetItem *item)
{
if (debug) qDebug() << PDEBUG;
if (item == nullptr) return;
QStringList bars;
bars.append(keys.filter((QRegExp(QString("^cpu(?!cl).*")))));
bars.append(keys.filter((QRegExp(QString("^gpu$")))));
bars.append(keys.filter((QRegExp(QString("^mem$")))));
bars.append(keys.filter((QRegExp(QString("^swap$")))));
bars.append(keys.filter((QRegExp(QString("^hdd[0-9].*")))));
bars.append(keys.filter((QRegExp(QString("^bat.*")))));
for (int i=0; i<graphicalItems.count(); i++) {
if (graphicalItems[i]->fileName() != item->text()) continue;
graphicalItems[i]->showConfiguration(bars);
break;
}
}
void AwesomeWidget::editCustomCommand(QListWidgetItem *item)
{
if (debug) qDebug() << PDEBUG;
if (item == nullptr) return;
QStringList dirs = KGlobal::dirs()->findDirs("data", "awesomewidgets/scripts");
ExtScript *script = new ExtScript(0, item->text(), dirs, debug);
script->showConfiguration();
}
void AwesomeWidget::editPkgCommand(QListWidgetItem *item)
{
if (debug) qDebug() << PDEBUG;
if (item == nullptr) return;
QStringList dirs = KGlobal::dirs()->findDirs("data", "awesomewidgets/upgrade");
ExtUpgrade *upgrade = new ExtUpgrade(0, item->text(), dirs, debug);
upgrade->showConfiguration();
}
@ -761,6 +1071,60 @@ void AwesomeWidget::editTempItem(QListWidgetItem *item)
}
QList<ExtScript *> AwesomeWidget::initScripts()
{
if (debug) qDebug() << PDEBUG;
QList<ExtScript *> externalScripts;
// create directory at $HOME
QString localDir = KStandardDirs::locateLocal("data", "awesomewidgets/scripts");
if (KStandardDirs::makeDir(localDir))
if (debug) qDebug() << PDEBUG << ":" << "Created directory" << localDir;
QStringList dirs = KGlobal::dirs()->findDirs("data", "awesomewidgets/scripts");
QStringList names;
for (int i=0; i<dirs.count(); i++) {
QStringList files = QDir(dirs[i]).entryList(QDir::Files, QDir::Name);
for (int j=0; j<files.count(); j++) {
if (!files[j].endsWith(QString(".desktop"))) continue;
if (names.contains(files[j])) continue;
if (debug) qDebug() << PDEBUG << ":" << "Found file" << files[j] << "in" << dirs[i];
names.append(files[j]);
externalScripts.append(new ExtScript(0, files[j], dirs, debug));
}
}
return externalScripts;
}
QList<ExtUpgrade *> AwesomeWidget::initUpgrades()
{
if (debug) qDebug() << PDEBUG;
QList<ExtUpgrade *> externalUpgrade;
// create directory at $HOME
QString localDir = KStandardDirs::locateLocal("data", "awesomewidgets/upgrade");
if (KStandardDirs::makeDir(localDir))
if (debug) qDebug() << PDEBUG << ":" << "Created directory" << localDir;
QStringList dirs = KGlobal::dirs()->findDirs("data", "awesomewidgets/upgrade");
QStringList names;
for (int i=0; i<dirs.count(); i++) {
QStringList files = QDir(dirs[i]).entryList(QDir::Files, QDir::Name);
for (int j=0; j<files.count(); j++) {
if (!files[j].endsWith(QString(".desktop"))) continue;
if (names.contains(files[j])) continue;
if (debug) qDebug() << PDEBUG << ":" << "Found file" << files[j] << "in" << dirs[i];
names.append(files[j]);
externalUpgrade.append(new ExtUpgrade(0, files[j], dirs, debug));
}
}
return externalUpgrade;
}
void AwesomeWidget::setFontFormating()
{
if (debug) qDebug() << PDEBUG;

View File

@ -65,7 +65,7 @@ void CustomLabel::mousePressEvent(QMouseEvent *event)
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
text += QString("Kernel: %1\n").arg(QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed());
text += QString("Kernel: %1<br>").arg(QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed());
// hostname
cmd = QString("uname -n");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
@ -73,7 +73,7 @@ void CustomLabel::mousePressEvent(QMouseEvent *event)
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
text += QString("Hostname: %1\n").arg(QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed());
text += QString("Hostname: %1<br>").arg(QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed());
// whoami
cmd = QString("whoami");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
@ -81,7 +81,7 @@ void CustomLabel::mousePressEvent(QMouseEvent *event)
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
text += QString("Whoami: %1\n").arg(QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed());
text += QString("Whoami: %1<br>").arg(QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed());
// uptime
cmd = QString("uptime");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
@ -89,9 +89,9 @@ void CustomLabel::mousePressEvent(QMouseEvent *event)
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
text += QString("Uptime: %1\n").arg(QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed());
text += QString("Uptime: %1").arg(QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed());
widget->sendNotification(QString("system"), text);
}
emit(QLabel::mousePressEvent(event));
emit(QWidget::mousePressEvent(event));
}

View File

@ -38,7 +38,7 @@ protected:
private:
AwesomeWidget *widget;
bool debug;
bool enablePopup;
bool enablePopup = true;
};

View File

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>700</width>
<height>592</height>
<height>582</height>
</rect>
</property>
<property name="sizePolicy">
@ -43,127 +43,47 @@
<x>0</x>
<y>0</y>
<width>684</width>
<height>576</height>
<height>566</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="4" column="0">
<layout class="QHBoxLayout" name="layout_hdddev">
<layout class="QHBoxLayout" name="layout_hddtempCmd">
<item>
<widget class="QLabel" name="label_hdddev">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>HDD</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_hdddev">
<widget class="QLabel" name="label_hddtempCmd">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item row="7" column="0">
<layout class="QHBoxLayout" name="layout_mpdport">
<item>
<widget class="QLabel" name="label_mpdport">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>MPD port</string>
</property>
</widget>
</item>
<item>
<spacer name="spacer_mpdport">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>19</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSpinBox" name="spinBox_mpdport">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
<string>hddtemp cmd</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>50000</number>
</property>
<property name="singleStep">
<number>100</number>
</property>
<property name="value">
<number>6600</number>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_hddtempCmd"/>
</item>
</layout>
</item>
<item row="3" column="0">
<item row="2" column="0">
<layout class="QHBoxLayout" name="layout_gpudev">
<item>
<widget class="QLabel" name="label_gpudev">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>GPU device</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_gpudev">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<item>
<property name="text">
<string notr="true">auto</string>
@ -188,56 +108,39 @@
</item>
</layout>
</item>
<item row="11" column="0">
<spacer name="spacer_dataengine">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="0">
<layout class="QHBoxLayout" name="layout_hddtempCmd">
<item row="3" column="0">
<layout class="QHBoxLayout" name="layout_hdddev">
<item>
<widget class="QLabel" name="label_hddtempCmd">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<widget class="QLabel" name="label_hdddev">
<property name="text">
<string>hddtemp cmd</string>
<string>HDD</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_hddtempCmd">
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_hdddev"/>
</item>
</layout>
</item>
<item row="9" column="0">
<item row="8" column="0">
<layout class="QHBoxLayout" name="layout_playerSelect">
<item>
<widget class="QLabel" name="label_playerSelect">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Music player</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
@ -248,12 +151,6 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<item>
<property name="text">
<string notr="true">mpris</string>
@ -269,54 +166,99 @@
</layout>
</item>
<item row="6" column="0">
<layout class="QHBoxLayout" name="layout_mpdport">
<item>
<widget class="QLabel" name="label_mpdport">
<property name="text">
<string>MPD port</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_mpdport">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>50000</number>
</property>
<property name="singleStep">
<number>100</number>
</property>
<property name="value">
<number>6600</number>
</property>
</widget>
</item>
</layout>
</item>
<item row="5" column="0">
<layout class="QHBoxLayout" name="layout_mpdaddress">
<item>
<widget class="QLabel" name="label_mpdaddress">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>MPD address</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_mpdaddress">
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_mpdaddress"/>
</item>
</layout>
</item>
<item row="2" column="0">
<layout class="QHBoxLayout" name="layout_desktopCmd">
<item row="10" column="0">
<spacer name="spacer_dataengine">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0">
<layout class="QHBoxLayout" name="layout_acpi">
<item>
<widget class="QLabel" name="label_desktopCmd">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
<widget class="QLabel" name="label_acpi">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Desktop check cmd</string>
<string>ACPI path</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_desktopCmd">
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_acpi">
<property name="toolTip">
<string>&quot;/sys/class/power_supply/&quot; by default</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="8" column="0">
<item row="7" column="0">
<layout class="QVBoxLayout" name="layout_mpris">
<item>
<widget class="QLabel" name="label_mprisInfo">
@ -332,15 +274,18 @@
<layout class="QHBoxLayout" name="layout_mprisSelect">
<item>
<widget class="QLabel" name="label_mpris">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>MPRIS player name</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
@ -351,12 +296,6 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="editable">
<bool>true</bool>
</property>
@ -406,81 +345,85 @@
</item>
</layout>
</item>
<item row="10" column="0">
<layout class="QVBoxLayout" name="layout_pkgCommand">
<item row="1" column="0">
<layout class="QVBoxLayout" name="layout_custom">
<item>
<widget class="QTableWidget" name="tableWidget_pkgCommand">
<layout class="QHBoxLayout" name="layout_customAdd">
<item>
<widget class="QLabel" name="label_custom">
<property name="text">
<string>Custom scripts</string>
</property>
</widget>
</item>
<item>
<spacer name="spacer_custom">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton_custom">
<property name="text">
<string>Add</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QListWidget" name="listWidget_custom">
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="toolTip">
<string>Editable
del - remove item</string>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum>
</property>
<attribute name="horizontalHeaderStretchLastSection">
<bool>true</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<column>
<property name="text">
<string>Package manager</string>
</property>
</column>
<column>
<property name="text">
<string>Null lines</string>
</property>
</column>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QTableWidget" name="tableWidget_customCommand">
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="toolTip">
<string>Editable
del - remove item</string>
</property>
<attribute name="horizontalHeaderStretchLastSection">
<bool>true</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<column>
<property name="text">
<string>Custom command</string>
</property>
</column>
</widget>
</item>
<item row="0" column="0">
<layout class="QHBoxLayout" name="layout_acpi">
<item row="9" column="0">
<layout class="QVBoxLayout" name="layout_pkgCommand">
<item>
<widget class="QLabel" name="label_acpi">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>ACPI path</string>
</property>
</widget>
<layout class="QHBoxLayout" name="layout_pkgCommandAdd">
<item>
<widget class="QLabel" name="label_pkgCommand">
<property name="text">
<string>Package manager</string>
</property>
</widget>
</item>
<item>
<spacer name="spacer_pkgCommand">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton_pkgCommand">
<property name="text">
<string>Add</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_acpi">
<property name="toolTip">
<string>&quot;/sys/class/power_supply/&quot; by default</string>
<widget class="QListWidget" name="listWidget_pkgCommand">
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
</widget>
</item>

View File

@ -20,6 +20,7 @@
#include <QRegExp>
#include <math.h>
#include "graphicalitem.h"
#include <pdebug/pdebug.h>
@ -29,15 +30,17 @@ void AwesomeWidget::connectToEngine()
QRegExp regExp;
// battery
regExp = QRegExp(QString("(ac|bat.*)"));
regExp = QRegExp(QString("(^|bar[0-9].*)(ac|bat.*)"));
if ((foundKeys.indexOf(regExp) > -1) ||
(configuration[QString("batteryTooltip")].toInt() == 2))
(configuration[QString("batteryTooltip")].toInt() == 2) ||
(foundBars.indexOf(regExp) > -1))
extsysmonEngine->connectSource(QString("battery"),
this, configuration[QString("interval")].toInt());
// cpu
regExp = QRegExp(QString("cpu(?!cl).*"));
regExp = QRegExp(QString("(^|bar[0-9].*)cpu(?!cl).*"));
if ((foundKeys.indexOf(regExp) > -1) ||
(configuration[QString("cpuTooltip")].toInt() == 2)) {
(configuration[QString("cpuTooltip")].toInt() == 2) ||
(foundBars.indexOf(regExp) > -1)) {
sysmonEngine->connectSource(QString("cpu/system/TotalLoad"),
this, configuration[QString("interval")].toInt());
for (int i=0; i<counts[QString("cpu")]; i++)
@ -80,8 +83,9 @@ void AwesomeWidget::connectToEngine()
sysmonEngine->connectSource(configuration[QString("fanDevice")].split(QString("@@"))[i],
this, configuration[QString("interval")].toInt());
// gpu
regExp = QRegExp(QString("gpu"));
if (foundKeys.indexOf(regExp) > -1)
regExp = QRegExp(QString("(^|bar[0-9].*)gpu"));
if ((foundKeys.indexOf(regExp) > -1) ||
(foundBars.indexOf(regExp) > -1))
extsysmonEngine->connectSource(QString("gpu"),
this, configuration[QString("interval")].toInt());
// gputemp
@ -90,8 +94,9 @@ void AwesomeWidget::connectToEngine()
extsysmonEngine->connectSource(QString("gputemp"),
this, configuration[QString("interval")].toInt());
// mount
regExp = QRegExp(QString("hdd([0-9]|mb|gb|freemb|freegb|totmb|totgb).*"));
if (foundKeys.indexOf(regExp) > -1)
regExp = QRegExp(QString("(^|bar[0-9].*)hdd([0-9]|mb|gb|freemb|freegb|totmb|totgb).*"));
if ((foundKeys.indexOf(regExp) > -1) ||
(foundBars.indexOf(regExp) > -1))
for (int i=0; i<configuration[QString("mount")].split(QString("@@")).count(); i++) {
sysmonEngine->connectSource(QString("partitions") + configuration[QString("mount")].split(QString("@@"))[i] + QString("/filllevel"),
this, configuration[QString("interval")].toInt());
@ -106,9 +111,10 @@ void AwesomeWidget::connectToEngine()
extsysmonEngine->connectSource(QString("hddtemp"),
this, configuration[QString("interval")].toInt());
// memory
regExp = QRegExp(QString("mem.*"));
regExp = QRegExp(QString("(^|bar[0-9].*)mem.*"));
if ((foundKeys.indexOf(regExp) > -1) ||
(configuration[QString("memTooltip")].toInt() == 2)) {
(configuration[QString("memTooltip")].toInt() == 2) ||
(foundBars.indexOf(regExp) > -1)) {
sysmonEngine->connectSource(QString("mem/physical/free"),
this, configuration[QString("interval")].toInt());
sysmonEngine->connectSource(QString("mem/physical/used"),
@ -130,7 +136,7 @@ void AwesomeWidget::connectToEngine()
regExp = QRegExp(QString("pkgcount.*"));
if (foundKeys.indexOf(regExp) > -1)
extsysmonEngine->connectSource(QString("pkg"),
this, 60*60*1000, Plasma::AlignToHour);
this, configuration[QString("interval")].toInt());
// player
regExp = QRegExp(QString("(album|artist|duration|progress|title)"));
if (foundKeys.indexOf(regExp) > -1)
@ -142,9 +148,10 @@ void AwesomeWidget::connectToEngine()
extsysmonEngine->connectSource(QString("ps"),
this, configuration[QString("interval")].toInt());
// swap
regExp = QRegExp(QString("swap.*"));
regExp = QRegExp(QString("(^|bar[0-9].*)swap.*"));
if ((foundKeys.indexOf(regExp) > -1) ||
(configuration[QString("swapTooltip")].toInt() == 2)) {
(configuration[QString("swapTooltip")].toInt() == 2) ||
(foundBars.indexOf(regExp) > -1)) {
sysmonEngine->connectSource(QString("mem/swap/free"),
this, configuration[QString("interval")].toInt());
sysmonEngine->connectSource(QString("mem/swap/used"),
@ -194,31 +201,50 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng
values[QString("ac")] = configuration[QString("acOnline")];
else
values[QString("ac")] = configuration[QString("acOffline")];
} else
} else {
values[data.keys()[i]] = QString("%1").arg(data[data.keys()[i]].toFloat(), 3, 'f', 0);
if (foundBars.indexOf(QRegExp(QString("bar[0-9].*bat"))) > -1) {
for (int j=0; j<foundBars.count(); j++) {
if (getItemByTag(foundBars[j])->bar() != data.keys()[i]) continue;
values[foundBars[j]] = values[data.keys()[i]];
}
}
}
}
if ((configuration[QString("batteryTooltip")].toInt() == 2) &&
(!isnan(data[QString("bat0")].toFloat()))) {
(!isnan(data[QString("bat")].toFloat()))) {
if (tooltipValues[QString("bat")].count() > configuration[QString("tooltipNumber")].toInt())
tooltipValues[QString("bat")].takeFirst();
if (data[QString("ac")].toBool())
tooltipValues[QString("bat0")].append(data[QString("bat0")].toFloat());
tooltipValues[QString("bat")].append(data[QString("bat")].toFloat());
else
tooltipValues[QString("bat0")].append(-data[QString("bat0")].toFloat());
tooltipValues[QString("bat")].append(-data[QString("bat")].toFloat());
}
} else if (sourceName == QString("cpu/system/TotalLoad")) {
values[QString("cpu")] = QString("%1").arg(data[QString("value")].toFloat(), 5, 'f', 1);
if (foundBars.indexOf(QRegExp(QString("bar[0-9].*cpu(?!cl).*"))) > -1) {
for (int j=0; j<foundBars.count(); j++) {
if (getItemByTag(foundBars[j])->bar() != QString("cpu")) continue;
values[foundBars[j]] = QString("%1").arg(data[QString("value")].toFloat());
}
}
if ((configuration[QString("cpuTooltip")].toInt() == 2) &&
(!isnan(data[QString("value")].toFloat()))) {
if (tooltipValues[QString("cpu")].count() > configuration[QString("tooltipNumber")].toInt())
tooltipValues[QString("cpu")].takeFirst();
tooltipValues[QString("cpu")].append(data[QString("value")].toFloat());
}
} else if (sourceName.indexOf(cpuRegExp) > -1) {
} else if (sourceName.contains(cpuRegExp)) {
QString number = sourceName;
number.remove(QString("cpu/cpu"));
number.remove(QString("/TotalLoad"));
values[QString("cpu") + number] = QString("%1").arg(data[QString("value")].toFloat(), 5, 'f', 1);
if (foundBars.indexOf(QRegExp(QString("bar[0-9].*cpu(?!cl).*"))) > -1) {
for (int j=0; j<foundBars.count(); j++) {
if (getItemByTag(foundBars[j])->bar() != (QString("cpu") + number)) continue;
values[foundBars[j]] = values[QString("cpu") + number];
}
}
} else if (sourceName == QString("cpu/system/AverageClock")) {
values[QString("cpucl")] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0);
if ((configuration[QString("cpuclTooltip")].toInt() == 2) &&
@ -227,7 +253,7 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng
tooltipValues[QString("cpucl")].takeFirst();
tooltipValues[QString("cpucl")].append(data[QString("value")].toFloat());
}
} else if (sourceName.indexOf(cpuclRegExp) > -1) {
} else if (sourceName.contains(cpuclRegExp)) {
QString number = sourceName;
number.remove(QString("cpu/cpu"));
number.remove(QString("/clock"));
@ -239,7 +265,7 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng
values[QString("desktop")] = data[QString("currentName")].toString();
values[QString("ndesktop")] = QString("%1").arg(data[QString("currentNumber")].toInt());
values[QString("tdesktops")] = QString("%1").arg(data[QString("number")].toInt());
} else if (sourceName.indexOf(hddrRegExp) > -1) {
} else if (sourceName.contains(hddrRegExp)) {
QString device = sourceName;
device.remove(QString("/Rate/rblk"));
for (int i=0; i<counts[QString("disk")]; i++)
@ -247,7 +273,7 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng
values[QString("hddr") + QString::number(i)] = QString("%1").arg(data[QString("value")].toFloat(), 5, 'f', 0);
break;
}
} else if (sourceName.indexOf(hddwRegExp) > -1) {
} else if (sourceName.contains(hddwRegExp)) {
QString device = sourceName;
device.remove(QString("/Rate/wblk"));
for (int i=0; i<counts[QString("disk")]; i++)
@ -256,19 +282,30 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng
break;
}
} else if (sourceName == QString("gpu")) {
values[QString("gpu")] = QString("%1").arg(data[QString("GPU")].toFloat(), 5, 'f', 1);
values[QString("gpu")] = QString("%1").arg(data[QString("value")].toFloat(), 5, 'f', 1);
if (foundBars.indexOf(QRegExp(QString("bar[0-9].*gpu"))) > -1) {
for (int j=0; j<foundBars.count(); j++) {
if (getItemByTag(foundBars[j])->bar() != QString("gpu")) continue;
values[foundBars[j]] = values[QString("gpu")];
}
}
} else if (sourceName == QString("gputemp")) {
values[QString("gputemp")] = QString("%1").arg(getTemp(data[QString("GPUTemp")].toFloat()), 4, 'f', 1);
} else if (sourceName.indexOf(mountFillRegExp) > -1) {
values[QString("gputemp")] = QString("%1").arg(getTemp(data[QString("value")].toFloat()), 4, 'f', 1);
} else if (sourceName.contains(mountFillRegExp)) {
QString mount = sourceName;
mount.remove(QString("partitions"));
mount.remove(QString("/filllevel"));
for (int i=0; i<counts[QString("mount")]; i++)
if (configuration[QString("mount")].split(QString("@@"))[i] == mount) {
values[QString("hdd") + QString::number(i)] = QString("%1").arg(data[QString("value")].toFloat(), 5, 'f', 1);
break;
if (foundBars.indexOf(QRegExp(QString("bar[0-9].*hdd([0-9].*"))) > -1) {
for (int j=0; j<foundBars.count(); j++) {
if (getItemByTag(foundBars[j])->bar() != (QString("hdd") + QString::number(i))) continue;
values[foundBars[j]] = values[QString("hdd") + QString::number(i)];
}
}
}
} else if (sourceName.indexOf(mountFreeRegExp) > -1) {
} else if (sourceName.contains(mountFreeRegExp)) {
QString mount = sourceName;
mount.remove(QString("partitions"));
mount.remove(QString("/freespace"));
@ -280,7 +317,7 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng
data[QString("value")].toFloat() / (1024.0 * 1024.0), 5, 'f', 1);
break;
}
} else if (sourceName.indexOf(mountUsedRegExp) > -1) {
} else if (sourceName.contains(mountUsedRegExp)) {
QString mount = sourceName;
mount.remove(QString("partitions"));
mount.remove(QString("/usedspace"));
@ -331,7 +368,13 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng
tooltipValues[QString("mem")].takeFirst();
tooltipValues[QString("mem")].append(values[QString("mem")].toFloat());
}
} else if (sourceName.indexOf(netRecRegExp) > -1) {
if (foundBars.indexOf(QRegExp(QString("bar[0-9].*mem"))) > -1) {
for (int j=0; j<foundBars.count(); j++) {
if (getItemByTag(foundBars[j])->bar() != QString("mem")) continue;
values[foundBars[j]] = values[QString("mem")];
}
}
} else if (sourceName.contains(netRecRegExp)) {
values[QString("down")] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0);
if ((configuration[QString("downTooltip")].toInt() == 2) &&
(!isnan(data[QString("value")].toFloat()))) {
@ -340,19 +383,19 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng
tooltipValues[QString("down")].append(data[QString("value")].toFloat());
}
networkDeviceUpdate++;
if (networkDeviceUpdate == 30) {
if (networkDeviceUpdate >= 30) {
networkDeviceUpdate = 0;
if (configuration[QString("useCustomNetdev")].toInt() == 2) {
if (configuration[QString("useCustomNetdev")].toInt() == 0) {
sysmonEngine->disconnectSource(QString("network/interfaces/") + values[QString("netdev")] + QString("/transmitter/data"), this);
sysmonEngine->disconnectSource(QString("network/interfaces/") + values[QString("netdev")] + QString("/receiver/data"), this);
updateNetworkDevice();
updateNetworkDevice(false);
sysmonEngine->connectSource(QString("network/interfaces/") + values[QString("netdev")] + QString("/transmitter/data"),
this, configuration[QString("interval")].toInt());
sysmonEngine->connectSource(QString("network/interfaces/") + values[QString("netdev")] + QString("/receiver/data"),
this, configuration[QString("interval")].toInt());
}
}
} else if (sourceName.indexOf(netTransRegExp) > -1) {
} else if (sourceName.contains(netTransRegExp)) {
values[QString("up")] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0);
if ((configuration[QString("downTooltip")].toInt() == 2) &&
(!isnan(data[QString("value")].toFloat()))) {
@ -393,7 +436,13 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng
tooltipValues[QString("swap")].takeFirst();
tooltipValues[QString("swap")].append(values[QString("swap")].toFloat());
}
} else if (sourceName.indexOf(tempRegExp) > -1) {
if (foundBars.indexOf(QRegExp(QString("bar[0-9].*swap"))) > -1) {
for (int j=0; j<foundBars.count(); j++) {
if (getItemByTag(foundBars[j])->bar() != QString("swap")) continue;
values[foundBars[j]] = values[QString("swap")];
}
}
} else if (sourceName.contains(tempRegExp)) {
if (data[QString("units")].toString() == QString("rpm")) {
for (int i=0; i<counts[QString("fan")]; i++)
if (sourceName == configuration[QString("fanDevice")].split(QString("@@"))[i]) {
@ -441,14 +490,16 @@ void AwesomeWidget::disconnectFromEngine()
QRegExp regExp;
// battery
regExp = QRegExp(QString("(ac|bat)"));
regExp = QRegExp(QString("(^|bar[0-9].*)(ac|bat.*)"));
if ((foundKeys.indexOf(regExp) > -1) ||
(configuration[QString("batteryTooltip")].toInt() == 2))
(configuration[QString("batteryTooltip")].toInt() == 2) ||
(foundBars.indexOf(regExp) > -1))
extsysmonEngine->disconnectSource(QString("battery"), this);
// cpu
regExp = QRegExp(QString("cpu(?!cl).*"));
regExp = QRegExp(QString("(^|bar[0-9].*)cpu(?!cl).*"));
if ((foundKeys.indexOf(regExp) > -1) ||
(configuration[QString("cpuTooltip")].toInt() == 2)) {
(configuration[QString("cpuTooltip")].toInt() == 2) ||
(foundBars.indexOf(regExp) > -1)) {
sysmonEngine->disconnectSource(QString("cpu/system/TotalLoad"), this);
for (int i=0; i<counts[QString("cpu")]; i++)
sysmonEngine->disconnectSource(QString("cpu/cpu") + QString::number(i) + QString("/TotalLoad"), this);
@ -482,16 +533,18 @@ void AwesomeWidget::disconnectFromEngine()
for (int i=0; i<configuration[QString("fanDevice")].split(QString("@@")).count(); i++)
sysmonEngine->disconnectSource(configuration[QString("fanDevice")].split(QString("@@"))[i], this);
// gpu
regExp = QRegExp(QString("gpu"));
if (foundKeys.indexOf(regExp) > -1)
regExp = QRegExp(QString("(^|bar[0-9].*)gpu"));
if ((foundKeys.indexOf(regExp) > -1) ||
(foundBars.indexOf(regExp) > -1))
extsysmonEngine->disconnectSource(QString("gpu"), this);
// gputemp
regExp = QRegExp(QString("gputemp"));
if (foundKeys.indexOf(regExp) > -1)
extsysmonEngine->disconnectSource(QString("gputemp"), this);
// mount
regExp = QRegExp(QString("hdd([0-9]|mb|gb|freemb|freegb|totmb|totgb).*"));
if (foundKeys.indexOf(regExp) > -1)
regExp = QRegExp(QString("(^|bar[0-9].*)hdd([0-9]|mb|gb|freemb|freegb|totmb|totgb).*"));
if ((foundKeys.indexOf(regExp) > -1) ||
(foundBars.indexOf(regExp) > -1))
for (int i=0; i<configuration[QString("mount")].split(QString("@@")).count(); i++) {
sysmonEngine->disconnectSource(QString("partitions") + configuration[QString("mount")].split(QString("@@"))[i] + QString("/filllevel"), this);
sysmonEngine->disconnectSource(QString("partitions") + configuration[QString("mount")].split(QString("@@"))[i] + QString("/freespace"), this);
@ -502,9 +555,10 @@ void AwesomeWidget::disconnectFromEngine()
if (foundKeys.indexOf(regExp) > -1)
extsysmonEngine->disconnectSource(QString("hddtemp"), this);
// memory
regExp = QRegExp(QString("mem.*"));
regExp = QRegExp(QString("(^|bar[0-9].*)mem.*"));
if ((foundKeys.indexOf(regExp) > -1) ||
(configuration[QString("memTooltip")].toInt() == 2)) {
(configuration[QString("memTooltip")].toInt() == 2) ||
(foundBars.indexOf(regExp) > -1)) {
sysmonEngine->disconnectSource(QString("mem/physical/free"), this);
sysmonEngine->disconnectSource(QString("mem/physical/used"), this);
sysmonEngine->disconnectSource(QString("mem/physical/application"), this);
@ -529,9 +583,10 @@ void AwesomeWidget::disconnectFromEngine()
if (foundKeys.indexOf(regExp) > -1)
extsysmonEngine->disconnectSource(QString("ps"), this);
// swap
regExp = QRegExp(QString("swap.*"));
regExp = QRegExp(QString("(^|bar[0-9].*)swap.*"));
if ((foundKeys.indexOf(regExp) > -1) ||
(configuration[QString("swapTooltip")].toInt() == 2)) {
(configuration[QString("swapTooltip")].toInt() == 2) ||
(foundBars.indexOf(regExp) > -1)) {
sysmonEngine->disconnectSource(QString("mem/swap/free"), this);
sysmonEngine->disconnectSource(QString("mem/swap/used"), this);
}

View File

@ -0,0 +1,12 @@
[Desktop Entry]
Encoding=UTF-8
Name=bar3
Comment=Simple bat bar
X-AW-Value=bat
X-AW-ActiveColor="0,0,0,255"
X-AW-InactiveColor="255,255,255,255"
X-AW-Type=Horizontal
X-AW-Direction=LeftToRight
X-AW-Height=25
X-AW-Width=100
X-AW-ApiVersion=1

View File

@ -0,0 +1,12 @@
[Desktop Entry]
Encoding=UTF-8
Name=bar0
Comment=Simple cpu bar
X-AW-Value=cpu
X-AW-ActiveColor="0,0,0,255"
X-AW-InactiveColor="255,255,255,255"
X-AW-Type=Horizontal
X-AW-Direction=LeftToRight
X-AW-Height=25
X-AW-Width=100
X-AW-ApiVersion=1

View File

@ -0,0 +1,12 @@
[Desktop Entry]
Encoding=UTF-8
Name=bar1
Comment=Simple mem bar
X-AW-Value=mem
X-AW-ActiveColor="0,0,0,255"
X-AW-InactiveColor="255,255,255,255"
X-AW-Type=Horizontal
X-AW-Direction=LeftToRight
X-AW-Height=25
X-AW-Width=100
X-AW-ApiVersion=1

View File

@ -0,0 +1,12 @@
[Desktop Entry]
Encoding=UTF-8
Name=bar2
Comment=Simple swap bar
X-AW-Value=swap
X-AW-ActiveColor="0,0,0,255"
X-AW-InactiveColor="255,255,255,255"
X-AW-Type=Horizontal
X-AW-Direction=LeftToRight
X-AW-Height=25
X-AW-Width=100
X-AW-ApiVersion=1

View File

@ -0,0 +1,25 @@
[Desktop Entry]
Encoding=UTF-8
# name should be barN and uniq
Name=bar100500
Comment=Template for the AW bars
# value to show. Supported types are
# cpu, cpu[0-9], mem, swap, bat
X-AW-Value=cpu
# active color, RGBA
# you should use double quotes
X-AW-ActiveColor="0,0,0,255"
# inactive color, RGBA
# you should use double quotes
X-AW-InactiveColor="255,255,255,255"
# bar type. Supported types are
# Horizontal, Vertical, Circle
X-AW-Type=Horizontal
# direction. LeftToRight or RightToLeft
X-AW-Direction=LeftToRight
# height in pixels
X-AW-Height=25
# width in pixels
X-AW-Width=100
# API version
X-AW-ApiVersion=1

View File

@ -0,0 +1,523 @@
/***************************************************************************
* This file is part of awesome-widgets *
* *
* awesome-widgets 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. *
* *
* awesome-widgets 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 awesome-widgets. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
#include "graphicalitem.h"
#include "ui_graphicalitem.h"
#include <QBuffer>
#include <QColorDialog>
#include <QDebug>
#include <QDir>
#include <QGraphicsEllipseItem>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QSettings>
#include <pdebug/pdebug.h>
#include "version.h"
GraphicalItem::GraphicalItem(QWidget *parent, const QString desktopName, const QStringList directories, const bool debugCmd)
: QDialog(parent),
m_fileName(desktopName),
m_dirs(directories),
debug(debugCmd),
ui(new Ui::GraphicalItem)
{
readConfiguration();
ui->setupUi(this);
connect(ui->pushButton_activeColor, SIGNAL(clicked()), this, SLOT(changeColor()));
connect(ui->pushButton_inactiveColor, SIGNAL(clicked()), this, SLOT(changeColor()));
}
GraphicalItem::~GraphicalItem()
{
if (debug) qDebug() << PDEBUG;
delete ui;
}
QString GraphicalItem::image(const float value)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Value" << value;
if (m_bar == QString("none")) return QString("");
QColor active = stringToColor(m_activeColor);
QColor inactive = stringToColor(m_inactiveColor);
float percent = value / 100.0;
int scale[2] = {1, 1};
QPen pen = QPen();
QGraphicsScene *scene = new QGraphicsScene();
scene->setBackgroundBrush(QBrush(Qt::NoBrush));
QGraphicsView *view = new QGraphicsView(scene);
view->setStyleSheet(QString("background: transparent"));
view->setContentsMargins(0, 0, 0, 0);
view->setFrameShape(QFrame::NoFrame);
view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->resize(m_width + 5.0, m_height + 5.0);
// paint
switch(m_type) {
case Vertical:
pen.setWidth(m_width);
// inactive
pen.setColor(inactive);
scene->addLine(0.5 * m_width, -0.5 * m_width, 0.5 * m_width,
(1.0 - percent) * m_height - 0.5 * m_width, pen);
// active
pen.setColor(active);
scene->addLine(0.5 * m_width, (1.0 - percent) * m_height + 0.5 * m_width,
0.5 * m_width, m_height + 0.5 * m_width, pen);
// scale
scale[1] = -2 * static_cast<int>(m_direction) + 1;
break;
case Circle:
QGraphicsEllipseItem *circle;
pen.setWidth(1.0);
// inactive
pen.setColor(inactive);
circle = scene->addEllipse(0.0, 0.0, m_width, m_height, pen, QBrush(inactive, Qt::SolidPattern));
circle->setSpanAngle(- (1.0 - percent) * 360.0 * 16.0);
circle->setStartAngle(90.0 * 16.0 - percent * 360.0 * 16.0);
// active
pen.setColor(active);
circle = scene->addEllipse(0.0, 0.0, m_width, m_height, pen, QBrush(active, Qt::SolidPattern));
circle->setSpanAngle(- percent * 360.0 * 16.0);
circle->setStartAngle(90.0 * 16.0);
// scale
scale[0] = -2 * static_cast<int>(m_direction) + 1;
break;
default:
pen.setWidth(m_height);
// inactive
pen.setColor(inactive);
scene->addLine(percent * m_width + 0.5 * m_height, 0.5 * m_height,
m_width + 0.5 * m_height, 0.5 * m_height, pen);
// active
pen.setColor(active);
scene->addLine(-0.5 * m_height, 0.5 * m_height,
percent * m_width - 0.5 * m_height, 0.5 * m_height, pen);
// scale
scale[0] = -2 * static_cast<int>(m_direction) + 1;
break;
}
// convert
QPixmap pixmap = QPixmap::grabWidget(view).transformed(QTransform().scale(scale[0], scale[1]));
QByteArray byteArray;
QBuffer buffer(&byteArray);
pixmap.save(&buffer, "PNG");
QString url = QString("<img src=\"data:image/png;base64,%1\"/>").arg(QString(byteArray.toBase64()));
delete view;
delete scene;
return url;
}
QString GraphicalItem::fileName()
{
if (debug) qDebug() << PDEBUG;
return m_fileName;
}
int GraphicalItem::apiVersion()
{
if (debug) qDebug() << PDEBUG;
return m_apiVersion;
}
QString GraphicalItem::name()
{
if (debug) qDebug() << PDEBUG;
return m_name;
}
QString GraphicalItem::comment()
{
if (debug) qDebug() << PDEBUG;
return m_comment;
}
QString GraphicalItem::bar()
{
if (debug) qDebug() << PDEBUG;
return m_bar;
}
QString GraphicalItem::activeColor()
{
if (debug) qDebug() << PDEBUG;
return m_activeColor;
}
QString GraphicalItem::inactiveColor()
{
if (debug) qDebug() << PDEBUG;
return m_inactiveColor;
}
GraphicalItem::Type GraphicalItem::type()
{
if (debug) qDebug() << PDEBUG;
return m_type;
}
QString GraphicalItem::strType()
{
if (debug) qDebug() << PDEBUG;
QString value;
switch(m_type) {
case Vertical:
value = QString("Vertical");
break;
case Circle:
value = QString("Circle");
break;
default:
value = QString("Horizontal");
break;
}
return value;
}
GraphicalItem::Direction GraphicalItem::direction()
{
if (debug) qDebug() << PDEBUG;
return m_direction;
}
QString GraphicalItem::strDirection()
{
if (debug) qDebug() << PDEBUG;
QString value;
switch (m_direction) {
case RightToLeft:
value = QString("RightToLeft");
break;
default:
value = QString("LeftToRight");
break;
}
return value;
}
int GraphicalItem::height()
{
if (debug) qDebug() << PDEBUG;
return m_height;
}
int GraphicalItem::width()
{
if (debug) qDebug() << PDEBUG;
return m_width;
}
void GraphicalItem::setApiVersion(const int _apiVersion)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Version" << _apiVersion;
m_apiVersion = _apiVersion;
}
void GraphicalItem::setName(const QString _name)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Name" << _name;
m_name = _name;
}
void GraphicalItem::setComment(const QString _comment)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Comment" << _comment;
m_comment = _comment;
}
void GraphicalItem::setBar(const QString _bar)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Bar" << _bar;
if ((!_bar.contains(QRegExp(QString("cpu(?!cl).*")))) &&
(!_bar.contains(QRegExp(QString("gpu")))) &&
(!_bar.contains(QRegExp(QString("mem")))) &&
(!_bar.contains(QRegExp(QString("swap")))) &&
(!_bar.contains(QRegExp(QString("hdd[0-9].*")))) &&
(!_bar.contains(QRegExp(QString("bat.*")))))
m_bar = QString("none");
else
m_bar = _bar;
}
void GraphicalItem::setActiveColor(const QString _color)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Color" << _color;
m_activeColor = _color;
}
void GraphicalItem::setInactiveColor(const QString _color)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Color" << _color;
m_inactiveColor = _color;
}
void GraphicalItem::setType(const Type _type)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Type" << _type;
m_type = _type;
}
void GraphicalItem::setStrType(const QString _type)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Type" << _type;
if (_type == QString("Vertical"))
setType(Vertical);
else if (_type == QString("Circle"))
setType(Circle);
else
setType(Horizontal);
}
void GraphicalItem::setDirection(const Direction _direction)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Direction" << _direction;
m_direction = _direction;
}
void GraphicalItem::setStrDirection(const QString _direction)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Direction" << _direction;
if (_direction == QString("RightToLeft"))
setDirection(RightToLeft);
else
setDirection(LeftToRight);
}
void GraphicalItem::setHeight(const int _height)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Height" << _height;
if (_height <= 0) return;
m_height = _height;
}
void GraphicalItem::setWidth(const int _width)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Width" << _width;
if (_width <= 0) return;
m_width = _width;
}
void GraphicalItem::readConfiguration()
{
if (debug) qDebug() << PDEBUG;
for (int i=m_dirs.count()-1; i>=0; i--) {
if (!QDir(m_dirs[i]).entryList(QDir::Files).contains(m_fileName)) continue;
QSettings settings(m_dirs[i] + QDir::separator() + m_fileName, QSettings::IniFormat);
settings.beginGroup(QString("Desktop Entry"));
setName(settings.value(QString("Name"), m_name).toString());
setComment(settings.value(QString("Comment"), m_comment).toString());
setApiVersion(settings.value(QString("X-AW-ApiVersion"), AWGIAPI).toInt());
setBar(settings.value(QString("X-AW-Value"), m_bar).toString());
setActiveColor(settings.value(QString("X-AW-ActiveColor"), m_activeColor).toString());
setInactiveColor(settings.value(QString("X-AW-InactiveColor"), m_inactiveColor).toString());
setStrType(settings.value(QString("X-AW-Type"), strType()).toString());
setStrDirection(settings.value(QString("X-AW-Direction"), strDirection()).toString());
setHeight(settings.value(QString("X-AW-Height"), m_height).toInt());
setWidth(settings.value(QString("X-AW-Width"), m_width).toInt());
settings.endGroup();
}
}
int GraphicalItem::showConfiguration(const QStringList tags)
{
if (debug) qDebug() << PDEBUG;
ui->label_nameValue->setText(m_name);
ui->lineEdit_comment->setText(m_comment);
ui->comboBox_value->addItems(tags);
ui->comboBox_value->addItem(m_bar);
ui->comboBox_value->setCurrentIndex(ui->comboBox_value->count() - 1);
ui->pushButton_activeColor->setText(m_activeColor);
ui->pushButton_inactiveColor->setText(m_inactiveColor);
ui->comboBox_type->setCurrentIndex(static_cast<int>(m_type));
ui->comboBox_direction->setCurrentIndex(static_cast<int>(m_direction));
ui->spinBox_height->setValue(m_height);
ui->spinBox_width->setValue(m_width);
int ret = exec();
if (ret != 1) return ret;
setName(ui->label_nameValue->text());
setComment(ui->lineEdit_comment->text());
setApiVersion(AWGIAPI);
setBar(ui->comboBox_value->currentText());
setActiveColor(ui->pushButton_activeColor->text().remove(QChar('&')));
setInactiveColor(ui->pushButton_inactiveColor->text().remove(QChar('&')));
setStrType(ui->comboBox_type->currentText());
setStrDirection(ui->comboBox_direction->currentText());
setHeight(ui->spinBox_height->value());
setWidth(ui->spinBox_width->value());
writeConfiguration();
return ret;
}
int GraphicalItem::tryDelete()
{
if (debug) qDebug() << PDEBUG;
for (int i=0; i<m_dirs.count(); i++)
if (debug) qDebug() << PDEBUG << ":" << "Remove file" << m_dirs[i] + QDir::separator() + m_fileName <<
QFile::remove(m_dirs[i] + QDir::separator() + m_fileName);
// check if exists
for (int i=0; i<m_dirs.count(); i++)
if (QFile::exists(m_dirs[i] + QDir::separator() + m_fileName)) return 0;
return 1;
}
void GraphicalItem::writeConfiguration()
{
if (debug) qDebug() << PDEBUG;
QSettings settings(m_dirs[0] + QDir::separator() + m_fileName, QSettings::IniFormat);
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << settings.fileName();
settings.beginGroup(QString("Desktop Entry"));
settings.setValue(QString("Encoding"), QString("UTF-8"));
settings.setValue(QString("Name"), m_name);
settings.setValue(QString("Comment"), m_comment);
settings.setValue(QString("X-AW-ApiVersion"), m_apiVersion);
settings.setValue(QString("X-AW-Value"), m_bar);
settings.setValue(QString("X-AW-ActiveColor"), m_activeColor);
settings.setValue(QString("X-AW-InactiveColor"), m_inactiveColor);
settings.setValue(QString("X-AW-Type"), strType());
settings.setValue(QString("X-AW-Direction"), strDirection());
settings.setValue(QString("X-AW-Height"), m_height);
settings.setValue(QString("X-AW-Width"), m_width);
settings.endGroup();
settings.sync();
}
void GraphicalItem::changeColor()
{
if (debug) qDebug() << PDEBUG;
QColor color = stringToColor(((QPushButton *)sender())->text());
QColor newColor = QColorDialog::getColor(color, 0, i18n("Select color"),
QColorDialog::ShowAlphaChannel);
if (!newColor.isValid()) return;
QStringList colorText;
colorText.append(QString("%1").arg(newColor.red()));
colorText.append(QString("%1").arg(newColor.green()));
colorText.append(QString("%1").arg(newColor.blue()));
colorText.append(QString("%1").arg(newColor.alpha()));
dynamic_cast<QPushButton *>(sender())->setText(colorText.join(QChar(',')));
}
QColor GraphicalItem::stringToColor(const QString _color)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Color" << _color;
QColor qcolor;
QStringList listColor = _color.split(QChar(','));
while (listColor.count() < 4)
listColor.append(QString("0"));
qcolor.setRed(listColor[0].toInt());
qcolor.setGreen(listColor[1].toInt());
qcolor.setBlue(listColor[2].toInt());
qcolor.setAlpha(listColor[3].toInt());
return qcolor;
}

View File

@ -0,0 +1,115 @@
/***************************************************************************
* This file is part of awesome-widgets *
* *
* awesome-widgets 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. *
* *
* awesome-widgets 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 awesome-widgets. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
#ifndef GRAPHICALITEM_H
#define GRAPHICALITEM_H
#include <QColor>
#include <QDialog>
namespace Ui {
class GraphicalItem;
}
class GraphicalItem : public QDialog
{
Q_OBJECT
Q_PROPERTY(int apiVersion READ apiVersion WRITE setApiVersion)
Q_PROPERTY(QString name READ name WRITE setName)
Q_PROPERTY(QString comment READ comment WRITE setComment)
Q_PROPERTY(QString bar READ bar WRITE setBar)
Q_PROPERTY(QString activeColor READ activeColor WRITE setActiveColor)
Q_PROPERTY(QString inactiveColor READ inactiveColor WRITE setInactiveColor)
Q_PROPERTY(Type type READ type WRITE setType)
Q_PROPERTY(Direction direction READ direction WRITE setDirection)
Q_PROPERTY(int height READ height WRITE setHeight)
Q_PROPERTY(int width READ width WRITE setWidth)
public:
enum Direction {
LeftToRight = 0,
RightToLeft
};
enum Type {
Horizontal = 0,
Vertical,
Circle
};
explicit GraphicalItem(QWidget *parent = 0, const QString desktopName = QString(),
const QStringList directories = QStringList(), const bool debugCmd = false);
~GraphicalItem();
QString fileName();
QString image(const float value);
// get methods
int apiVersion();
QString name();
QString comment();
QString bar();
QString activeColor();
QString inactiveColor();
Type type();
QString strType();
Direction direction();
QString strDirection();
int height();
int width();
// set methods
void setApiVersion(const int _apiVersion = 0);
void setName(const QString _name = QString("none"));
void setComment(const QString _comment = QString("empty"));
void setBar(const QString _bar = QString("cpu"));
void setActiveColor(const QString _color = QString("0,0,0,130"));
void setInactiveColor(const QString _color = QString("255,255,255,130"));
void setType(const Type _type = Horizontal);
void setStrType(const QString _type = QString("Horizontal"));
void setDirection(const Direction _direction = LeftToRight);
void setStrDirection(const QString _direction = QString("LeftToRight"));
void setHeight(const int _height = 100);
void setWidth(const int _width = 100);
public slots:
void readConfiguration();
int showConfiguration(const QStringList tags = QStringList());
int tryDelete();
void writeConfiguration();
private slots:
void changeColor();
private:
QColor stringToColor(const QString _color);
QString m_fileName;
QStringList m_dirs;
bool debug;
Ui::GraphicalItem *ui;
// properties
int m_apiVersion = 0;
QString m_name = QString("none");
QString m_comment = QString("empty");
QString m_bar = QString("cpu");
QString m_activeColor = QString("0,0,0,130");
QString m_inactiveColor = QString("255,255,255,130");
Type m_type = Horizontal;
Direction m_direction = LeftToRight;
int m_height = 100;
int m_width = 100;
};
#endif /* GRAPHICALITEM_H */

View File

@ -0,0 +1,293 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>GraphicalItem</class>
<widget class="QDialog" name="GraphicalItem">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>416</width>
<height>325</height>
</rect>
</property>
<property name="windowTitle">
<string>Configuration</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="layout_name">
<item>
<widget class="QLabel" name="label_name">
<property name="text">
<string>Name</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_nameValue">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_comment">
<item>
<widget class="QLabel" name="label_comment">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Comment</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_comment"/>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_value">
<item>
<widget class="QLabel" name="label_value">
<property name="text">
<string>Value</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_value">
<property name="editable">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_activeColor">
<item>
<widget class="QLabel" name="label_activeColor">
<property name="text">
<string>Active color</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_activeColor">
<property name="text">
<string notr="true"/>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_inactiveColor">
<item>
<widget class="QLabel" name="label_inactiveColor">
<property name="text">
<string>Inactive color</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_inactiveColor">
<property name="text">
<string notr="true"/>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_type">
<item>
<widget class="QLabel" name="label_type">
<property name="text">
<string>Type</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_type">
<item>
<property name="text">
<string notr="true">Horizontal</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Vertical</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Circle</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_direction">
<item>
<widget class="QLabel" name="label_direction">
<property name="text">
<string>Direction</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_direction">
<item>
<property name="text">
<string notr="true">LeftToRight</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">RightToLeft</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_height">
<item>
<widget class="QLabel" name="label_height">
<property name="text">
<string>Height</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_height">
<property name="maximum">
<number>2000</number>
</property>
<property name="singleStep">
<number>25</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_width">
<item>
<widget class="QLabel" name="label_width">
<property name="text">
<string>Width</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_width">
<property name="maximum">
<number>2000</number>
</property>
<property name="singleStep">
<number>25</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>GraphicalItem</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>GraphicalItem</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -7,3 +7,8 @@ Comment=Awesome widget information
Name=System information
Comment=System information
Action=Popup
[Event/tag]
Name=Tag information
Comment=Tag information
Action=Popup

View File

@ -1,25 +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_awesome-widget.mo)
list (APPEND _gmoFiles ${_gmoFile})
endforeach (_current_PO_FILE)
add_custom_target (pofiles ALL DEPENDS ${_gmoFiles})

View File

@ -1,684 +0,0 @@
# Copyright (C) 2014
# This file is distributed under the same license as the PyTextMonitor package.
#
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2014-09-21 20:18+0400\n"
"PO-Revision-Date: 2014-09-21 20:19+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: English <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"
#: awesome-widget.cpp:78
msgid "Run ksysguard"
msgstr "Run ksysguard"
#: awesome-widget.cpp:81
msgid "Show README"
msgstr "Show README"
#: awesome-widget.cpp:84
msgid "Update text"
msgstr "Update text"
#: configuration.cpp:362 po/rc.cpp:151 rc.cpp:151
msgid "Custom command"
msgstr "Custom command"
#: configuration.cpp:392 po/rc.cpp:141 rc.cpp:141
msgid "Package manager"
msgstr "Package manager"
#: configuration.cpp:393 po/rc.cpp:144 rc.cpp:144
msgid "Null lines"
msgstr "Null lines"
#: configuration.cpp:405
msgid "Widget"
msgstr "Widget"
#: configuration.cpp:406
msgid "Advanced"
msgstr "Advanced"
#: configuration.cpp:407
msgid "Tooltip"
msgstr "Tooltip"
#: configuration.cpp:408
msgid "Appearance"
msgstr "Appearance"
#: configuration.cpp:409
msgid "DataEngine"
msgstr "DataEngine"
#: configuration.cpp:697 configuration.cpp:711
msgid "Remove"
msgstr "Remove"
#: configuration.cpp:766
msgid "Select font"
msgstr "Select font"
#: po/rc.cpp:3 rc.cpp:3
msgid "Enable background"
msgstr "Enable background"
#: po/rc.cpp:6 rc.cpp:6
msgid "Enable popup on mouse click"
msgstr "Enable popup on mouse click"
#: po/rc.cpp:9 rc.cpp:9
msgid "Custom time format"
msgstr "Custom time format"
#: po/rc.cpp:12 rc.cpp:12
msgid ""
"$dddd - long weekday\n"
"$ddd - short weekday\n"
"$dd - day\n"
"$d - day w\\o zero\n"
"$MMMM - long month\n"
"$MMM - short month\n"
"$MM - month\n"
"$M - month w\\o zero\n"
"$yyyy - year\n"
"$yy - short year\n"
"$hh - hours (24 only)\n"
"$h - hours w\\o zero (24 only)\n"
"$mm - minutes\n"
"$m - minutes w\\o zero\n"
"$ss - seconds\n"
"$s - seconds w\\o zero"
msgstr ""
"$dddd - long weekday\n"
"$ddd - short weekday\n"
"$dd - day\n"
"$d - day w\\o zero\n"
"$MMMM - long month\n"
"$MMM - short month\n"
"$MM - month\n"
"$M - month w\\o zero\n"
"$yyyy - year\n"
"$yy - short year\n"
"$hh - hours (24 only)\n"
"$h - hours w\\o zero (24 only)\n"
"$mm - minutes\n"
"$m - minutes w\\o zero\n"
"$ss - seconds\n"
"$s - seconds w\\o zero"
#: po/rc.cpp:30 rc.cpp:30
msgid "Custom uptime format"
msgstr "Custom uptime format"
#: po/rc.cpp:33 rc.cpp:33
msgid ""
"$dd - uptime days\n"
"$d - uptime days without zero\n"
"$hh - uptime hours\n"
"$h - uptime hours without zero\n"
"$mm - uptime minutes\n"
"$m - uptime minutes without zero"
msgstr ""
"$dd - uptime days\n"
"$d - uptime days without zero\n"
"$hh - uptime hours\n"
"$h - uptime hours without zero\n"
"$mm - uptime minutes\n"
"$m - uptime minutes without zero"
#: po/rc.cpp:41 rc.cpp:41
msgid "Temperature units"
msgstr "Temperature units"
#: po/rc.cpp:44 rc.cpp:44
msgid "Temperature devices"
msgstr "Temperature devices"
#: po/rc.cpp:47 po/rc.cpp:53 po/rc.cpp:59 po/rc.cpp:65 po/rc.cpp:71 rc.cpp:47
#: rc.cpp:53 rc.cpp:59 rc.cpp:65 rc.cpp:71
msgid "Editable"
msgstr "Editable"
#: po/rc.cpp:50 rc.cpp:50
msgid "Fan devices"
msgstr "Fan devices"
#: po/rc.cpp:56 rc.cpp:56
msgid "Mount points"
msgstr "Mount points"
#: po/rc.cpp:62 rc.cpp:62
msgid "HDD devices (speed)"
msgstr "HDD (speed)"
#: po/rc.cpp:68 rc.cpp:68
msgid "HDD devices (temp)"
msgstr "HDD (temp)"
#: po/rc.cpp:74 rc.cpp:74
msgid "Disable auto select device and set specified device"
msgstr "Disable auto select device and set specified device"
#: po/rc.cpp:77 rc.cpp:77
msgid "Set network device"
msgstr "Set network device"
#: po/rc.cpp:80 rc.cpp:80
msgid "AC online tag"
msgstr "AC online tag"
#: po/rc.cpp:83 rc.cpp:83
msgid "Line, which returns when AC is online"
msgstr "Line, which returns when AC is online"
#: po/rc.cpp:86 rc.cpp:86
msgid "AC offline tag"
msgstr "AC offline tag"
#: po/rc.cpp:89 rc.cpp:89
msgid "Line, which returns when AC is offline"
msgstr "Line, which returns when AC is offline"
#: po/rc.cpp:92 rc.cpp:92
msgid "Time interval"
msgstr "Time interval"
#: po/rc.cpp:95 po/rc.cpp:196 rc.cpp:95 rc.cpp:196
msgid "Font"
msgstr "Font"
#: po/rc.cpp:98 rc.cpp:98
msgid "Font size"
msgstr "Font size"
#: po/rc.cpp:101 rc.cpp:101
msgid "Font color"
msgstr "Font color"
#: po/rc.cpp:104 rc.cpp:104
msgid "Font style"
msgstr "Font style"
#: po/rc.cpp:107 rc.cpp:107
msgid "Font weight"
msgstr "Font weight"
#: po/rc.cpp:110 rc.cpp:110
msgid "HDD"
msgstr "HDD"
#: po/rc.cpp:113 rc.cpp:113
msgid "MPD port"
msgstr "MPD port"
#: po/rc.cpp:116 rc.cpp:116
msgid "GPU device"
msgstr "GPU device"
#: po/rc.cpp:119 rc.cpp:119
msgid "hddtemp cmd"
msgstr "hddtemp cmd"
#: po/rc.cpp:122 rc.cpp:122
msgid "Music player"
msgstr "Music player"
#: po/rc.cpp:125 rc.cpp:125
msgid "MPD address"
msgstr "MPD address"
#: po/rc.cpp:128 rc.cpp:128
msgid "Desktop check cmd"
msgstr "Desktop check cmd"
#: po/rc.cpp:131 rc.cpp:131
msgid "<b>NOTE:</b> Player DBus interface should be an active"
msgstr "<b>NOTE:</b> Player DBus interface should be an active"
#: po/rc.cpp:134 rc.cpp:134
msgid "MPRIS player name"
msgstr "MPRIS player name"
#: po/rc.cpp:137 po/rc.cpp:147 rc.cpp:137 rc.cpp:147
msgid ""
"Editable\n"
"del - remove item"
msgstr ""
"Editable\n"
"del - remove item"
#: po/rc.cpp:154 rc.cpp:154
msgid "ACPI path"
msgstr "ACPI path"
#: po/rc.cpp:157 rc.cpp:157
msgid "\"/sys/class/power_supply/\" by default"
msgstr "\"/sys/class/power_supply/\" by default"
#: po/rc.cpp:160 rc.cpp:160
msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked."
msgstr ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked."
#: po/rc.cpp:163 rc.cpp:163
msgid "Number of values for tooltips"
msgstr "Number of values for tooltips"
#: po/rc.cpp:166 rc.cpp:166
msgid "Background"
msgstr "Background"
#: po/rc.cpp:169 rc.cpp:169
msgid "CPU color"
msgstr "CPU color"
#: po/rc.cpp:172 rc.cpp:172
msgid "CPU clock color"
msgstr "CPU clock color"
#: po/rc.cpp:175 rc.cpp:175
msgid "Memory color"
msgstr "Memory color"
#: po/rc.cpp:178 rc.cpp:178
msgid "Swap color"
msgstr "Swap color"
#: po/rc.cpp:181 rc.cpp:181
msgid "Download speed color"
msgstr "Download speed color"
#: po/rc.cpp:184 rc.cpp:184
msgid "Upload speed color"
msgstr "Upload speed color"
#: po/rc.cpp:187 rc.cpp:187
msgid "Battery active color"
msgstr "Battery active color"
#: po/rc.cpp:190 rc.cpp:190
msgid "Battery inactive color"
msgstr "Battery inactive color"
#: po/rc.cpp:193 rc.cpp:193
msgid ""
"Detailed information may be found on <a href=\"http://arcanis.name/projects/"
"awesome-widgets/\">project homepage</a>"
msgstr ""
"Detailed information may be found on <a href=\"http://arcanis.name/projects/"
"awesome-widgets/\">project homepage</a>"
#: po/rc.cpp:199 rc.cpp:199
msgid "Ctrl+B"
msgstr "Ctrl+B"
#: po/rc.cpp:202 rc.cpp:202
msgid "Ctrl+I"
msgstr "Ctrl+I"
#: po/rc.cpp:205 rc.cpp:205
msgid "Ctrl+U"
msgstr "Ctrl+U"
#: po/rc.cpp:208 rc.cpp:208
msgid "Add"
msgstr "Add"
#: po/rc.cpp:209 rc.cpp:209
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Evgeniy Alekseev"
#: po/rc.cpp:210 rc.cpp:210
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "esalexeev@gmail.com"
#~ msgid "Battery device"
#~ msgstr "Battery device"
#~ msgid "\"/sys/class/power_supply/BAT0/capacity\" by default"
#~ msgstr "\"/sys/class/power_supply/BAT0/capacity\" by default"
#~ msgid "Vertical layout"
#~ msgstr "Vertical layout"
#~ msgid "Add stretch to left/top of the layout"
#~ msgstr "Add stretch to left/top of the layout"
#~ msgid "Add stretch to right/bottom of the layout"
#~ msgstr "Add stretch to right/bottom of the layout"
#~ msgid "Advanced configuration"
#~ msgstr "Advanced configuration"
#~ msgid "Appearance configuration"
#~ msgstr "Appearance configuration"
#~ msgid "DE Configuration"
#~ msgstr "DE Configuration"
#~ msgid "Tooltip configuration"
#~ msgstr "Tooltip configuration"
#~ msgid "Widget configuration"
#~ msgstr "Widget configuration"
#~ msgid "Form"
#~ msgstr "Form"
#~ msgid "Network directory"
#~ msgstr "Network directory"
#~ msgid "\"/sys/class/net\" by default"
#~ msgstr "\"/sys/class/net\" by default"
#~ msgid "Custom command to run"
#~ msgstr "Custom command to run"
#~ msgid "Time"
#~ msgstr "Time"
#~ msgid ""
#~ "$time - time in default format\n"
#~ "$isotime - time in ISO format\n"
#~ "$shorttime - time in short format\n"
#~ "$longtime - time in log format\n"
#~ "$custom - custom time format"
#~ msgstr ""
#~ "$time - time in default format\n"
#~ "$isotime - time in ISO format\n"
#~ "$shorttime - time in short format\n"
#~ "$longtime - time in log format\n"
#~ "$custom - custom time format"
#~ msgid "Uptime"
#~ msgstr "Uptime"
#~ msgid ""
#~ "$uptime - system uptime\n"
#~ "$custom - custom format"
#~ msgstr ""
#~ "$uptime - system uptime\n"
#~ "$custom - custom format"
#~ msgid "CPU"
#~ msgstr "CPU"
#~ msgid ""
#~ "$cpu - total load CPU, %\n"
#~ "$cpu0 - load CPU for core 0, %\n"
#~ "...\n"
#~ "$cpu9 - load CPU for core 9, %\n"
#~ "...\n"
#~ "$cpuN - load CPU for core N, %"
#~ msgstr ""
#~ "$cpu - total load CPU, %\n"
#~ "$cpu0 - load CPU for core 0, %\n"
#~ "...\n"
#~ "$cpu9 - load CPU for core 9, %\n"
#~ "...\n"
#~ "$cpuN - load CPU for core N, %"
#~ msgid "CPU Clock"
#~ msgstr "CPU Clock"
#~ msgid ""
#~ "$cpucl - average CPU clock, MHz\n"
#~ "$cpucl0 - CPU clock for core 0, MHz\n"
#~ "...\n"
#~ "$cpucl9 - CPU clock for core 9, MHz\n"
#~ "...\n"
#~ "$cpuclN - CPU clock for core N, MHz"
#~ msgstr ""
#~ "$cpucl - average CPU clock, MHz\n"
#~ "$cpucl0 - CPU clock for core 0, MHz\n"
#~ "...\n"
#~ "$cpucl9 - CPU clock for core 9, MHz\n"
#~ "...\n"
#~ "$cpuclN - CPU clock for core N, MHz"
#~ msgid "Temperature"
#~ msgstr "Temperature"
#~ msgid "$tempN - physical temperature on device N (from 0). Example: $temp0"
#~ msgstr "$tempN - physical temperature on device N (from 0). Example: $temp0"
#~ msgid "GPU"
#~ msgstr "GPU"
#~ msgid "$gpu - gpu usage, %"
#~ msgstr "$gpu - gpu usage, %"
#~ msgid "GPU Temp"
#~ msgstr "GPU Temp"
#~ msgid "$gputemp - physical temperature on GPU"
#~ msgstr "$gputemp - physical temperature on GPU"
#~ msgid "Memory"
#~ msgstr "Memory"
#~ msgid ""
#~ "$mem - RAM usage, %\n"
#~ "$memmb - RAM usage, MB\n"
#~ "$memgb - RAM usage, GB\n"
#~ "$memtotmb - total RAM, MB\n"
#~ "$memtotgb - total RAM, GB"
#~ msgstr ""
#~ "$mem - RAM usage, %\n"
#~ "$memmb - RAM usage, MB\n"
#~ "$memgb - RAM usage, GB\n"
#~ "$memtotmb - total RAM, MB\n"
#~ "$memtotgb - total RAM, GB"
#~ msgid "Swap"
#~ msgstr "Swap"
#~ msgid ""
#~ "$swap - swap usage, %\n"
#~ "$swapmb - swap usage, MB\n"
#~ "$swapgb - swap usage, GB\n"
#~ "$swaptotmb - total swap, MB\n"
#~ "$swaptotgb - total swap, GB"
#~ msgstr ""
#~ "$swap - swap usage, %\n"
#~ "$swapmb - swap usage, MB\n"
#~ "$swapgb - swap usage, GB\n"
#~ "$swaptotmb - total swap, MB\n"
#~ "$swaptotgb - total swap, GB"
#~ msgid ""
#~ "$hddN - usage for mount point N (from 0), %. Example: $hdd0\n"
#~ "$hddmbN - usage for mount point N (from 0), MB. Example: $hddmb0\n"
#~ "$hddgbN - usage for mount point N (from 0), GB. Example: $hddgb0\n"
#~ "$hddtotmbN - total size of mount point N (from 0), MB. Example: "
#~ "$hddtotmb0\n"
#~ "$hddtotgbN - total size of mount point N (from 0), GB. Example: $hddtotgb0"
#~ msgstr ""
#~ "$hddN - usage for mount point N (from 0), %. Example: $hdd0\n"
#~ "$hddmbN - usage for mount point N (from 0), MB. Example: $hddmb0\n"
#~ "$hddgbN - usage for mount point N (from 0), GB. Example: $hddgb0\n"
#~ "$hddtotmbN - total size of mount point N (from 0), MB. Example: "
#~ "$hddtotmb0\n"
#~ "$hddtotgbN - total size of mount point N (from 0), GB. Example: $hddtotgb0"
#~ msgid "HDD speed"
#~ msgstr "HDD speed"
#~ msgid ""
#~ "$hddrN - read speed HDD N (from 0), KB/s. Example: $hddr0\n"
#~ "$hddwN - write speed HDD N (from 0), KB/s. Example: $hddw0"
#~ msgstr ""
#~ "$hddrN - read speed HDD N (from 0), KB/s. Example: $hddr0\n"
#~ "$hddwN - write speed HDD N (from 0), KB/s. Example: $hddw0"
#~ msgid "HDD temp"
#~ msgstr "HDD temp"
#~ msgid ""
#~ "$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0"
#~ msgstr ""
#~ "$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0"
#~ msgid "Network"
#~ msgstr "Network"
#~ msgid ""
#~ "$down - download speed, KB/s\n"
#~ "$up - upload speed, KB/s\n"
#~ "$netdev - current network device"
#~ msgstr ""
#~ "$down - download speed, KB/s\n"
#~ "$up - upload speed, KB/s\n"
#~ "$netdev - current network device"
#~ msgid "Battery"
#~ msgstr "Battery"
#~ msgid ""
#~ "$bat - battery charge, %\n"
#~ "$ac - AC status"
#~ msgstr ""
#~ "$bat - battery charge, %\n"
#~ "$ac - AC status"
#~ msgid ""
#~ "$album - song album\n"
#~ "$artist - song artist\n"
#~ "$progress - song progress\n"
#~ "$time - song duration\n"
#~ "$title - song title"
#~ msgstr ""
#~ "$album - song album\n"
#~ "$artist - song artist\n"
#~ "$progress - song progress\n"
#~ "$time - song duration\n"
#~ "$title - song title"
#~ msgid "Processes"
#~ msgstr "Processes"
#~ msgid ""
#~ "$pscount - number of running processes\n"
#~ "$pstotal - total number of running processes\n"
#~ "$ps - list of running processes comma separated"
#~ msgstr ""
#~ "$pscount - number of running processes\n"
#~ "$pstotal - total number of running processes\n"
#~ "$ps - list of running processes comma separated"
#~ msgid ""
#~ "$pkgcountN - number of packages which are available for updates, command "
#~ "N. For example $pkgcount0"
#~ msgstr ""
#~ "$pkgcountN - number of packages which are available for updates, command "
#~ "N. For example $pkgcount0"
#~ msgid "Custom"
#~ msgstr "Custom"
#~ msgid ""
#~ "$customN - get output from custom command N (from N). Example `$custom0`"
#~ msgstr ""
#~ "$customN - get output from custom command N (from N). Example `$custom0`"
#~ msgid "Current desktop"
#~ msgstr "Current desktop"
#~ msgid ""
#~ "$name - desktop name\n"
#~ "$number - desktop number\n"
#~ "$total - total number of desktops"
#~ msgstr ""
#~ "$name - desktop name\n"
#~ "$number - desktop number\n"
#~ "$total - total number of desktops"
#~ msgid "Widget settings"
#~ msgstr "Widget settings"
#~ msgid "pacman -Qu"
#~ msgstr "pacman -Qu"
#~ msgid "apt-show-versions -u -b"
#~ msgstr "apt-show-versions -u -b"
#~ msgid "aptitude search '~U'"
#~ msgstr "aptitude search '~U'"
#~ msgid "yum list updates"
#~ msgstr "yum list updates"
#~ msgid "pkg_version -I -l '<'"
#~ msgstr "pkg_version -I -l '<'"
#~ msgid "urpmq --auto-select"
#~ msgstr "urpmq --auto-select"
#~ msgid "amarok"
#~ msgstr "amarok"
#~ msgid "mpd"
#~ msgstr "mpd"
#~ msgid "qmmp"
#~ msgstr "qmmp"
#~ msgid "auto"
#~ msgstr "auto"
#~ msgid "nvidia"
#~ msgstr "nvidia"
#~ msgid "ati"
#~ msgstr "ati"
#~ msgid "$hddN - usage for mount point N (from 0), %. Example: $hdd0"
#~ msgstr "$hddN - usage for mount point N (from 0), %. Example: $hdd0"
#~ msgid ""
#~ "$ds - uptime days\n"
#~ "$hs - uptime hours\n"
#~ "$ms - uptime minutes"
#~ msgstr ""
#~ "$ds - uptime days\n"
#~ "$hs - uptime hours\n"
#~ "$ms - uptime minutes"
#~ msgid ""
#~ "Command to run, example:\n"
#~ "wget -qO- http://ifconfig.me/ip - get external IP"
#~ msgstr ""
#~ "Command to run, example:\n"
#~ "wget -qO- http://ifconfig.me/ip - get external IP"
#~ msgid "@@/;@@ - mount point usage, %"
#~ msgstr "@@/;@@ - mount point usage, %"
#~ msgid "@@/dev/sda@@ - physical temperature on /dev/sda"
#~ msgstr "@@/dev/sda@@ - physical temperature on /dev/sda"
#~ msgid ""
#~ "$net - network speed, down/up, KB/s\n"
#~ "$netdev - current network device\n"
#~ "@@eth0@@ - disable auto select device and set specified device"
#~ msgstr ""
#~ "$net - network speed, down/up, KB/s\n"
#~ "$netdev - current network device\n"
#~ "@@eth0@@ - disable auto select device and set specified device"

View File

@ -1,619 +0,0 @@
# Copyright (C) 2014
# This file is distributed under the same license as the PyTextMonitor package.
#
# Ernesto Avilés Vzqz <whippiii@gmail.com>, 2014.
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2014-09-21 20:18+0400\n"
"PO-Revision-Date: 2014-09-05 11:18+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Spanish <kde-russian@lists.kde.ru>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 1.5\n"
#: awesome-widget.cpp:78
msgid "Run ksysguard"
msgstr "Ejecutar ksysguard"
#: awesome-widget.cpp:81
msgid "Show README"
msgstr "Mostrar el README"
#: awesome-widget.cpp:84
msgid "Update text"
msgstr "Actualizar texto"
#: configuration.cpp:362 po/rc.cpp:151 rc.cpp:151
msgid "Custom command"
msgstr "Comando personalizado"
#: configuration.cpp:392 po/rc.cpp:141 rc.cpp:141
msgid "Package manager"
msgstr "Gestor de paquetes"
#: configuration.cpp:393 po/rc.cpp:144 rc.cpp:144
msgid "Null lines"
msgstr "Número de líneas nulas"
#: configuration.cpp:405
msgid "Widget"
msgstr "Widget"
#: configuration.cpp:406
msgid "Advanced"
msgstr "Avanzado"
#: configuration.cpp:407
msgid "Tooltip"
msgstr "Ventana emergente"
#: configuration.cpp:408
msgid "Appearance"
msgstr "Apariencia"
#: configuration.cpp:409
msgid "DataEngine"
msgstr "DataEngine"
#: configuration.cpp:697 configuration.cpp:711
msgid "Remove"
msgstr "Eliminar"
#: configuration.cpp:766
msgid "Select font"
msgstr ""
#: po/rc.cpp:3 rc.cpp:3
msgid "Enable background"
msgstr ""
#: po/rc.cpp:6 rc.cpp:6
msgid "Enable popup on mouse click"
msgstr "Habilitar ventana emergente al hacer clic"
#: po/rc.cpp:9 rc.cpp:9
msgid "Custom time format"
msgstr "Formato personalizado para la hora"
#: po/rc.cpp:12 rc.cpp:12
msgid ""
"$dddd - long weekday\n"
"$ddd - short weekday\n"
"$dd - day\n"
"$d - day w\\o zero\n"
"$MMMM - long month\n"
"$MMM - short month\n"
"$MM - month\n"
"$M - month w\\o zero\n"
"$yyyy - year\n"
"$yy - short year\n"
"$hh - hours (24 only)\n"
"$h - hours w\\o zero (24 only)\n"
"$mm - minutes\n"
"$m - minutes w\\o zero\n"
"$ss - seconds\n"
"$s - seconds w\\o zero"
msgstr ""
"$dddd - día de la semana largo\n"
"$ddd - día de la semana corto\n"
"$dd - día\n"
"$d - día (sin ceros)\n"
"$MMMM - mes largo\n"
"$MMM - mes corto\n"
"$MM - mes\n"
"$M - mes (sin ceros)\n"
"$yyyy - año\n"
"$yy - año largo\n"
"$hh - horas (solo formato de 24 horas)\n"
"$h - horas (sin ceros, solo formato de 24 horas)\n"
"$mm - minutos\n"
"$m - minutos (sin ceros)\n"
"$ss - segundos\n"
"$s - segundos (sin ceros)"
#: po/rc.cpp:30 rc.cpp:30
msgid "Custom uptime format"
msgstr "Formato personalizado para el tiempo de actividad del sistema"
#: po/rc.cpp:33 rc.cpp:33
msgid ""
"$dd - uptime days\n"
"$d - uptime days without zero\n"
"$hh - uptime hours\n"
"$h - uptime hours without zero\n"
"$mm - uptime minutes\n"
"$m - uptime minutes without zero"
msgstr ""
"$dd - días\n"
"$d - días (sin ceros)\n"
"$hh - horas\n"
"$h - horas (sin ceros)\n"
"$mm - minutos\n"
"$m - minutos (sin ceros)"
#: po/rc.cpp:41 rc.cpp:41
msgid "Temperature units"
msgstr "Unidades de temperatura"
#: po/rc.cpp:44 rc.cpp:44
msgid "Temperature devices"
msgstr "Dispositivos de temperatura"
#: po/rc.cpp:47 po/rc.cpp:53 po/rc.cpp:59 po/rc.cpp:65 po/rc.cpp:71 rc.cpp:47
#: rc.cpp:53 rc.cpp:59 rc.cpp:65 rc.cpp:71
msgid "Editable"
msgstr "Editable"
#: po/rc.cpp:50 rc.cpp:50
#, fuzzy
msgid "Fan devices"
msgstr "Dispositivo de alimentación"
#: po/rc.cpp:56 rc.cpp:56
msgid "Mount points"
msgstr "Puntos de montaje"
#: po/rc.cpp:62 rc.cpp:62
msgid "HDD devices (speed)"
msgstr "Disco duro (velocidad)"
#: po/rc.cpp:68 rc.cpp:68
msgid "HDD devices (temp)"
msgstr "Disco duro (temperatura)"
#: po/rc.cpp:74 rc.cpp:74
msgid "Disable auto select device and set specified device"
msgstr "Inhabilitar selección automática del dispositivo y especificar uno"
#: po/rc.cpp:77 rc.cpp:77
msgid "Set network device"
msgstr "Establecer dispositivo de red"
#: po/rc.cpp:80 rc.cpp:80
msgid "AC online tag"
msgstr "Etiqueta para alimentación conectada"
#: po/rc.cpp:83 rc.cpp:83
msgid "Line, which returns when AC is online"
msgstr "Línea que devuelve si la alimentación está conectada"
#: po/rc.cpp:86 rc.cpp:86
msgid "AC offline tag"
msgstr "Etiqueta para la alimentación desconectada"
#: po/rc.cpp:89 rc.cpp:89
msgid "Line, which returns when AC is offline"
msgstr "Línea que devuelve si la alimentación está desconectada"
#: po/rc.cpp:92 rc.cpp:92
msgid "Time interval"
msgstr "Intervalo de tiempo"
#: po/rc.cpp:95 po/rc.cpp:196 rc.cpp:95 rc.cpp:196
msgid "Font"
msgstr "Fuente"
#: po/rc.cpp:98 rc.cpp:98
msgid "Font size"
msgstr "Tamaño de fuente"
#: po/rc.cpp:101 rc.cpp:101
msgid "Font color"
msgstr "Color de fuente"
#: po/rc.cpp:104 rc.cpp:104
msgid "Font style"
msgstr "Estilo de fuente"
#: po/rc.cpp:107 rc.cpp:107
msgid "Font weight"
msgstr "Grosor de la fuente"
#: po/rc.cpp:110 rc.cpp:110
msgid "HDD"
msgstr "Disco duro"
#: po/rc.cpp:113 rc.cpp:113
msgid "MPD port"
msgstr "Puerto de MPD"
#: po/rc.cpp:116 rc.cpp:116
msgid "GPU device"
msgstr "Dispositivo de GPU"
#: po/rc.cpp:119 rc.cpp:119
msgid "hddtemp cmd"
msgstr "Comando hddtemp"
#: po/rc.cpp:122 rc.cpp:122
msgid "Music player"
msgstr "Reproductor de música"
#: po/rc.cpp:125 rc.cpp:125
msgid "MPD address"
msgstr "Dirección de MPD"
#: po/rc.cpp:128 rc.cpp:128
msgid "Desktop check cmd"
msgstr ""
#: po/rc.cpp:131 rc.cpp:131
msgid "<b>NOTE:</b> Player DBus interface should be an active"
msgstr ""
#: po/rc.cpp:134 rc.cpp:134
msgid "MPRIS player name"
msgstr ""
#: po/rc.cpp:137 po/rc.cpp:147 rc.cpp:137 rc.cpp:147
msgid ""
"Editable\n"
"del - remove item"
msgstr ""
"Editable\n"
"del - eliminar elemento"
#: po/rc.cpp:154 rc.cpp:154
msgid "ACPI path"
msgstr ""
#: po/rc.cpp:157 rc.cpp:157
#, fuzzy
msgid "\"/sys/class/power_supply/\" by default"
msgstr "\"/sys/class/power_supply/AC/online\" por defecto"
#: po/rc.cpp:160 rc.cpp:160
msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked."
msgstr ""
"Las etiquetas para CPU, frecuencia de la CPU, memoria, swap y red soportan "
"ventanas emergentes. Para habilitarlas habilite la caja de seleccione la "
"casilla de verificación pertinente."
#: po/rc.cpp:163 rc.cpp:163
msgid "Number of values for tooltips"
msgstr "Número de valores para las ventanas emergentes"
#: po/rc.cpp:166 rc.cpp:166
msgid "Background"
msgstr ""
#: po/rc.cpp:169 rc.cpp:169
msgid "CPU color"
msgstr "Color de la CPU"
#: po/rc.cpp:172 rc.cpp:172
msgid "CPU clock color"
msgstr "Color de la frecuencia de la CPU"
#: po/rc.cpp:175 rc.cpp:175
msgid "Memory color"
msgstr "Color de la memoria"
#: po/rc.cpp:178 rc.cpp:178
msgid "Swap color"
msgstr "Color de la swap"
#: po/rc.cpp:181 rc.cpp:181
msgid "Download speed color"
msgstr "Color de la velocidad de recepción"
#: po/rc.cpp:184 rc.cpp:184
msgid "Upload speed color"
msgstr "Color de la velocidad de envío"
#: po/rc.cpp:187 rc.cpp:187
msgid "Battery active color"
msgstr ""
#: po/rc.cpp:190 rc.cpp:190
#, fuzzy
msgid "Battery inactive color"
msgstr "Dispositivo de batería"
#: po/rc.cpp:193 rc.cpp:193
msgid ""
"Detailed information may be found on <a href=\"http://arcanis.name/projects/"
"awesome-widgets/\">project homepage</a>"
msgstr ""
"Puede encontrar información detallada en el <a href=\"http://arcanis.name/"
"projects/awesome-widgets/\">sitio del proyecto</a>"
#: po/rc.cpp:199 rc.cpp:199
msgid "Ctrl+B"
msgstr "Ctrl+B"
#: po/rc.cpp:202 rc.cpp:202
msgid "Ctrl+I"
msgstr "Ctrl+I"
#: po/rc.cpp:205 rc.cpp:205
msgid "Ctrl+U"
msgstr "Ctrl+U"
#: po/rc.cpp:208 rc.cpp:208
msgid "Add"
msgstr "Añadir"
#: po/rc.cpp:209 rc.cpp:209
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Tu nombre"
#: po/rc.cpp:210 rc.cpp:210
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "Tus correos"
#~ msgid "Battery device"
#~ msgstr "Dispositivo de batería"
#~ msgid "\"/sys/class/power_supply/BAT0/capacity\" by default"
#~ msgstr "\"/sys/class/power_supply/BAT0/capacity\" por defecto"
#~ msgid "Vertical layout"
#~ msgstr "Orientación vertical"
#~ msgid "Add stretch to left/top of the layout"
#~ msgstr "Añadir extensión a la izquierda/superior de la distribución"
#~ msgid "Add stretch to right/bottom of the layout"
#~ msgstr "Añadir extensión a la derecha/inferior de la distribución"
#~ msgid "Form"
#~ msgstr "Formulario"
#~ msgid "Network directory"
#~ msgstr "Directorio de la red"
#~ msgid "\"/sys/class/net\" by default"
#~ msgstr "\"/sys/class/net\" por defecto"
#~ msgid "Custom command to run"
#~ msgstr "Comando personalizado para ejecutar"
#~ msgid "Time"
#~ msgstr "Hora"
#~ msgid ""
#~ "$time - time in default format\n"
#~ "$isotime - time in ISO format\n"
#~ "$shorttime - time in short format\n"
#~ "$longtime - time in log format\n"
#~ "$custom - custom time format"
#~ msgstr ""
#~ "$time - hora en el formato por defecto\n"
#~ "$isotime - hora en formato ISO\n"
#~ "$shorttime - hora en formato corto\n"
#~ "$longtime - hora en formato largo\n"
#~ "$custom - hora en formato personalizado"
#~ msgid "Uptime"
#~ msgstr "Tiempo de actividad"
#~ msgid ""
#~ "$uptime - system uptime\n"
#~ "$custom - custom format"
#~ msgstr ""
#~ "$uptime - tiempo de actividad del sistema\n"
#~ "$custom - formato personalizado"
#~ msgid "CPU"
#~ msgstr "CPU"
#~ msgid ""
#~ "$cpu - total load CPU, %\n"
#~ "$cpu0 - load CPU for core 0, %\n"
#~ "...\n"
#~ "$cpu9 - load CPU for core 9, %\n"
#~ "...\n"
#~ "$cpuN - load CPU for core N, %"
#~ msgstr ""
#~ "$cpu - carga total de la CPU, %\n"
#~ "$cpu0 - carga de la CPU para el núcleo 0, %\n"
#~ "...\n"
#~ "$cpu9 - carga de la CPU para el núcleo 9, %\n"
#~ "...\n"
#~ "$cpuN - carga de la CPU para el núcleo N, %"
#~ msgid "CPU Clock"
#~ msgstr "Frecuencia de la CPU"
#~ msgid ""
#~ "$cpucl - average CPU clock, MHz\n"
#~ "$cpucl0 - CPU clock for core 0, MHz\n"
#~ "...\n"
#~ "$cpucl9 - CPU clock for core 9, MHz\n"
#~ "...\n"
#~ "$cpuclN - CPU clock for core N, MHz"
#~ msgstr ""
#~ "$cpucl - frecuencia de la CPU promedio, MHz\n"
#~ "$cpucl0 - frecuencia de la CPU para el núcleo 0, MHz\n"
#~ "...\n"
#~ "$cpucl9 - frecuencia de la CPU para el núcleo 9, MHz\n"
#~ "...\n"
#~ "$cpuclN - frecuencia de la CPU para el núcleo N, MHz"
#~ msgid "Temperature"
#~ msgstr "Temperatura"
#~ msgid "$tempN - physical temperature on device N (from 0). Example: $temp0"
#~ msgstr ""
#~ "$tempN - temperatura física en el dispositivo N (a partir de 0). Ejemplo: "
#~ "$temp0"
#~ msgid "GPU"
#~ msgstr "GPU"
#~ msgid "$gpu - gpu usage, %"
#~ msgstr "$gpu - uso de la GPU, %"
#~ msgid "GPU Temp"
#~ msgstr "Temperatura de la GPU"
#~ msgid "$gputemp - physical temperature on GPU"
#~ msgstr "$gputemp - temperatura física de la GPU"
#~ msgid "Memory"
#~ msgstr "Memoria"
#~ msgid ""
#~ "$mem - RAM usage, %\n"
#~ "$memmb - RAM usage, MB\n"
#~ "$memgb - RAM usage, GB\n"
#~ "$memtotmb - total RAM, MB\n"
#~ "$memtotgb - total RAM, GB"
#~ msgstr ""
#~ "$mem - uso de la RAM, %\n"
#~ "$memmb - uso de la RAM, MB\n"
#~ "$memgb - uso de la RAM, GB\n"
#~ "$memtotmb - uso total de la RAM, MB\n"
#~ "$memtotgb - uso total de la RAM, GB"
#~ msgid "Swap"
#~ msgstr "Swap"
#~ msgid ""
#~ "$swap - swap usage, %\n"
#~ "$swapmb - swap usage, MB\n"
#~ "$swapgb - swap usage, GB\n"
#~ "$swaptotmb - total swap, MB\n"
#~ "$swaptotgb - total swap, GB"
#~ msgstr ""
#~ "$swap - uso de la swap, %\n"
#~ "$swapmb - uso de la swap, MB\n"
#~ "$swapgb - uso de la swap, GB\n"
#~ "$swaptotmb - uso total de la swap, MB\n"
#~ "$swaptotgb - uso total de la swap, GB"
#~ msgid ""
#~ "$hddN - usage for mount point N (from 0), %. Example: $hdd0\n"
#~ "$hddmbN - usage for mount point N (from 0), MB. Example: $hddmb0\n"
#~ "$hddgbN - usage for mount point N (from 0), GB. Example: $hddgb0\n"
#~ "$hddtotmbN - total size of mount point N (from 0), MB. Example: "
#~ "$hddtotmb0\n"
#~ "$hddtotgbN - total size of mount point N (from 0), GB. Example: $hddtotgb0"
#~ msgstr ""
#~ "$hddN - uso para el punto de montaje N (a partir de 0), %. Ejemplo: "
#~ "$hdd0\n"
#~ "$hddmbN - uso para el punto de montaje N (a partir de 0), MB. Ejemplo: "
#~ "$hddmb0\n"
#~ "$hddgbN - uso para el punto de montaje N (a partir de 0), GB. Ejemplo: "
#~ "$hddgb0\n"
#~ "$hddtotmbN - uso total para el punto de montaje N (a partir de 0), MB. "
#~ "Ejemplo: $hddtotmb0\n"
#~ "$hddtotgbN - uso total para el punto de montaje N (a partir de 0), GB. "
#~ "Ejemplo: $hddtotgb0"
#~ msgid "HDD speed"
#~ msgstr "Velocidad del disco duro"
#~ msgid ""
#~ "$hddrN - read speed HDD N (from 0), KB/s. Example: $hddr0\n"
#~ "$hddwN - write speed HDD N (from 0), KB/s. Example: $hddw0"
#~ msgstr ""
#~ "$hddrN - velocidad de lectura del disco N (a partir de 0), KB/s. Por "
#~ "ejemplo: $hddr0\n"
#~ "$hddwN - velocidad de escritura del disco N (a partir de 0), KB/s. Por "
#~ "ejemplo: $hddw0"
#~ msgid "HDD temp"
#~ msgstr "Temperatura del disco duro"
#~ msgid ""
#~ "$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0"
#~ msgstr ""
#~ "$hddtempN - temperatura física en el dispositivo N (a partir de 0). "
#~ "Ejemplo: $hddtemp0"
#~ msgid "Network"
#~ msgstr "Red"
#~ msgid ""
#~ "$down - download speed, KB/s\n"
#~ "$up - upload speed, KB/s\n"
#~ "$netdev - current network device"
#~ msgstr ""
#~ "$down - velocidad de recepción, KB/s\n"
#~ "$up - velocidad de envío, KB/s\n"
#~ "$netdev - dispositivo de red actual"
#~ msgid "Battery"
#~ msgstr "Batería"
#~ msgid ""
#~ "$bat - battery charge, %\n"
#~ "$ac - AC status"
#~ msgstr ""
#~ "$bat - carga de la batería, %\n"
#~ "$ac - estado de la alimentación"
#~ msgid ""
#~ "$album - song album\n"
#~ "$artist - song artist\n"
#~ "$progress - song progress\n"
#~ "$time - song duration\n"
#~ "$title - song title"
#~ msgstr ""
#~ "$album - álbum de la canción\n"
#~ "$artist - artista de la canción\n"
#~ "$progress - progreso de la canción\n"
#~ "$time - duración de la canción\n"
#~ "$title - título de la canción"
#~ msgid "Processes"
#~ msgstr "Procesos"
#~ msgid ""
#~ "$pscount - number of running processes\n"
#~ "$pstotal - total number of running processes\n"
#~ "$ps - list of running processes comma separated"
#~ msgstr ""
#~ "$pscount - número de procesos en ejecución\n"
#~ "$pstotal - total de procesos en ejecución\n"
#~ "$ps - listado de procesos en ejecución separados por coma"
#~ msgid ""
#~ "$pkgcountN - number of packages which are available for updates, command "
#~ "N. For example $pkgcount0"
#~ msgstr ""
#~ "$pkgcountN - número de paquetes con actualizaciones disponibles, comando "
#~ "N. Por ejemplo $pkgcount0"
#~ msgid "Custom"
#~ msgstr "Personalizado"
#~ msgid ""
#~ "$customN - get output from custom command N (from N). Example `$custom0`"
#~ msgstr ""
#~ "$customN - obtener la salida de ejecución del comando personalizado N (a "
#~ "partir de 0). Por ejemplo: $custom0"
#~ msgid "Widget settings"
#~ msgstr "Configuración del componente"
#~ msgid "pacman -Qu"
#~ msgstr "pacman -Qu"
#~ msgid "apt-show-versions -u -b"
#~ msgstr "apt-show-versions -u -b"
#~ msgid "aptitude search '~U'"
#~ msgstr "aptitude search '~U'"
#~ msgid "yum list updates"
#~ msgstr "yum list updates"
#~ msgid "pkg_version -I -l '<'"
#~ msgstr "pkg_version -I -l '<'"
#~ msgid "urpmq --auto-select"
#~ msgstr "urpmq --auto-select"

View File

@ -1,41 +0,0 @@
#!/bin/sh
BASEDIR="../" # root of translatable sources
PROJECT="plasma_applet_awesome-widget" # project name
BUGADDR="https://github.com/arcan1s/awesome-widgets/issues" # MSGID-Bugs
WDIR=$(pwd) # working dir
echo "Preparing rc files"
cd "${BASEDIR}"
find . -name '*.rc' -o -name '*.ui' -o -name '*.kcfg' -o -name '*.py' | sort > "${WDIR}/rcfiles.list"
xargs --arg-file=${WDIR}/rcfiles.list extractrc > "${WDIR}/rc.cpp"
echo 'i18nc("NAME OF TRANSLATORS","Your names");' >> "${WDIR}/rc.cpp"
echo 'i18nc("EMAIL OF TRANSLATORS","Your emails");' >> "${WDIR}/rc.cpp"
echo "Done preparing rc files"
echo "Extracting messages"
cd "${WDIR}"
cd "${BASEDIR}"
find . -name '*.cpp' -o -name '*.h' -o -name '*.c' -o -name '*.py' | 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 \
-kI18N_NOOP:1 -kI18N_NOOP2:1c,2 -kaliasLocale -kki18n:1 -kki18nc:1c,2 -kki18np:1,2 -kki18ncp:1c,2,3 \
--msgid-bugs-address="${BUGADDR}" --language=Python \
--files-from=infiles.list -D "${BASEDIR}" -D "${WDIR}" -o "${PROJECT}.pot" || { echo "error while calling xgettext. aborting."; exit 1; }
echo "Done extracting messages"
echo "Merging translations"
catalogs=$(find . -name '*.po')
for cat in $catalogs; do
echo $cat
msgmerge -o "$cat.new" "$cat" "${PROJECT}.pot"
mv "$cat.new" "$cat"
done
echo "Done merging translations"
echo "Cleaning up"
cd "${WDIR}"
rm -f rcfiles.list infiles.list rc.cpp
echo "Done"

View File

@ -1,670 +0,0 @@
# Copyright (C) 2014
# This file is distributed under the same license as the PyTextMonitor package.
#
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
# Mermouy <mermouy@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2014-09-21 20:18+0400\n"
"PO-Revision-Date: 2014-09-05 11:20+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: French <kde-russian@lists.kde.ru>\n"
"Language: fr\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"
#: awesome-widget.cpp:78
msgid "Run ksysguard"
msgstr "Lancer ksysguard"
#: awesome-widget.cpp:81
msgid "Show README"
msgstr "Voir le README"
#: awesome-widget.cpp:84
msgid "Update text"
msgstr "Mettre à jour le texte"
#: configuration.cpp:362 po/rc.cpp:151 rc.cpp:151
msgid "Custom command"
msgstr "Commande personnalisée"
#: configuration.cpp:392 po/rc.cpp:141 rc.cpp:141
msgid "Package manager"
msgstr "Gestionnaire de paquets"
#: configuration.cpp:393 po/rc.cpp:144 rc.cpp:144
msgid "Null lines"
msgstr "Nombre d'éléments pour les conseils"
#: configuration.cpp:405
msgid "Widget"
msgstr "Widget"
#: configuration.cpp:406
msgid "Advanced"
msgstr "Avancé"
#: configuration.cpp:407
msgid "Tooltip"
msgstr "Conseil"
#: configuration.cpp:408
msgid "Appearance"
msgstr "Apparence"
#: configuration.cpp:409
msgid "DataEngine"
msgstr "Moteur de données"
#: configuration.cpp:697 configuration.cpp:711
msgid "Remove"
msgstr "Supprimer"
#: configuration.cpp:766
msgid "Select font"
msgstr ""
#: po/rc.cpp:3 rc.cpp:3
msgid "Enable background"
msgstr ""
#: po/rc.cpp:6 rc.cpp:6
msgid "Enable popup on mouse click"
msgstr "Popup lors d'un click souris"
#: po/rc.cpp:9 rc.cpp:9
msgid "Custom time format"
msgstr "Format de l'heure personnalisé"
#: po/rc.cpp:12 rc.cpp:12
msgid ""
"$dddd - long weekday\n"
"$ddd - short weekday\n"
"$dd - day\n"
"$d - day w\\o zero\n"
"$MMMM - long month\n"
"$MMM - short month\n"
"$MM - month\n"
"$M - month w\\o zero\n"
"$yyyy - year\n"
"$yy - short year\n"
"$hh - hours (24 only)\n"
"$h - hours w\\o zero (24 only)\n"
"$mm - minutes\n"
"$m - minutes w\\o zero\n"
"$ss - seconds\n"
"$s - seconds w\\o zero"
msgstr ""
"$dddd - Jour de la semaine long\n"
"$ddd - Jour de la semaine court\n"
"$dd - jour\n"
"$d - jour sans zéro\n"
"$MMMM - mois long\n"
"$MMM - mois court\n"
"$MM - mois\n"
"$M - mois sans zéro\n"
"$yyyy - année\n"
"$yy - année courte\n"
"$hh - heures (24 uniquement)\n"
"$h - heures sans zéro (24 uniquement)\n"
"$mm - minutes\n"
"$m - minutes sans zéro\n"
"$ss - secondes\n"
"$s - secondes sans zéro"
#: po/rc.cpp:30 rc.cpp:30
msgid "Custom uptime format"
msgstr "Temps de fonctionnement personalisé"
#: po/rc.cpp:33 rc.cpp:33
msgid ""
"$dd - uptime days\n"
"$d - uptime days without zero\n"
"$hh - uptime hours\n"
"$h - uptime hours without zero\n"
"$mm - uptime minutes\n"
"$m - uptime minutes without zero"
msgstr ""
"$dd - temps de fonctionnement en jours\n"
"$d - temps de fonctionnement en jours sans zéro\n"
"$hh - temps de fonctionnement en heures\n"
"$h - temps de fonctionnement en heures sans zéro\n"
"$mm - temps de fonctionnement en minutes\n"
"$m - temps de fonctionnement en minutes sans zéro"
#: po/rc.cpp:41 rc.cpp:41
msgid "Temperature units"
msgstr "Unités de température"
#: po/rc.cpp:44 rc.cpp:44
msgid "Temperature devices"
msgstr "Temperature des périphériques"
#: po/rc.cpp:47 po/rc.cpp:53 po/rc.cpp:59 po/rc.cpp:65 po/rc.cpp:71 rc.cpp:47
#: rc.cpp:53 rc.cpp:59 rc.cpp:65 rc.cpp:71
msgid "Editable"
msgstr "Modifiable"
#: po/rc.cpp:50 rc.cpp:50
#, fuzzy
msgid "Fan devices"
msgstr "Périphérique d'alimentation"
#: po/rc.cpp:56 rc.cpp:56
msgid "Mount points"
msgstr "Points de montage"
#: po/rc.cpp:62 rc.cpp:62
msgid "HDD devices (speed)"
msgstr "Périphériques HDD (la vitesse)"
#: po/rc.cpp:68 rc.cpp:68
msgid "HDD devices (temp)"
msgstr "Périphériques HDD (température)"
#: po/rc.cpp:74 rc.cpp:74
msgid "Disable auto select device and set specified device"
msgstr ""
"Désactiver la sélection automatique de périphériques et le sélectionner "
"manuellement"
#: po/rc.cpp:77 rc.cpp:77
msgid "Set network device"
msgstr "Sélectionner le périphérique réseau"
#: po/rc.cpp:80 rc.cpp:80
msgid "AC online tag"
msgstr "Tag alimentation branchée"
#: po/rc.cpp:83 rc.cpp:83
msgid "Line, which returns when AC is online"
msgstr "Ligne qui est renvoyée lorsque l'alimentation est branchée"
#: po/rc.cpp:86 rc.cpp:86
msgid "AC offline tag"
msgstr "Tag alimentation débranchée"
#: po/rc.cpp:89 rc.cpp:89
msgid "Line, which returns when AC is offline"
msgstr "Ligne, qui est renvoyée lorsque l'alimentation est débranchée"
#: po/rc.cpp:92 rc.cpp:92
msgid "Time interval"
msgstr "Intervalle"
#: po/rc.cpp:95 po/rc.cpp:196 rc.cpp:95 rc.cpp:196
msgid "Font"
msgstr "Police"
#: po/rc.cpp:98 rc.cpp:98
msgid "Font size"
msgstr "Taille de la police"
#: po/rc.cpp:101 rc.cpp:101
msgid "Font color"
msgstr "Couleur de la police"
#: po/rc.cpp:104 rc.cpp:104
msgid "Font style"
msgstr "Style de la police"
#: po/rc.cpp:107 rc.cpp:107
msgid "Font weight"
msgstr "Épaisseur de la police"
#: po/rc.cpp:110 rc.cpp:110
msgid "HDD"
msgstr "Disque dur"
#: po/rc.cpp:113 rc.cpp:113
msgid "MPD port"
msgstr "Port MPD"
#: po/rc.cpp:116 rc.cpp:116
msgid "GPU device"
msgstr "Périphérique graphique"
#: po/rc.cpp:119 rc.cpp:119
msgid "hddtemp cmd"
msgstr "Commande de température HDD"
#: po/rc.cpp:122 rc.cpp:122
msgid "Music player"
msgstr "Lecteur audio"
#: po/rc.cpp:125 rc.cpp:125
msgid "MPD address"
msgstr "Adresse MPD"
#: po/rc.cpp:128 rc.cpp:128
msgid "Desktop check cmd"
msgstr ""
#: po/rc.cpp:131 rc.cpp:131
msgid "<b>NOTE:</b> Player DBus interface should be an active"
msgstr ""
#: po/rc.cpp:134 rc.cpp:134
msgid "MPRIS player name"
msgstr ""
#: po/rc.cpp:137 po/rc.cpp:147 rc.cpp:137 rc.cpp:147
msgid ""
"Editable\n"
"del - remove item"
msgstr ""
"Modifiable\n"
"del - supprimer un élément"
#: po/rc.cpp:154 rc.cpp:154
msgid "ACPI path"
msgstr ""
#: po/rc.cpp:157 rc.cpp:157
#, fuzzy
msgid "\"/sys/class/power_supply/\" by default"
msgstr "\"/sys/class/power_supply/AC/online\" par défaut"
#: po/rc.cpp:160 rc.cpp:160
msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked."
msgstr ""
"CPU, horloge du CPU, mémoire vive, mémoire swap et noms réseau supportent "
"les conseils visuels. Pour les activer cochez simplement les cases "
"correspondantes."
#: po/rc.cpp:163 rc.cpp:163
msgid "Number of values for tooltips"
msgstr "Nombre d'éléments pour les conseils"
#: po/rc.cpp:166 rc.cpp:166
msgid "Background"
msgstr ""
#: po/rc.cpp:169 rc.cpp:169
msgid "CPU color"
msgstr "Couleur processeur"
#: po/rc.cpp:172 rc.cpp:172
msgid "CPU clock color"
msgstr "Couleur de l'horloge processeur"
#: po/rc.cpp:175 rc.cpp:175
msgid "Memory color"
msgstr "Couleur de la mémoire"
#: po/rc.cpp:178 rc.cpp:178
msgid "Swap color"
msgstr "Couleur de la mémoire d'échange"
#: po/rc.cpp:181 rc.cpp:181
msgid "Download speed color"
msgstr "Couleur de la vitesse de téléchargement"
#: po/rc.cpp:184 rc.cpp:184
msgid "Upload speed color"
msgstr "Couleur du téléversement"
#: po/rc.cpp:187 rc.cpp:187
msgid "Battery active color"
msgstr ""
#: po/rc.cpp:190 rc.cpp:190
#, fuzzy
msgid "Battery inactive color"
msgstr "Batterie"
#: po/rc.cpp:193 rc.cpp:193
msgid ""
"Detailed information may be found on <a href=\"http://arcanis.name/projects/"
"awesome-widgets/\">project homepage</a>"
msgstr ""
"D'avantage d'informations se trouvent sur <a href=\"http://arcanis.name/"
"projects/awesome-widgets/\">la page du projet</a>"
#: po/rc.cpp:199 rc.cpp:199
msgid "Ctrl+B"
msgstr "Ctrl+B"
#: po/rc.cpp:202 rc.cpp:202
msgid "Ctrl+I"
msgstr "Ctrl+I"
#: po/rc.cpp:205 rc.cpp:205
msgid "Ctrl+U"
msgstr "Ctrl+U"
#: po/rc.cpp:208 rc.cpp:208
msgid "Add"
msgstr "Ajouter"
#: po/rc.cpp:209 rc.cpp:209
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Evgeniy Alekseev"
#: po/rc.cpp:210 rc.cpp:210
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "esalexeev@gmail.com"
#~ msgid "Battery device"
#~ msgstr "Batterie"
#~ msgid "\"/sys/class/power_supply/BAT0/capacity\" by default"
#~ msgstr "\"/sys/class/power_supply/BAT0/capacity\" par défaut"
#~ msgid "Vertical layout"
#~ msgstr "Positionnement vertical"
#~ msgid "Add stretch to left/top of the layout"
#~ msgstr "Étirer le positionnement vers haut/gauche"
#~ msgid "Add stretch to right/bottom of the layout"
#~ msgstr "Étirer le positionnement vers bas/droite"
#~ msgid "Form"
#~ msgstr "Entrées"
#~ msgid "Network directory"
#~ msgstr "Voisinage réseau"
#~ msgid "\"/sys/class/net\" by default"
#~ msgstr "\"/sys/class/net\" par défaut"
#~ msgid "Custom command to run"
#~ msgstr "Commande personnalisée à exécuter"
#~ msgid "Time"
#~ msgstr "Durée"
#~ msgid ""
#~ "$time - time in default format\n"
#~ "$isotime - time in ISO format\n"
#~ "$shorttime - time in short format\n"
#~ "$longtime - time in log format\n"
#~ "$custom - custom time format"
#~ msgstr ""
#~ "$time - l'heure au format par défaut\n"
#~ "$isotime - l'heure au format ISO\n"
#~ "$shorttime - l'heure format court\n"
#~ "$longtime - l'heure au format log\n"
#~ "$custom - l'heure, format personnalisé"
#~ msgid "Uptime"
#~ msgstr "temps de fonctionnement"
#~ msgid ""
#~ "$uptime - system uptime\n"
#~ "$custom - custom format"
#~ msgstr ""
#~ "$uptime - temps de fonctionnement\n"
#~ "$custom - format personnalisé"
#~ msgid "CPU"
#~ msgstr "CPU"
#~ msgid ""
#~ "$cpu - total load CPU, %\n"
#~ "$cpu0 - load CPU for core 0, %\n"
#~ "...\n"
#~ "$cpu9 - load CPU for core 9, %\n"
#~ "...\n"
#~ "$cpuN - load CPU for core N, %"
#~ msgstr ""
#~ "$cpu - charge totale du processeur, %\n"
#~ "$cpu0 - charge du processeur pour le coeur 0, %\n"
#~ "...\n"
#~ "$cpuN - charge processeur pour le coeur N, %"
#~ msgid "CPU Clock"
#~ msgstr "Horloge processeur"
#~ msgid ""
#~ "$cpucl - average CPU clock, MHz\n"
#~ "$cpucl0 - CPU clock for core 0, MHz\n"
#~ "...\n"
#~ "$cpucl9 - CPU clock for core 9, MHz\n"
#~ "...\n"
#~ "$cpuclN - CPU clock for core N, MHz"
#~ msgstr ""
#~ "$cpucl - Moyenne de l'horloge du processeur, MHz\n"
#~ "$cpucl0 - Horloge du coeur 0, MHz\n"
#~ "...\n"
#~ "$cpuclN - Horloge du coeur N, MHz"
#~ msgid "Temperature"
#~ msgstr "Température"
#~ msgid "$tempN - physical temperature on device N (from 0). Example: $temp0"
#~ msgstr ""
#~ "$tempN - Température physique du périphérique N (à partir de 0). Exemple: "
#~ "$temp0"
#~ msgid "GPU"
#~ msgstr "Processeur graphique"
#~ msgid "$gpu - gpu usage, %"
#~ msgstr "$gpu - utilisation du processeur graphique, %"
#~ msgid "GPU Temp"
#~ msgstr "Temp du processeur graphique"
#~ msgid "$gputemp - physical temperature on GPU"
#~ msgstr "$gputemp - Température physique du processeur graphique"
#~ msgid "Memory"
#~ msgstr "Mémoire"
#~ msgid ""
#~ "$mem - RAM usage, %\n"
#~ "$memmb - RAM usage, MB\n"
#~ "$memgb - RAM usage, GB\n"
#~ "$memtotmb - total RAM, MB\n"
#~ "$memtotgb - total RAM, GB"
#~ msgstr ""
#~ "$mem - utilisation de la RAM, %\n"
#~ "$memmb - utilisation de la RAM, MB\n"
#~ "$memgb - utilisation de la RAM, GB\n"
#~ "$memtotmb - RAM, MB\n"
#~ "$memtotgb - RAM, GB"
#~ msgid "Swap"
#~ msgstr "mémoire d'échange (swap)"
#~ msgid ""
#~ "$swap - swap usage, %\n"
#~ "$swapmb - swap usage, MB\n"
#~ "$swapgb - swap usage, GB\n"
#~ "$swaptotmb - total swap, MB\n"
#~ "$swaptotgb - total swap, GB"
#~ msgstr ""
#~ "$swap - utilisation swap, %\n"
#~ "$swapmb - utilisation swap, MB\n"
#~ "$swapgb - utilisation swap, MB\n"
#~ "$swaptotmb - swap, MB\n"
#~ "$swaptotgb - swap, GB"
#~ msgid ""
#~ "$hddN - usage for mount point N (from 0), %. Example: $hdd0\n"
#~ "$hddmbN - usage for mount point N (from 0), MB. Example: $hddmb0\n"
#~ "$hddgbN - usage for mount point N (from 0), GB. Example: $hddgb0\n"
#~ "$hddtotmbN - total size of mount point N (from 0), MB. Example: "
#~ "$hddtotmb0\n"
#~ "$hddtotgbN - total size of mount point N (from 0), GB. Example: $hddtotgb0"
#~ msgstr ""
#~ "$hddN - utilisation du point de montage N (à partir de 0), %. Exemple: "
#~ "$hdd0\n"
#~ "$hddmbN - utilisation du point de montage N (à partir de 0), MB. Exemple: "
#~ "$hddmb0\n"
#~ "$hddgbN - utilisation du point de montage N (à partir de 0), GB. Exemple: "
#~ "$hddgb0\n"
#~ "$hddtotmbN - taille totale de point de montage N (à partir de 0), MB. "
#~ "Exemple: $hddtotmb0\n"
#~ "$hddtotgbN - taille totale de point de montage N (à partir de 0), GB. "
#~ "Exemple: $hddtotgb0"
#~ msgid "HDD speed"
#~ msgstr "Vitesse HDD"
#~ msgid ""
#~ "$hddrN - read speed HDD N (from 0), KB/s. Example: $hddr0\n"
#~ "$hddwN - write speed HDD N (from 0), KB/s. Example: $hddw0"
#~ msgstr ""
#~ "$hddrN - vitesse de lecture HDD N (à partir de 0), KB/s. Exemple: $hddr0\n"
#~ "$hddwN - vitesse d'écriture HDD N (à partir de 0), KB/s. Exemple: $hddw0"
#~ msgid "HDD temp"
#~ msgstr "Température HDD"
#~ msgid ""
#~ "$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0"
#~ msgstr ""
#~ "$hddtempN - température physique du périphérique N (à partir de 0). "
#~ "Exemple: $hddtemp0"
#~ msgid "Network"
#~ msgstr "Réseau"
#~ msgid ""
#~ "$down - download speed, KB/s\n"
#~ "$up - upload speed, KB/s\n"
#~ "$netdev - current network device"
#~ msgstr ""
#~ "$down - vitesse de téléchargement, KB/s\n"
#~ "$up - vitesse ascendante, KB/s\n"
#~ "$netdev - périphérique réseau actuel"
#~ msgid "Battery"
#~ msgstr "Batterie"
#~ msgid ""
#~ "$bat - battery charge, %\n"
#~ "$ac - AC status"
#~ msgstr ""
#~ "$bat - charge de la batterie, %\n"
#~ "$ac - état de l'alimentation"
#~ msgid ""
#~ "$album - song album\n"
#~ "$artist - song artist\n"
#~ "$progress - song progress\n"
#~ "$time - song duration\n"
#~ "$title - song title"
#~ msgstr ""
#~ "$album - album du morceau\n"
#~ "$artist - artiste du morceau\n"
#~ "$progress - avancement du morceau\n"
#~ "$time - durée du morceau\n"
#~ "$title - titre du morceau"
#~ msgid "Processes"
#~ msgstr "Processus"
#~ msgid ""
#~ "$pscount - number of running processes\n"
#~ "$pstotal - total number of running processes\n"
#~ "$ps - list of running processes comma separated"
#~ msgstr ""
#~ "$pscount - nombre de processus actifs\n"
#~ "$pstotal - nombre total de processus actifs\n"
#~ "$ps - liste des processus actifs séparés par une virgule"
#~ msgid ""
#~ "$pkgcountN - number of packages which are available for updates, command "
#~ "N. For example $pkgcount0"
#~ msgstr ""
#~ "$pkgcountN - nombre de paquets à mettre à jour, commande N. Par exemple "
#~ "$pkgcount0"
#~ msgid "Custom"
#~ msgstr "Personnalisé"
#~ msgid ""
#~ "$customN - get output from custom command N (from N). Example `$custom0`"
#~ msgstr ""
#~ "$customN - sortie d'une commande personnelle N (à partir de 0). Exemple: "
#~ "$custom0"
#~ msgid "Widget settings"
#~ msgstr "Paramètres de l'applet"
#~ msgid "pacman -Qu"
#~ msgstr "pacman -Qu"
#~ msgid "apt-show-versions -u -b"
#~ msgstr "apt-show-versions -u -b"
#~ msgid "aptitude search '~U'"
#~ msgstr "aptitude search '~U'"
#~ msgid "yum list updates"
#~ msgstr "yum list updates"
#~ msgid "pkg_version -I -l '<'"
#~ msgstr "pkg_version -I -l '<'"
#~ msgid "urpmq --auto-select"
#~ msgstr "urpmq --auto-select"
#~ msgid "$hddN - usage for mount point N (from 0), %. Example: $hdd0"
#~ msgstr ""
#~ "$hddN - espace occupé sur le point de montage N (à partir de 0), %. "
#~ "Exemple: $hdd0"
#~ msgid "amarok"
#~ msgstr "amarok"
#~ msgid "mpd"
#~ msgstr "mpd"
#~ msgid "qmmp"
#~ msgstr "qmmp"
#~ msgid "auto"
#~ msgstr "auto"
#~ msgid "nvidia"
#~ msgstr "nvidia"
#~ msgid "ati"
#~ msgstr "ati"
#~ msgid ""
#~ "$ds - uptime days\n"
#~ "$hs - uptime hours\n"
#~ "$ms - uptime minutes"
#~ msgstr ""
#~ "$ds - uptime days\n"
#~ "$hs - uptime hours\n"
#~ "$ms - uptime minutes"
#~ msgid ""
#~ "Command to run, example:\n"
#~ "wget -qO- http://ifconfig.me/ip - get external IP"
#~ msgstr ""
#~ "Command to run, example:\n"
#~ "wget -qO- http://ifconfig.me/ip - get external IP"
#~ msgid "@@/;@@ - mount point usage, %"
#~ msgstr "@@/;@@ - mount point usage, %"
#~ msgid "@@/dev/sda@@ - physical temperature on /dev/sda"
#~ msgstr "@@/dev/sda@@ - physical temperature on /dev/sda"
#~ msgid ""
#~ "$net - network speed, down/up, KB/s\n"
#~ "$netdev - current network device\n"
#~ "@@eth0@@ - disable auto select device and set specified device"
#~ msgstr ""
#~ "$net - network speed, down/up, KB/s\n"
#~ "$netdev - current network device\n"
#~ "@@eth0@@ - disable auto select device and set specified device"

View File

@ -1,321 +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/awesome-widgets/issues\n"
"POT-Creation-Date: 2014-09-21 20:18+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"
#: awesome-widget.cpp:78
msgid "Run ksysguard"
msgstr ""
#: awesome-widget.cpp:81
msgid "Show README"
msgstr ""
#: awesome-widget.cpp:84
msgid "Update text"
msgstr ""
#: configuration.cpp:362 po/rc.cpp:151 rc.cpp:151
msgid "Custom command"
msgstr ""
#: configuration.cpp:392 po/rc.cpp:141 rc.cpp:141
msgid "Package manager"
msgstr ""
#: configuration.cpp:393 po/rc.cpp:144 rc.cpp:144
msgid "Null lines"
msgstr ""
#: configuration.cpp:405
msgid "Widget"
msgstr ""
#: configuration.cpp:406
msgid "Advanced"
msgstr ""
#: configuration.cpp:407
msgid "Tooltip"
msgstr ""
#: configuration.cpp:408
msgid "Appearance"
msgstr ""
#: configuration.cpp:409
msgid "DataEngine"
msgstr ""
#: configuration.cpp:697 configuration.cpp:711
msgid "Remove"
msgstr ""
#: configuration.cpp:766
msgid "Select font"
msgstr ""
#: po/rc.cpp:3 rc.cpp:3
msgid "Enable background"
msgstr ""
#: po/rc.cpp:6 rc.cpp:6
msgid "Enable popup on mouse click"
msgstr ""
#: po/rc.cpp:9 rc.cpp:9
msgid "Custom time format"
msgstr ""
#: po/rc.cpp:12 rc.cpp:12
msgid ""
"$dddd - long weekday\n"
"$ddd - short weekday\n"
"$dd - day\n"
"$d - day w\\o zero\n"
"$MMMM - long month\n"
"$MMM - short month\n"
"$MM - month\n"
"$M - month w\\o zero\n"
"$yyyy - year\n"
"$yy - short year\n"
"$hh - hours (24 only)\n"
"$h - hours w\\o zero (24 only)\n"
"$mm - minutes\n"
"$m - minutes w\\o zero\n"
"$ss - seconds\n"
"$s - seconds w\\o zero"
msgstr ""
#: po/rc.cpp:30 rc.cpp:30
msgid "Custom uptime format"
msgstr ""
#: po/rc.cpp:33 rc.cpp:33
msgid ""
"$dd - uptime days\n"
"$d - uptime days without zero\n"
"$hh - uptime hours\n"
"$h - uptime hours without zero\n"
"$mm - uptime minutes\n"
"$m - uptime minutes without zero"
msgstr ""
#: po/rc.cpp:41 rc.cpp:41
msgid "Temperature units"
msgstr ""
#: po/rc.cpp:44 rc.cpp:44
msgid "Temperature devices"
msgstr ""
#: po/rc.cpp:47 po/rc.cpp:53 po/rc.cpp:59 po/rc.cpp:65 po/rc.cpp:71 rc.cpp:47
#: rc.cpp:53 rc.cpp:59 rc.cpp:65 rc.cpp:71
msgid "Editable"
msgstr ""
#: po/rc.cpp:50 rc.cpp:50
msgid "Fan devices"
msgstr ""
#: po/rc.cpp:56 rc.cpp:56
msgid "Mount points"
msgstr ""
#: po/rc.cpp:62 rc.cpp:62
msgid "HDD devices (speed)"
msgstr ""
#: po/rc.cpp:68 rc.cpp:68
msgid "HDD devices (temp)"
msgstr ""
#: po/rc.cpp:74 rc.cpp:74
msgid "Disable auto select device and set specified device"
msgstr ""
#: po/rc.cpp:77 rc.cpp:77
msgid "Set network device"
msgstr ""
#: po/rc.cpp:80 rc.cpp:80
msgid "AC online tag"
msgstr ""
#: po/rc.cpp:83 rc.cpp:83
msgid "Line, which returns when AC is online"
msgstr ""
#: po/rc.cpp:86 rc.cpp:86
msgid "AC offline tag"
msgstr ""
#: po/rc.cpp:89 rc.cpp:89
msgid "Line, which returns when AC is offline"
msgstr ""
#: po/rc.cpp:92 rc.cpp:92
msgid "Time interval"
msgstr ""
#: po/rc.cpp:95 po/rc.cpp:196 rc.cpp:95 rc.cpp:196
msgid "Font"
msgstr ""
#: po/rc.cpp:98 rc.cpp:98
msgid "Font size"
msgstr ""
#: po/rc.cpp:101 rc.cpp:101
msgid "Font color"
msgstr ""
#: po/rc.cpp:104 rc.cpp:104
msgid "Font style"
msgstr ""
#: po/rc.cpp:107 rc.cpp:107
msgid "Font weight"
msgstr ""
#: po/rc.cpp:110 rc.cpp:110
msgid "HDD"
msgstr ""
#: po/rc.cpp:113 rc.cpp:113
msgid "MPD port"
msgstr ""
#: po/rc.cpp:116 rc.cpp:116
msgid "GPU device"
msgstr ""
#: po/rc.cpp:119 rc.cpp:119
msgid "hddtemp cmd"
msgstr ""
#: po/rc.cpp:122 rc.cpp:122
msgid "Music player"
msgstr ""
#: po/rc.cpp:125 rc.cpp:125
msgid "MPD address"
msgstr ""
#: po/rc.cpp:128 rc.cpp:128
msgid "Desktop check cmd"
msgstr ""
#: po/rc.cpp:131 rc.cpp:131
msgid "<b>NOTE:</b> Player DBus interface should be an active"
msgstr ""
#: po/rc.cpp:134 rc.cpp:134
msgid "MPRIS player name"
msgstr ""
#: po/rc.cpp:137 po/rc.cpp:147 rc.cpp:137 rc.cpp:147
msgid ""
"Editable\n"
"del - remove item"
msgstr ""
#: po/rc.cpp:154 rc.cpp:154
msgid "ACPI path"
msgstr ""
#: po/rc.cpp:157 rc.cpp:157
msgid "\"/sys/class/power_supply/\" by default"
msgstr ""
#: po/rc.cpp:160 rc.cpp:160
msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked."
msgstr ""
#: po/rc.cpp:163 rc.cpp:163
msgid "Number of values for tooltips"
msgstr ""
#: po/rc.cpp:166 rc.cpp:166
msgid "Background"
msgstr ""
#: po/rc.cpp:169 rc.cpp:169
msgid "CPU color"
msgstr ""
#: po/rc.cpp:172 rc.cpp:172
msgid "CPU clock color"
msgstr ""
#: po/rc.cpp:175 rc.cpp:175
msgid "Memory color"
msgstr ""
#: po/rc.cpp:178 rc.cpp:178
msgid "Swap color"
msgstr ""
#: po/rc.cpp:181 rc.cpp:181
msgid "Download speed color"
msgstr ""
#: po/rc.cpp:184 rc.cpp:184
msgid "Upload speed color"
msgstr ""
#: po/rc.cpp:187 rc.cpp:187
msgid "Battery active color"
msgstr ""
#: po/rc.cpp:190 rc.cpp:190
msgid "Battery inactive color"
msgstr ""
#: po/rc.cpp:193 rc.cpp:193
msgid ""
"Detailed information may be found on <a href=\"http://arcanis.name/projects/"
"awesome-widgets/\">project homepage</a>"
msgstr ""
#: po/rc.cpp:199 rc.cpp:199
msgid "Ctrl+B"
msgstr ""
#: po/rc.cpp:202 rc.cpp:202
msgid "Ctrl+I"
msgstr ""
#: po/rc.cpp:205 rc.cpp:205
msgid "Ctrl+U"
msgstr ""
#: po/rc.cpp:208 rc.cpp:208
msgid "Add"
msgstr ""
#: po/rc.cpp:209 rc.cpp:209
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr ""
#: po/rc.cpp:210 rc.cpp:210
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr ""

View File

@ -1,594 +0,0 @@
# Copyright (C) 2014
# This file is distributed under the same license as the PyTextMonitor package.
#
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2014-09-21 20:18+0400\n"
"PO-Revision-Date: 2014-09-05 11:21+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Brazilian Portuguese <kde-russian@lists.kde.ru>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Lokalize 1.5\n"
#: awesome-widget.cpp:78
msgid "Run ksysguard"
msgstr "Abrir ksysguard"
#: awesome-widget.cpp:81
msgid "Show README"
msgstr "Mostrar README"
#: awesome-widget.cpp:84
msgid "Update text"
msgstr "Atualizar texto"
#: configuration.cpp:362 po/rc.cpp:151 rc.cpp:151
msgid "Custom command"
msgstr "Comando personalizado"
#: configuration.cpp:392 po/rc.cpp:141 rc.cpp:141
msgid "Package manager"
msgstr "Gerenciador de pacotes"
#: configuration.cpp:393 po/rc.cpp:144 rc.cpp:144
msgid "Null lines"
msgstr "Número de valores para dicas de contexto"
#: configuration.cpp:405
msgid "Widget"
msgstr "Widget"
#: configuration.cpp:406
msgid "Advanced"
msgstr "Avançado"
#: configuration.cpp:407
msgid "Tooltip"
msgstr "Dica de contexto"
#: configuration.cpp:408
msgid "Appearance"
msgstr "Aparência"
#: configuration.cpp:409
msgid "DataEngine"
msgstr "Engine de dados"
#: configuration.cpp:697 configuration.cpp:711
msgid "Remove"
msgstr "Remover"
#: configuration.cpp:766
msgid "Select font"
msgstr ""
#: po/rc.cpp:3 rc.cpp:3
msgid "Enable background"
msgstr ""
#: po/rc.cpp:6 rc.cpp:6
msgid "Enable popup on mouse click"
msgstr "Ativar popup no clique do mouse"
#: po/rc.cpp:9 rc.cpp:9
msgid "Custom time format"
msgstr "Formato de hora personalizado"
#: po/rc.cpp:12 rc.cpp:12
msgid ""
"$dddd - long weekday\n"
"$ddd - short weekday\n"
"$dd - day\n"
"$d - day w\\o zero\n"
"$MMMM - long month\n"
"$MMM - short month\n"
"$MM - month\n"
"$M - month w\\o zero\n"
"$yyyy - year\n"
"$yy - short year\n"
"$hh - hours (24 only)\n"
"$h - hours w\\o zero (24 only)\n"
"$mm - minutes\n"
"$m - minutes w\\o zero\n"
"$ss - seconds\n"
"$s - seconds w\\o zero"
msgstr ""
"$dddd - dia da semana completo\n"
"$ddd - dia da semana curto\n"
"$dd - dia\n"
"$d - dia com zero\n"
"$MMMM - mês completo\n"
"$MMM - mês curto\n"
"$MM - mês\n"
"$M - mês com zero\n"
"$hh - horas (somente 24)\n"
"$h - horas sem zeros (somente 24)\n"
"$mm - minutos\n"
"$m - minutos sem zeros\n"
"$ss - segundos\n"
"$s segundos sem zeros"
#: po/rc.cpp:30 rc.cpp:30
msgid "Custom uptime format"
msgstr "Tempo em atividade com formato personalizado"
#: po/rc.cpp:33 rc.cpp:33
msgid ""
"$dd - uptime days\n"
"$d - uptime days without zero\n"
"$hh - uptime hours\n"
"$h - uptime hours without zero\n"
"$mm - uptime minutes\n"
"$m - uptime minutes without zero"
msgstr ""
"$dd - tempo em atividade em dias\n"
"$d - tempo em atividade em dias sem zeros\n"
"$hh - tempo em atividade em horas\n"
"$h - tempo em atividade em horas sem zeros\n"
"$mm - tempo em atividade em minutos\n"
"$m - tempo em atividade em minuto sem zeros"
#: po/rc.cpp:41 rc.cpp:41
msgid "Temperature units"
msgstr "Unidades de temperatura"
#: po/rc.cpp:44 rc.cpp:44
msgid "Temperature devices"
msgstr "Dispositivos de temperatura"
#: po/rc.cpp:47 po/rc.cpp:53 po/rc.cpp:59 po/rc.cpp:65 po/rc.cpp:71 rc.cpp:47
#: rc.cpp:53 rc.cpp:59 rc.cpp:65 rc.cpp:71
msgid "Editable"
msgstr "Editável"
#: po/rc.cpp:50 rc.cpp:50
#, fuzzy
msgid "Fan devices"
msgstr "Dispositivo do carregador"
#: po/rc.cpp:56 rc.cpp:56
msgid "Mount points"
msgstr "Pontos de montagem"
#: po/rc.cpp:62 rc.cpp:62
msgid "HDD devices (speed)"
msgstr "Dispositivos HDD (velocidade) "
#: po/rc.cpp:68 rc.cpp:68
msgid "HDD devices (temp)"
msgstr "Dispositivos HDD (temperatura)"
#: po/rc.cpp:74 rc.cpp:74
msgid "Disable auto select device and set specified device"
msgstr ""
"Desativar auto seleção de dispositivos e escolher um dispositivo específico"
#: po/rc.cpp:77 rc.cpp:77
msgid "Set network device"
msgstr "Escolher dispositivo de rede"
#: po/rc.cpp:80 rc.cpp:80
msgid "AC online tag"
msgstr "Rótulo com carregador conectado"
#: po/rc.cpp:83 rc.cpp:83
msgid "Line, which returns when AC is online"
msgstr "Linha, que aparece quando o carregador está conectado"
#: po/rc.cpp:86 rc.cpp:86
msgid "AC offline tag"
msgstr "Rótulo com carregador desconectado"
#: po/rc.cpp:89 rc.cpp:89
msgid "Line, which returns when AC is offline"
msgstr "Linha, que aparece quando o carregador está offline"
#: po/rc.cpp:92 rc.cpp:92
msgid "Time interval"
msgstr "Intervalo de tempo"
#: po/rc.cpp:95 po/rc.cpp:196 rc.cpp:95 rc.cpp:196
msgid "Font"
msgstr "Tamanho da fonte"
#: po/rc.cpp:98 rc.cpp:98
msgid "Font size"
msgstr "Tamanho da fonte"
#: po/rc.cpp:101 rc.cpp:101
msgid "Font color"
msgstr "Cor da fonte"
#: po/rc.cpp:104 rc.cpp:104
msgid "Font style"
msgstr "Estilo da fonte"
#: po/rc.cpp:107 rc.cpp:107
msgid "Font weight"
msgstr "Peso da fonte"
#: po/rc.cpp:110 rc.cpp:110
msgid "HDD"
msgstr "HDD"
#: po/rc.cpp:113 rc.cpp:113
msgid "MPD port"
msgstr "Porta do MPD"
#: po/rc.cpp:116 rc.cpp:116
msgid "GPU device"
msgstr "Dispositivo GPU"
#: po/rc.cpp:119 rc.cpp:119
msgid "hddtemp cmd"
msgstr "comando hddtemp "
#: po/rc.cpp:122 rc.cpp:122
msgid "Music player"
msgstr "Reprodutor de áudio"
#: po/rc.cpp:125 rc.cpp:125
msgid "MPD address"
msgstr "Endereço do MPD"
#: po/rc.cpp:128 rc.cpp:128
msgid "Desktop check cmd"
msgstr ""
#: po/rc.cpp:131 rc.cpp:131
msgid "<b>NOTE:</b> Player DBus interface should be an active"
msgstr ""
#: po/rc.cpp:134 rc.cpp:134
msgid "MPRIS player name"
msgstr ""
#: po/rc.cpp:137 po/rc.cpp:147 rc.cpp:137 rc.cpp:147
msgid ""
"Editable\n"
"del - remove item"
msgstr ""
"Editável\n"
"del - remover item"
#: po/rc.cpp:154 rc.cpp:154
msgid "ACPI path"
msgstr ""
#: po/rc.cpp:157 rc.cpp:157
#, fuzzy
msgid "\"/sys/class/power_supply/\" by default"
msgstr "\"/sys/class/power_supply/AC/online\" por padrão"
#: po/rc.cpp:160 rc.cpp:160
msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked."
msgstr ""
"Os rótulos de CPU, frequência de GPU, memória, swap e rede suportam dica de "
"contexto gráfica. Para ativá-los, basta selecionar a caixa necessária."
#: po/rc.cpp:163 rc.cpp:163
msgid "Number of values for tooltips"
msgstr "Número de valores para dicas de contexto"
#: po/rc.cpp:166 rc.cpp:166
msgid "Background"
msgstr ""
#: po/rc.cpp:169 rc.cpp:169
msgid "CPU color"
msgstr "Cor da frequência da GPU"
#: po/rc.cpp:172 rc.cpp:172
msgid "CPU clock color"
msgstr "Cor da frequência da GPU"
#: po/rc.cpp:175 rc.cpp:175
msgid "Memory color"
msgstr "Cor da memória"
#: po/rc.cpp:178 rc.cpp:178
msgid "Swap color"
msgstr "Cor do swap"
#: po/rc.cpp:181 rc.cpp:181
msgid "Download speed color"
msgstr "Cor da velocidade de download"
#: po/rc.cpp:184 rc.cpp:184
msgid "Upload speed color"
msgstr "Cor da velocidade de upload"
#: po/rc.cpp:187 rc.cpp:187
msgid "Battery active color"
msgstr ""
#: po/rc.cpp:190 rc.cpp:190
#, fuzzy
msgid "Battery inactive color"
msgstr "Dispositivo do carregador"
#: po/rc.cpp:193 rc.cpp:193
msgid ""
"Detailed information may be found on <a href=\"http://arcanis.name/projects/"
"awesome-widgets/\">project homepage</a>"
msgstr ""
"Informações detalhadas podem ser encontradas na <a href=\"http://arcanis."
"name/projects/awesome-widgets/\">página do projeto</a>"
#: po/rc.cpp:199 rc.cpp:199
msgid "Ctrl+B"
msgstr "Ctrl+B"
#: po/rc.cpp:202 rc.cpp:202
msgid "Ctrl+I"
msgstr "Ctrl+I"
#: po/rc.cpp:205 rc.cpp:205
msgid "Ctrl+U"
msgstr "Ctrl+U"
#: po/rc.cpp:208 rc.cpp:208
msgid "Add"
msgstr "Adicionar"
#: po/rc.cpp:209 rc.cpp:209
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "under"
#: po/rc.cpp:210 rc.cpp:210
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "dreanazous@gmail.com"
#~ msgid "Battery device"
#~ msgstr "Dispositivo do carregador"
#~ msgid "\"/sys/class/power_supply/BAT0/capacity\" by default"
#~ msgstr "\"/sys/class/power_supply/BAT0/capacity\" por padrão"
#~ msgid "Vertical layout"
#~ msgstr "Layout vertical"
#~ msgid "Add stretch to left/top of the layout"
#~ msgstr "Adicionar esticamento à esquerda/topo do layout"
#~ msgid "Add stretch to right/bottom of the layout"
#~ msgstr "Adicionar esticamento à direita/inferior do layout"
#~ msgid "Form"
#~ msgstr "Forma"
#~ msgid "Network directory"
#~ msgstr "Diretório de rede"
#~ msgid "\"/sys/class/net\" by default"
#~ msgstr "\"/sys/class/power_supply/AC/online\" por padrão"
#~ msgid "Custom command to run"
#~ msgstr "Comando personalizado para usar"
#~ msgid "Time"
#~ msgstr "Hora"
#~ msgid ""
#~ "$time - time in default format\n"
#~ "$isotime - time in ISO format\n"
#~ "$shorttime - time in short format\n"
#~ "$longtime - time in log format\n"
#~ "$custom - custom time format"
#~ msgstr ""
#~ "$time - hora no formato padrão\n"
#~ "$isotime - hora no formato ISO\n"
#~ "$shorttime - hora em formato curto \n"
#~ "$longtime - hora em formato completo\n"
#~ "$custom - hora em formato personalizado"
#~ msgid "Uptime"
#~ msgstr "Tempo em atividade"
#~ msgid ""
#~ "$uptime - system uptime\n"
#~ "$custom - custom format"
#~ msgstr ""
#~ "$uptime - tempo em atividade do sistema\n"
#~ "$custom - formato personalizado "
#~ msgid "CPU"
#~ msgstr "CPU"
#~ msgid ""
#~ "$cpu - total load CPU, %\n"
#~ "$cpu0 - load CPU for core 0, %\n"
#~ "...\n"
#~ "$cpu9 - load CPU for core 9, %\n"
#~ "...\n"
#~ "$cpuN - load CPU for core N, %"
#~ msgstr ""
#~ "$cpu - carga total da CPU, %\n"
#~ "$cpu0 - carga total para o núcleo 0 da CPU, %\n"
#~ "...\n"
#~ "$cpu9 - carga total para o núcleo 9 da CPU, %\n"
#~ "...\n"
#~ "$cpuN - carga total para o núcleo N da CPU, %"
#~ msgid "CPU Clock"
#~ msgstr "Frequência da CPU "
#~ msgid ""
#~ "$cpucl - average CPU clock, MHz\n"
#~ "$cpucl0 - CPU clock for core 0, MHz\n"
#~ "...\n"
#~ "$cpucl9 - CPU clock for core 9, MHz\n"
#~ "...\n"
#~ "$cpuclN - CPU clock for core N, MHz"
#~ msgstr ""
#~ "$cpucl - frequência média da CPU, MHz\n"
#~ "$cpucl0 - frequência da CPU para o núcleo 0, MHz\n"
#~ "...\n"
#~ "$cpucl9 - frequência da CPU para o núcleo 9, MHz\n"
#~ "...\n"
#~ "$cpuclN - frequência da CPU para o núcleo N, MHz"
#~ msgid "Temperature"
#~ msgstr "Temperatura "
#~ msgid "$tempN - physical temperature on device N (from 0). Example: $temp0"
#~ msgstr ""
#~ "$hddtempN - temperatura física no dispositivo N (começando por 0). "
#~ "Exemplo: $hddtemp0"
#~ msgid "GPU"
#~ msgstr "GPU"
#~ msgid "$gpu - gpu usage, %"
#~ msgstr "$gpu - uso da GPU, %"
#~ msgid "GPU Temp"
#~ msgstr "Temperatura da GPU"
#~ msgid "$gputemp - physical temperature on GPU"
#~ msgstr "$gputemp - temperatura física da GPU"
#~ msgid "Memory"
#~ msgstr "Memória"
#~ msgid ""
#~ "$mem - RAM usage, %\n"
#~ "$memmb - RAM usage, MB\n"
#~ "$memgb - RAM usage, GB\n"
#~ "$memtotmb - total RAM, MB\n"
#~ "$memtotgb - total RAM, GB"
#~ msgstr ""
#~ "$mem - uso de RAM, %\n"
#~ "$memmb - uso de RAM, MB\n"
#~ "$memgb - uso de RAM, GB\n"
#~ "$memtotmb - RAM total, MB\n"
#~ "$memtotgb - RAM total, GB"
#~ msgid "Swap"
#~ msgstr "Swap"
#~ msgid ""
#~ "$swap - swap usage, %\n"
#~ "$swapmb - swap usage, MB\n"
#~ "$swapgb - swap usage, GB\n"
#~ "$swaptotmb - total swap, MB\n"
#~ "$swaptotgb - total swap, GB"
#~ msgstr ""
#~ "$swap - uso de swap, %\n"
#~ "$swapmb - uso de swap, MB\n"
#~ "$swapgb - uso de swap, GB\n"
#~ "$swaptotmb - swap total, MB\n"
#~ "$swaptotgb - swap total, GB"
#~ msgid ""
#~ "$hddN - usage for mount point N (from 0), %. Example: $hdd0\n"
#~ "$hddmbN - usage for mount point N (from 0), MB. Example: $hddmb0\n"
#~ "$hddgbN - usage for mount point N (from 0), GB. Example: $hddgb0\n"
#~ "$hddtotmbN - total size of mount point N (from 0), MB. Example: "
#~ "$hddtotmb0\n"
#~ "$hddtotgbN - total size of mount point N (from 0), GB. Example: $hddtotgb0"
#~ msgstr ""
#~ "$hddN - uso do ponto de montagem N (começando por 0), %. Exemplo: $hdd0\n"
#~ "$hddmbN - uso do ponto de montagem N (começando por 0), MB. Exemplo: "
#~ "$hddmb0\n"
#~ "$hddgbN - uso do ponto de montagem N (começando por 0), GB. Exemplo: "
#~ "$hddgbN0\n"
#~ "$hddtotmbN - tamanho total do ponto de montagem N (começando por 0), MB. "
#~ "Exemplo: $hddtotmbN\n"
#~ "$hddtotgbN - tamanho total do ponto de montagem N (começando por 0), GB. "
#~ "Exemplo: $hddtogbN"
#~ msgid "HDD speed"
#~ msgstr "Velocidade do HDD"
#~ msgid ""
#~ "$hddrN - read speed HDD N (from 0), KB/s. Example: $hddr0\n"
#~ "$hddwN - write speed HDD N (from 0), KB/s. Example: $hddw0"
#~ msgstr ""
#~ "$hddrN - velocidade de leitura do HDD (começando por 0), KB/s. Exemplo: "
#~ "$hddr0\n"
#~ "$hddwN - velocidade de escrita do HDD (começando por 0), Kb/s. Exemplo: "
#~ "$hddw0"
#~ msgid "HDD temp"
#~ msgstr "Temperatura do HDD "
#~ msgid ""
#~ "$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0"
#~ msgstr ""
#~ "$hddtempN - temperatura física no dispositivo N (começando por 0). "
#~ "Exemplo: $hddtemp0"
#~ msgid "Network"
#~ msgstr "Rede"
#~ msgid ""
#~ "$down - download speed, KB/s\n"
#~ "$up - upload speed, KB/s\n"
#~ "$netdev - current network device"
#~ msgstr ""
#~ "$down - velocidade de download, KB/s\n"
#~ "$up - velocidade de upload, KB/s\n"
#~ "$netdev - dispositivo de rede atual"
#~ msgid "Battery"
#~ msgstr "Bateria"
#~ msgid ""
#~ "$bat - battery charge, %\n"
#~ "$ac - AC status"
#~ msgstr ""
#~ "bateria - carga da bateria, %\n"
#~ "$ac - status do carregador"
#~ msgid ""
#~ "$album - song album\n"
#~ "$artist - song artist\n"
#~ "$progress - song progress\n"
#~ "$time - song duration\n"
#~ "$title - song title"
#~ msgstr ""
#~ "$album - album da música\n"
#~ "$artist - artista da música\n"
#~ "$progress - progresso da música\n"
#~ "$time - duração da música\n"
#~ "$title - título da música"
#~ msgid "Processes"
#~ msgstr "Processos "
#~ msgid ""
#~ "$pscount - number of running processes\n"
#~ "$pstotal - total number of running processes\n"
#~ "$ps - list of running processes comma separated"
#~ msgstr ""
#~ "$pscount - número de processos rodando\n"
#~ "$pstotal - número total de processos rodando\n"
#~ "$ps - lista dos processos rodando separados por vírgula"
#~ msgid ""
#~ "$pkgcountN - number of packages which are available for updates, command "
#~ "N. For example $pkgcount0"
#~ msgstr ""
#~ "$pkgcountN - número de pacotes disponíveis para atualizar, comando N. Por "
#~ "exemplo $pkgcount0"
#~ msgid "Custom"
#~ msgstr "Personalizado"
#~ msgid ""
#~ "$customN - get output from custom command N (from N). Example `$custom0`"
#~ msgstr ""
#~ "$customN - leia a saída de um comando personalizado N (a partir de N). "
#~ "Exemplo: `$custom0`"

View File

@ -1,684 +0,0 @@
# Copyright (C) 2014
# This file is distributed under the same license as the PyTextMonitor package.
#
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2014-09-21 20:18+0400\n"
"PO-Revision-Date: 2014-09-21 20:19+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"
#: awesome-widget.cpp:78
msgid "Run ksysguard"
msgstr "Запустить ksysguard"
#: awesome-widget.cpp:81
msgid "Show README"
msgstr "Показать README"
#: awesome-widget.cpp:84
msgid "Update text"
msgstr "Обновить текст"
#: configuration.cpp:362 po/rc.cpp:151 rc.cpp:151
msgid "Custom command"
msgstr "Своя команда"
#: configuration.cpp:392 po/rc.cpp:141 rc.cpp:141
msgid "Package manager"
msgstr "Пакетный менеджер"
#: configuration.cpp:393 po/rc.cpp:144 rc.cpp:144
msgid "Null lines"
msgstr "Число пустых линий"
#: configuration.cpp:405
msgid "Widget"
msgstr "Виджет"
#: configuration.cpp:406
msgid "Advanced"
msgstr "Расширенные"
#: configuration.cpp:407
msgid "Tooltip"
msgstr "Тултип"
#: configuration.cpp:408
msgid "Appearance"
msgstr "Внешний вид"
#: configuration.cpp:409
msgid "DataEngine"
msgstr "DataEngine"
#: configuration.cpp:697 configuration.cpp:711
msgid "Remove"
msgstr "Удалить"
#: configuration.cpp:766
msgid "Select font"
msgstr "Выберете шрифт"
#: po/rc.cpp:3 rc.cpp:3
msgid "Enable background"
msgstr "Включить фон"
#: po/rc.cpp:6 rc.cpp:6
msgid "Enable popup on mouse click"
msgstr "Включить сообщения по клику мыши"
#: po/rc.cpp:9 rc.cpp:9
msgid "Custom time format"
msgstr "Свой формат времени"
#: po/rc.cpp:12 rc.cpp:12
msgid ""
"$dddd - long weekday\n"
"$ddd - short weekday\n"
"$dd - day\n"
"$d - day w\\o zero\n"
"$MMMM - long month\n"
"$MMM - short month\n"
"$MM - month\n"
"$M - month w\\o zero\n"
"$yyyy - year\n"
"$yy - short year\n"
"$hh - hours (24 only)\n"
"$h - hours w\\o zero (24 only)\n"
"$mm - minutes\n"
"$m - minutes w\\o zero\n"
"$ss - seconds\n"
"$s - seconds w\\o zero"
msgstr ""
"$dddd - день недели (длинный)\n"
"$ddd - день недели (короткий)\n"
"$dd - день\n"
"$d - день без 0\n"
"$MMMM - месяц (длинный)\n"
"$MMM - месяц (короткий)\n"
"$MM - месяц\n"
"$M - месяц без 0\n"
"$yyyy - год\n"
"$yy - год (короткий)\n"
"$hh - часы (24)\n"
"$h - часы без 0 (24)\n"
"$mm - минуты\n"
"$m - минуты без 0\n"
"$ss - секунды\n"
"$s - секунды без 0"
#: po/rc.cpp:30 rc.cpp:30
msgid "Custom uptime format"
msgstr "Свой формат аптайма"
#: po/rc.cpp:33 rc.cpp:33
msgid ""
"$dd - uptime days\n"
"$d - uptime days without zero\n"
"$hh - uptime hours\n"
"$h - uptime hours without zero\n"
"$mm - uptime minutes\n"
"$m - uptime minutes without zero"
msgstr ""
"$dd - дни аптайма\n"
"$d - дни аптайма без нулей\n"
"$hh - часы аптайма\n"
"$h - часы аптайма без нулей\n"
"$mm - минуты аптайма\n"
"$m - минуты аптайма без нулей"
#: po/rc.cpp:41 rc.cpp:41
msgid "Temperature units"
msgstr "Температурные единицы"
#: po/rc.cpp:44 rc.cpp:44
msgid "Temperature devices"
msgstr "Температурные устройства"
#: po/rc.cpp:47 po/rc.cpp:53 po/rc.cpp:59 po/rc.cpp:65 po/rc.cpp:71 rc.cpp:47
#: rc.cpp:53 rc.cpp:59 rc.cpp:65 rc.cpp:71
msgid "Editable"
msgstr "Редактируемо"
#: po/rc.cpp:50 rc.cpp:50
msgid "Fan devices"
msgstr "Кулеры"
#: po/rc.cpp:56 rc.cpp:56
msgid "Mount points"
msgstr "Точки монтирования"
#: po/rc.cpp:62 rc.cpp:62
msgid "HDD devices (speed)"
msgstr "HDD (скорость)"
#: po/rc.cpp:68 rc.cpp:68
msgid "HDD devices (temp)"
msgstr "HDD (температура)"
#: po/rc.cpp:74 rc.cpp:74
msgid "Disable auto select device and set specified device"
msgstr "Отключить автовыбор устройства и использовать указанное"
#: po/rc.cpp:77 rc.cpp:77
msgid "Set network device"
msgstr "Выберете сетевое устройство"
#: po/rc.cpp:80 rc.cpp:80
msgid "AC online tag"
msgstr "AC подключен"
#: po/rc.cpp:83 rc.cpp:83
msgid "Line, which returns when AC is online"
msgstr "Строка, возвращаемая при подключенном адаптере питания"
#: po/rc.cpp:86 rc.cpp:86
msgid "AC offline tag"
msgstr "AC отключен"
#: po/rc.cpp:89 rc.cpp:89
msgid "Line, which returns when AC is offline"
msgstr "Строка, возвращаемая при отключенном адаптере питания"
#: po/rc.cpp:92 rc.cpp:92
msgid "Time interval"
msgstr "Интервал обновления"
#: po/rc.cpp:95 po/rc.cpp:196 rc.cpp:95 rc.cpp:196
msgid "Font"
msgstr "Шрифт"
#: po/rc.cpp:98 rc.cpp:98
msgid "Font size"
msgstr "Размер шрифта"
#: po/rc.cpp:101 rc.cpp:101
msgid "Font color"
msgstr "Цвет шрифта"
#: po/rc.cpp:104 rc.cpp:104
msgid "Font style"
msgstr "Стиль шрифта"
#: po/rc.cpp:107 rc.cpp:107
msgid "Font weight"
msgstr "Ширина шрифта"
#: po/rc.cpp:110 rc.cpp:110
msgid "HDD"
msgstr "HDD"
#: po/rc.cpp:113 rc.cpp:113
msgid "MPD port"
msgstr "Порт сервера MPD"
#: po/rc.cpp:116 rc.cpp:116
msgid "GPU device"
msgstr "Устройство GPU"
#: po/rc.cpp:119 rc.cpp:119
msgid "hddtemp cmd"
msgstr "Команда hddtemp"
#: po/rc.cpp:122 rc.cpp:122
msgid "Music player"
msgstr "Музыкальный плеер"
#: po/rc.cpp:125 rc.cpp:125
msgid "MPD address"
msgstr "Адрес сервера MPD"
#: po/rc.cpp:128 rc.cpp:128
msgid "Desktop check cmd"
msgstr "Команда для проверки рабочего стола"
#: po/rc.cpp:131 rc.cpp:131
msgid "<b>NOTE:</b> Player DBus interface should be an active"
msgstr "<b>ВНИМАНИЕ:</b> DBus интерфейс плеера должен быть активен"
#: po/rc.cpp:134 rc.cpp:134
msgid "MPRIS player name"
msgstr "Имя плеера в MPRIS"
#: po/rc.cpp:137 po/rc.cpp:147 rc.cpp:137 rc.cpp:147
msgid ""
"Editable\n"
"del - remove item"
msgstr ""
"Редактируемо\n"
"del - удалить строку"
#: po/rc.cpp:154 rc.cpp:154
msgid "ACPI path"
msgstr "Пусть к ACPI"
#: po/rc.cpp:157 rc.cpp:157
msgid "\"/sys/class/power_supply/\" by default"
msgstr "\"/sys/class/power_supply/\" по умолчанию"
#: po/rc.cpp:160 rc.cpp:160
msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked."
msgstr ""
"Поля \"CPU\", \"Частота CPU\", \"Память\", \"Swap\", \"Сеть\" поддерживают "
"графический тултип. Чтобы включить его, просто сделайте требуемые чекбоксы "
"полностью чекнутыми."
#: po/rc.cpp:163 rc.cpp:163
msgid "Number of values for tooltips"
msgstr "Число хранящихся значений"
#: po/rc.cpp:166 rc.cpp:166
msgid "Background"
msgstr "Фон"
#: po/rc.cpp:169 rc.cpp:169
msgid "CPU color"
msgstr "Цвет CPU"
#: po/rc.cpp:172 rc.cpp:172
msgid "CPU clock color"
msgstr "Цвет частоты CPU"
#: po/rc.cpp:175 rc.cpp:175
msgid "Memory color"
msgstr "Цвет памяти"
#: po/rc.cpp:178 rc.cpp:178
msgid "Swap color"
msgstr "Цвет swap"
#: po/rc.cpp:181 rc.cpp:181
msgid "Download speed color"
msgstr "Цвет скорости загрузки"
#: po/rc.cpp:184 rc.cpp:184
msgid "Upload speed color"
msgstr "Цвет скорости отдачи"
#: po/rc.cpp:187 rc.cpp:187
msgid "Battery active color"
msgstr "Цвет заряжаемой батареи"
#: po/rc.cpp:190 rc.cpp:190
msgid "Battery inactive color"
msgstr "Цвет разряжаемой батареи"
#: po/rc.cpp:193 rc.cpp:193
msgid ""
"Detailed information may be found on <a href=\"http://arcanis.name/projects/"
"awesome-widgets/\">project homepage</a>"
msgstr ""
"Подробная информация может быть найдена на <a href=\"http://arcanis.name/ru/"
"projects/awesome-widgets/\">домашней странице проекта</a>"
#: po/rc.cpp:199 rc.cpp:199
msgid "Ctrl+B"
msgstr "Ctrl+B"
#: po/rc.cpp:202 rc.cpp:202
msgid "Ctrl+I"
msgstr "Ctrl+I"
#: po/rc.cpp:205 rc.cpp:205
msgid "Ctrl+U"
msgstr "Ctrl+U"
#: po/rc.cpp:208 rc.cpp:208
msgid "Add"
msgstr "Добавить"
#: po/rc.cpp:209 rc.cpp:209
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Evgeniy Alekseev"
#: po/rc.cpp:210 rc.cpp:210
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "esalexeev@gmail.com"
#~ msgid "Battery device"
#~ msgstr "Устройство батареи"
#~ msgid "\"/sys/class/power_supply/BAT0/capacity\" by default"
#~ msgstr "\"/sys/class/power_supply/BAT0/capacity\" по умолчанию"
#~ msgid "Vertical layout"
#~ msgstr "Вертикальная разметка"
#~ msgid "Add stretch to left/top of the layout"
#~ msgstr "Добавить пустое место слева/вверху виджета"
#~ msgid "Add stretch to right/bottom of the layout"
#~ msgstr "Добавить пустое место справа/внизу виджета"
#~ msgid "Advanced configuration"
#~ msgstr "Расширенная настройка"
#~ msgid "Appearance configuration"
#~ msgstr "Настройка внешнего вида"
#~ msgid "DE Configuration"
#~ msgstr "Настройка DE"
#~ msgid "Tooltip configuration"
#~ msgstr "Настройка тултипа"
#~ msgid "Widget configuration"
#~ msgstr "Настройка виджета"
#~ msgid "Form"
#~ msgstr "Form"
#~ msgid "Network directory"
#~ msgstr "Путь к интерфейсам"
#~ msgid "\"/sys/class/net\" by default"
#~ msgstr "\"/sys/class/net\" по умолчанию"
#~ msgid "Custom command to run"
#~ msgstr "Своя команда для запуска"
#~ msgid "Time"
#~ msgstr "Время"
#~ msgid ""
#~ "$time - time in default format\n"
#~ "$isotime - time in ISO format\n"
#~ "$shorttime - time in short format\n"
#~ "$longtime - time in log format\n"
#~ "$custom - custom time format"
#~ msgstr ""
#~ "$time - время в стандартном формате\n"
#~ "$isotime - время в ISO формате\n"
#~ "$shorttime - время в коротком формате\n"
#~ "$longtime - время в длинном формате\n"
#~ "$custom - свой формат времени"
#~ msgid "Uptime"
#~ msgstr "Время работы"
#~ msgid ""
#~ "$uptime - system uptime\n"
#~ "$custom - custom format"
#~ msgstr ""
#~ "$uptime - время работы\n"
#~ "$custom - свой формат"
#~ msgid "CPU"
#~ msgstr "CPU"
#~ msgid ""
#~ "$cpu - total load CPU, %\n"
#~ "$cpu0 - load CPU for core 0, %\n"
#~ "...\n"
#~ "$cpu9 - load CPU for core 9, %\n"
#~ "...\n"
#~ "$cpuN - load CPU for core N, %"
#~ msgstr ""
#~ "$cpu - общая загрузка CPU, %\n"
#~ "$cpu0 - загрузка CPU для ядра 0, %\n"
#~ "...\n"
#~ "$cpu9 - загрузка CPU для ядра 9, %\n"
#~ "...\n"
#~ "$cpuN - загрузка CPU для ядра N, %"
#~ msgid "CPU Clock"
#~ msgstr "Частота CPU"
#~ msgid ""
#~ "$cpucl - average CPU clock, MHz\n"
#~ "$cpucl0 - CPU clock for core 0, MHz\n"
#~ "...\n"
#~ "$cpucl9 - CPU clock for core 9, MHz\n"
#~ "...\n"
#~ "$cpuclN - CPU clock for core N, MHz"
#~ msgstr ""
#~ "$cpucl - средняя частота CPU, MHz\n"
#~ "$cpucl0 - частота CPU для ядра 0, MHz\n"
#~ "...\n"
#~ "$cpucl9 - частота CPU для ядра 9, MHz\n"
#~ "...\n"
#~ "$cpuclN - частота CPU для ядра N, MHz"
#~ msgid "Temperature"
#~ msgstr "Температура"
#~ msgid "$tempN - physical temperature on device N (from 0). Example: $temp0"
#~ msgstr ""
#~ "$tempN - физическая температура на устройстве N (от 0). Пример: $temp0"
#~ msgid "GPU"
#~ msgstr "GPU"
#~ msgid "$gpu - gpu usage, %"
#~ msgstr "$gpu - использование GPU, %"
#~ msgid "GPU Temp"
#~ msgstr "Температура GPU"
#~ msgid "$gputemp - physical temperature on GPU"
#~ msgstr "$gputemp - физическая температура на GPU"
#~ msgid "Memory"
#~ msgstr "Память"
#~ msgid ""
#~ "$mem - RAM usage, %\n"
#~ "$memmb - RAM usage, MB\n"
#~ "$memgb - RAM usage, GB\n"
#~ "$memtotmb - total RAM, MB\n"
#~ "$memtotgb - total RAM, GB"
#~ msgstr ""
#~ "$mem - использование RAM, %\n"
#~ "$memmb - использование RAM, MB\n"
#~ "$memgb - использование RAM, GB\n"
#~ "$memtotmb - RAM, MB\n"
#~ "$memtotgb - RAM, GB"
#~ msgid "Swap"
#~ msgstr "Swap"
#~ msgid ""
#~ "$swap - swap usage, %\n"
#~ "$swapmb - swap usage, MB\n"
#~ "$swapgb - swap usage, GB\n"
#~ "$swaptotmb - total swap, MB\n"
#~ "$swaptotgb - total swap, GB"
#~ msgstr ""
#~ "$swap - использование swap, %\n"
#~ "$swapmb - использование swap, MB\n"
#~ "$swapgb - использование swap, GB\n"
#~ "$swaptotmb - swap, MB\n"
#~ "$swaptotgb - swap, GB"
#~ msgid ""
#~ "$hddN - usage for mount point N (from 0), %. Example: $hdd0\n"
#~ "$hddmbN - usage for mount point N (from 0), MB. Example: $hddmb0\n"
#~ "$hddgbN - usage for mount point N (from 0), GB. Example: $hddgb0\n"
#~ "$hddtotmbN - total size of mount point N (from 0), MB. Example: "
#~ "$hddtotmb0\n"
#~ "$hddtotgbN - total size of mount point N (from 0), GB. Example: $hddtotgb0"
#~ msgstr ""
#~ "$hddN - использование точки монтирования N (от 0), %. Пример: $hdd0\n"
#~ "$hddmbN - использование точки монтирования N (от 0), MB. Пример: $hddmb0\n"
#~ "$hddgbN - использование точки монтирования N (от 0), GB. Пример: $hddgb0\n"
#~ "$hddtotmbN - размер точки монтирования N (от 0), MB. Пример: $hddtotmb0\n"
#~ "$hddtotgbN - размер точки монтирования N (от 0), GB. Пример: $hddtotgb0"
#~ msgid "HDD speed"
#~ msgstr "Скорость HDD"
#~ msgid ""
#~ "$hddrN - read speed HDD N (from 0), KB/s. Example: $hddr0\n"
#~ "$hddwN - write speed HDD N (from 0), KB/s. Example: $hddw0"
#~ msgstr ""
#~ "$hddrN - скорость записи на HDD N (от 0), KB/s. Например: $hddr0\n"
#~ "$hddwN - скорость чтения с HDD N (от 0), KB/s. Например: $hddw0"
#~ msgid "HDD temp"
#~ msgstr "Температура HDD"
#~ msgid ""
#~ "$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0"
#~ msgstr "$hddtempN - температура на устройстве N (от 0). Пример: $hddtemp0"
#~ msgid "Network"
#~ msgstr "Сеть"
#~ msgid ""
#~ "$down - download speed, KB/s\n"
#~ "$up - upload speed, KB/s\n"
#~ "$netdev - current network device"
#~ msgstr ""
#~ "$down - скорость скачки, KB/s\n"
#~ "$up - скорость загрузки, KB/s\n"
#~ "$netdev - текущее устройство"
#~ msgid "Battery"
#~ msgstr "Батарея"
#~ msgid ""
#~ "$bat - battery charge, %\n"
#~ "$ac - AC status"
#~ msgstr ""
#~ "$bat - заряд батареи, %\n"
#~ "$ac - статус адаптера питания"
#~ msgid ""
#~ "$album - song album\n"
#~ "$artist - song artist\n"
#~ "$progress - song progress\n"
#~ "$time - song duration\n"
#~ "$title - song title"
#~ msgstr ""
#~ "$album - альбом\n"
#~ "$artist - исполнитель\n"
#~ "$progress - прогресс\n"
#~ "$time - продолжительность\n"
#~ "$title - название"
#~ msgid "Processes"
#~ msgstr "Процессы"
#~ msgid ""
#~ "$pscount - number of running processes\n"
#~ "$pstotal - total number of running processes\n"
#~ "$ps - list of running processes comma separated"
#~ msgstr ""
#~ "$pscount - число запущенных процессов\n"
#~ "$pstotal - общее число процессов\n"
#~ "$ps - список запущенных процессов, разделенных запятыми"
#~ msgid ""
#~ "$pkgcountN - number of packages which are available for updates, command "
#~ "N. For example $pkgcount0"
#~ msgstr ""
#~ "$pkgcountN - число пакетов, которые доступны для обновления, для команды "
#~ "N. Например, $pkgcount0"
#~ msgid "Custom"
#~ msgstr "Своя команда"
#~ msgid ""
#~ "$customN - get output from custom command N (from N). Example `$custom0`"
#~ msgstr ""
#~ "$customN - получить информацию из своей команды N. Например $custom0"
#~ msgid "Current desktop"
#~ msgstr "Текущий рабочий стол"
#~ msgid ""
#~ "$name - desktop name\n"
#~ "$number - desktop number\n"
#~ "$total - total number of desktops"
#~ msgstr ""
#~ "$name - имя рабочего стола\n"
#~ "$number - номер рабочего стола\n"
#~ "$total - общее число рабочих столов"
#~ msgid "Widget settings"
#~ msgstr "Настройки виджета"
#~ msgid "pacman -Qu"
#~ msgstr "pacman -Qu"
#~ msgid "apt-show-versions -u -b"
#~ msgstr "apt-show-versions -u -b"
#~ msgid "aptitude search '~U'"
#~ msgstr "aptitude search '~U'"
#~ msgid "yum list updates"
#~ msgstr "yum list updates"
#~ msgid "pkg_version -I -l '<'"
#~ msgstr "pkg_version -I -l '<'"
#~ msgid "urpmq --auto-select"
#~ msgstr "urpmq --auto-select"
#~ msgid "amarok"
#~ msgstr "amarok"
#~ msgid "mpd"
#~ msgstr "mpd"
#~ msgid "qmmp"
#~ msgstr "qmmp"
#~ msgid "auto"
#~ msgstr "auto"
#~ msgid "nvidia"
#~ msgstr "nvidia"
#~ msgid "ati"
#~ msgstr "ati"
#~ msgid "$hddN - usage for mount point N (from 0), %. Example: $hdd0"
#~ msgstr "$hddN - использование точки монтирования N (от 0), %. Пример: $hdd0"
#~ msgid ""
#~ "$ds - uptime days\n"
#~ "$hs - uptime hours\n"
#~ "$ms - uptime minutes"
#~ msgstr ""
#~ "$ds - дни работы\n"
#~ "$hs - часы\n"
#~ "$ms - минуты"
#~ msgid ""
#~ "Command to run, example:\n"
#~ "wget -qO- http://ifconfig.me/ip - get external IP"
#~ msgstr ""
#~ "Команда для запуска, например:\n"
#~ "wget -qO- http://ifconfig.me/ip - получить внешний IP"
#~ msgid "@@/;@@ - mount point usage, %"
#~ msgstr "@@/;@@ - использование точки монтирования, %"
#~ msgid "@@/dev/sda@@ - physical temperature on /dev/sda"
#~ msgstr "@@/dev/sda@@ - физическая температура /dev/sda"
#~ msgid ""
#~ "$net - network speed, down/up, KB/s\n"
#~ "$netdev - current network device\n"
#~ "@@eth0@@ - disable auto select device and set specified device"
#~ msgstr ""
#~ "$net - скорость передачи данных, down/up, KB/s\n"
#~ "$netdev - используемое устройство\n"
#~ "@@eth0@@ - отключить автовыбор устройства и установить указанное"

View File

@ -1,587 +0,0 @@
# Copyright (C) 2014
# This file is distributed under the same license as the PyTextMonitor package.
#
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2014-09-21 20:18+0400\n"
"PO-Revision-Date: 2014-09-05 11:22+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Ukrainian <kde-russian@lists.kde.ru>\n"
"Language: ua\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"
#: awesome-widget.cpp:78
msgid "Run ksysguard"
msgstr "Запустити ksysguard"
#: awesome-widget.cpp:81
msgid "Show README"
msgstr "Показати README"
#: awesome-widget.cpp:84
msgid "Update text"
msgstr "Оновити текст"
#: configuration.cpp:362 po/rc.cpp:151 rc.cpp:151
msgid "Custom command"
msgstr "Своя команда"
#: configuration.cpp:392 po/rc.cpp:141 rc.cpp:141
msgid "Package manager"
msgstr "Пакетний менеджер"
#: configuration.cpp:393 po/rc.cpp:144 rc.cpp:144
msgid "Null lines"
msgstr "Кількість пустих рядків"
#: configuration.cpp:405
msgid "Widget"
msgstr "Віджет"
#: configuration.cpp:406
msgid "Advanced"
msgstr "Розширені"
#: configuration.cpp:407
msgid "Tooltip"
msgstr "Тултіп"
#: configuration.cpp:408
msgid "Appearance"
msgstr "Зовнішній вигляд"
#: configuration.cpp:409
msgid "DataEngine"
msgstr "DataEngine"
#: configuration.cpp:697 configuration.cpp:711
msgid "Remove"
msgstr "Видалити"
#: configuration.cpp:766
msgid "Select font"
msgstr ""
#: po/rc.cpp:3 rc.cpp:3
msgid "Enable background"
msgstr ""
#: po/rc.cpp:6 rc.cpp:6
msgid "Enable popup on mouse click"
msgstr "Включити спливаючі підказки при натисканні клавіші миші"
#: po/rc.cpp:9 rc.cpp:9
msgid "Custom time format"
msgstr "Свій формат часу"
#: po/rc.cpp:12 rc.cpp:12
msgid ""
"$dddd - long weekday\n"
"$ddd - short weekday\n"
"$dd - day\n"
"$d - day w\\o zero\n"
"$MMMM - long month\n"
"$MMM - short month\n"
"$MM - month\n"
"$M - month w\\o zero\n"
"$yyyy - year\n"
"$yy - short year\n"
"$hh - hours (24 only)\n"
"$h - hours w\\o zero (24 only)\n"
"$mm - minutes\n"
"$m - minutes w\\o zero\n"
"$ss - seconds\n"
"$s - seconds w\\o zero"
msgstr ""
"$dddd - день тижня (довгий)\n"
"$ddd - день тижня (короткий)\n"
"$dd - день\n"
"$d - день без нулів\n"
"$MMMM - місяць (довгий)\n"
"$MMM - місяць (короткий)\n"
"$MM - місяць\n"
"$M - місяць без нулів\n"
"$yyyy - рік\n"
"$yy - рук (короткий)\n"
"$hh - години (24)\n"
"$h - години без нулів (24)\n"
"$mm - хвилини\n"
"$m - хвилини без нулів\n"
"$ss - секунди\n"
"$s - секунди без нулів"
#: po/rc.cpp:30 rc.cpp:30
msgid "Custom uptime format"
msgstr "Свій формат аптайму (uptime)"
#: po/rc.cpp:33 rc.cpp:33
msgid ""
"$dd - uptime days\n"
"$d - uptime days without zero\n"
"$hh - uptime hours\n"
"$h - uptime hours without zero\n"
"$mm - uptime minutes\n"
"$m - uptime minutes without zero"
msgstr ""
"$dd - дні аптайму\n"
"$d - дні аптайму без нулів\n"
"$hh - години аптайму\n"
"$h - години аптайму без нулів\n"
"$mm - хвилини аптайму\n"
"$m - хвилини аптайму без нулів"
#: po/rc.cpp:41 rc.cpp:41
msgid "Temperature units"
msgstr "Одиниці виміру температури"
#: po/rc.cpp:44 rc.cpp:44
msgid "Temperature devices"
msgstr "Температурні пристрої"
#: po/rc.cpp:47 po/rc.cpp:53 po/rc.cpp:59 po/rc.cpp:65 po/rc.cpp:71 rc.cpp:47
#: rc.cpp:53 rc.cpp:59 rc.cpp:65 rc.cpp:71
msgid "Editable"
msgstr "Можна редагувати"
#: po/rc.cpp:50 rc.cpp:50
#, fuzzy
msgid "Fan devices"
msgstr "AC пристрій"
#: po/rc.cpp:56 rc.cpp:56
msgid "Mount points"
msgstr "Точки монтування"
#: po/rc.cpp:62 rc.cpp:62
msgid "HDD devices (speed)"
msgstr "HDD (швидкість)"
#: po/rc.cpp:68 rc.cpp:68
msgid "HDD devices (temp)"
msgstr "HDD (температура)"
#: po/rc.cpp:74 rc.cpp:74
msgid "Disable auto select device and set specified device"
msgstr "Відключити автоматичний вибір пристрою та використовувати вказаний"
#: po/rc.cpp:77 rc.cpp:77
msgid "Set network device"
msgstr "Оберіть мережевий пристрій"
#: po/rc.cpp:80 rc.cpp:80
msgid "AC online tag"
msgstr "AC підключений"
#: po/rc.cpp:83 rc.cpp:83
msgid "Line, which returns when AC is online"
msgstr "Рядок, що повертається при підключеному адаптері живлення"
#: po/rc.cpp:86 rc.cpp:86
msgid "AC offline tag"
msgstr "AC відключений"
#: po/rc.cpp:89 rc.cpp:89
msgid "Line, which returns when AC is offline"
msgstr "Рядок, що повертається при відключеному адаптері живлення"
#: po/rc.cpp:92 rc.cpp:92
msgid "Time interval"
msgstr "Інтервал оновлення"
#: po/rc.cpp:95 po/rc.cpp:196 rc.cpp:95 rc.cpp:196
msgid "Font"
msgstr "Шрифт"
#: po/rc.cpp:98 rc.cpp:98
msgid "Font size"
msgstr "Розмір шрифту"
#: po/rc.cpp:101 rc.cpp:101
msgid "Font color"
msgstr "Колір шрифту"
#: po/rc.cpp:104 rc.cpp:104
msgid "Font style"
msgstr "Стиль шрифту"
#: po/rc.cpp:107 rc.cpp:107
msgid "Font weight"
msgstr "Ширина шрифту"
#: po/rc.cpp:110 rc.cpp:110
msgid "HDD"
msgstr "HDD"
#: po/rc.cpp:113 rc.cpp:113
msgid "MPD port"
msgstr "Порт сервера MPD"
#: po/rc.cpp:116 rc.cpp:116
msgid "GPU device"
msgstr "Пристій GPU"
#: po/rc.cpp:119 rc.cpp:119
msgid "hddtemp cmd"
msgstr "Команда hddtemp"
#: po/rc.cpp:122 rc.cpp:122
msgid "Music player"
msgstr "Музичний плеєр"
#: po/rc.cpp:125 rc.cpp:125
msgid "MPD address"
msgstr "Адреса сервера MPD"
#: po/rc.cpp:128 rc.cpp:128
msgid "Desktop check cmd"
msgstr ""
#: po/rc.cpp:131 rc.cpp:131
msgid "<b>NOTE:</b> Player DBus interface should be an active"
msgstr ""
#: po/rc.cpp:134 rc.cpp:134
msgid "MPRIS player name"
msgstr ""
#: po/rc.cpp:137 po/rc.cpp:147 rc.cpp:137 rc.cpp:147
msgid ""
"Editable\n"
"del - remove item"
msgstr ""
"Можна редагувати\n"
"del - видалити рядок"
#: po/rc.cpp:154 rc.cpp:154
msgid "ACPI path"
msgstr ""
#: po/rc.cpp:157 rc.cpp:157
#, fuzzy
msgid "\"/sys/class/power_supply/\" by default"
msgstr "\"/sys/class/power_supply/AC/online\" за замовчуванням"
#: po/rc.cpp:160 rc.cpp:160
msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked."
msgstr ""
"Поля \"CPU\", \"Частота CPU\", \"Пам’ятьґЄ, \"Swap\" та \"Мережа\" "
"підтримують графічний тултіп. Щоб їх задіяти, просто зробіть необхідні "
"чекбокси повністю чекнутими."
#: po/rc.cpp:163 rc.cpp:163
msgid "Number of values for tooltips"
msgstr "Кількість значень для тултіпа"
#: po/rc.cpp:166 rc.cpp:166
msgid "Background"
msgstr ""
#: po/rc.cpp:169 rc.cpp:169
msgid "CPU color"
msgstr "Колір CPU"
#: po/rc.cpp:172 rc.cpp:172
msgid "CPU clock color"
msgstr "Колір частоти CPU"
#: po/rc.cpp:175 rc.cpp:175
msgid "Memory color"
msgstr "Колір пам’яті"
#: po/rc.cpp:178 rc.cpp:178
msgid "Swap color"
msgstr "Колір swap"
#: po/rc.cpp:181 rc.cpp:181
msgid "Download speed color"
msgstr "Колір швидкості скачування"
#: po/rc.cpp:184 rc.cpp:184
msgid "Upload speed color"
msgstr "Колір швидкості віддачі"
#: po/rc.cpp:187 rc.cpp:187
msgid "Battery active color"
msgstr ""
#: po/rc.cpp:190 rc.cpp:190
#, fuzzy
msgid "Battery inactive color"
msgstr "Пристрій батареї"
#: po/rc.cpp:193 rc.cpp:193
msgid ""
"Detailed information may be found on <a href=\"http://arcanis.name/projects/"
"awesome-widgets/\">project homepage</a>"
msgstr ""
"Детальна інформація може бути знайдена на <a href=\"http://arcanis.name/"
"projects/awesome-widgets/\">домашній сторінці проекту</a>"
#: po/rc.cpp:199 rc.cpp:199
msgid "Ctrl+B"
msgstr "Ctrl+B"
#: po/rc.cpp:202 rc.cpp:202
msgid "Ctrl+I"
msgstr "Ctrl+I"
#: po/rc.cpp:205 rc.cpp:205
msgid "Ctrl+U"
msgstr "Ctrl+U"
#: po/rc.cpp:208 rc.cpp:208
msgid "Add"
msgstr "Добавити"
#: po/rc.cpp:209 rc.cpp:209
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Slobodyan Victor"
#: po/rc.cpp:210 rc.cpp:210
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "sarumyan@i.ua"
#~ msgid "Battery device"
#~ msgstr "Пристрій батареї"
#~ msgid "\"/sys/class/power_supply/BAT0/capacity\" by default"
#~ msgstr "\"/sys/class/power_supply/BAT0/capacity\" за замовчуванням"
#~ msgid "Vertical layout"
#~ msgstr "Вертикальна розмітка"
#~ msgid "Add stretch to left/top of the layout"
#~ msgstr "Додати порожнє місце ліворуч/вгорі віджету"
#~ msgid "Add stretch to right/bottom of the layout"
#~ msgstr "Додати порожнє місце праворуч/внизу віджету"
#~ msgid "Form"
#~ msgstr "Form"
#~ msgid "Network directory"
#~ msgstr "Шлях до інтерфейсів"
#~ msgid "\"/sys/class/net\" by default"
#~ msgstr "\"/sys/class/net\" за замовчуванням"
#~ msgid "Custom command to run"
#~ msgstr "Виконання своєї команди"
#~ msgid "Time"
#~ msgstr "Час"
#~ msgid ""
#~ "$time - time in default format\n"
#~ "$isotime - time in ISO format\n"
#~ "$shorttime - time in short format\n"
#~ "$longtime - time in log format\n"
#~ "$custom - custom time format"
#~ msgstr ""
#~ "$time - час у стандартному форматі\n"
#~ "$isotime - час у форматі ISO\n"
#~ "$shorttime - час в короткому форматі\n"
#~ "$longtime - час у довгому форматі\n"
#~ "$custom - свій формат часу"
#~ msgid "Uptime"
#~ msgstr "Час роботи"
#~ msgid ""
#~ "$uptime - system uptime\n"
#~ "$custom - custom format"
#~ msgstr ""
#~ "$uptime - час роботи\n"
#~ "$custom - свій формат"
#~ msgid "CPU"
#~ msgstr "CPU"
#~ msgid ""
#~ "$cpu - total load CPU, %\n"
#~ "$cpu0 - load CPU for core 0, %\n"
#~ "...\n"
#~ "$cpu9 - load CPU for core 9, %\n"
#~ "...\n"
#~ "$cpuN - load CPU for core N, %"
#~ msgstr ""
#~ "$cpu - загальне завантаження CPU, %\n"
#~ "$cpu0 - завантаження CPU для ядра 0, %\n"
#~ "...\n"
#~ "$cpu9 - завантаження CPU для ядра 9, %\n"
#~ "...\n"
#~ "$cpuN - завантаження CPU для ядра N, %"
#~ msgid "CPU Clock"
#~ msgstr "Частота CPU"
#~ msgid ""
#~ "$cpucl - average CPU clock, MHz\n"
#~ "$cpucl0 - CPU clock for core 0, MHz\n"
#~ "...\n"
#~ "$cpucl9 - CPU clock for core 9, MHz\n"
#~ "...\n"
#~ "$cpuclN - CPU clock for core N, MHz"
#~ msgstr ""
#~ "$cpucl - середня частота CPU, MHz\n"
#~ "$cpucl0 - частота CPU для ядра 0, MHz\n"
#~ "...\n"
#~ "$cpucl9 - частота CPU для ядра 9, MHz\n"
#~ "...\n"
#~ "$cpuclN - частота CPU для ядра N, MHz"
#~ msgid "Temperature"
#~ msgstr "Температура"
#~ msgid "$tempN - physical temperature on device N (from 0). Example: $temp0"
#~ msgstr "$tempN - фізична температура на пристрої N (від 0). Приклад: $temp0"
#~ msgid "GPU"
#~ msgstr "GPU"
#~ msgid "$gpu - gpu usage, %"
#~ msgstr "$gpu - використання gpu, %"
#~ msgid "GPU Temp"
#~ msgstr "Температура GPU"
#~ msgid "$gputemp - physical temperature on GPU"
#~ msgstr "$gputemp - фізична температура на GPU"
#~ msgid "Memory"
#~ msgstr "Пам’ять"
#~ msgid ""
#~ "$mem - RAM usage, %\n"
#~ "$memmb - RAM usage, MB\n"
#~ "$memgb - RAM usage, GB\n"
#~ "$memtotmb - total RAM, MB\n"
#~ "$memtotgb - total RAM, GB"
#~ msgstr ""
#~ "$mem - використання RAM, %\n"
#~ "$memmb - використання RAM, MB\n"
#~ "$memgb - використання RAM, GB"
#~ msgid "Swap"
#~ msgstr "Swap"
#~ msgid ""
#~ "$swap - swap usage, %\n"
#~ "$swapmb - swap usage, MB\n"
#~ "$swapgb - swap usage, GB\n"
#~ "$swaptotmb - total swap, MB\n"
#~ "$swaptotgb - total swap, GB"
#~ msgstr ""
#~ "$swap - використання swap, %\n"
#~ "$swapmb - використання swap, MB\n"
#~ "$swapgb - використання swap, GB$swaptotmb - swap, MB\n"
#~ "$swaptotgb - swap, GB"
#~ msgid ""
#~ "$hddN - usage for mount point N (from 0), %. Example: $hdd0\n"
#~ "$hddmbN - usage for mount point N (from 0), MB. Example: $hddmb0\n"
#~ "$hddgbN - usage for mount point N (from 0), GB. Example: $hddgb0\n"
#~ "$hddtotmbN - total size of mount point N (from 0), MB. Example: "
#~ "$hddtotmb0\n"
#~ "$hddtotgbN - total size of mount point N (from 0), GB. Example: $hddtotgb0"
#~ msgstr ""
#~ "$hddN - використання точки монтування N (від 0), %. Приклад: $hdd0\n"
#~ "$hddmbN - використання точки монтування N (від 0), MB. Приклад: $hddmb0\n"
#~ "$hddgbN - використання точки монтування N (від 0), GB. Приклад: $hddgb0\n"
#~ "$hddtotmbN - розмір точки монтування N (від 0), MB. Приклад: $hddtotmb0\n"
#~ "$hddtotgbN - розмір точки монтування N (від 0), GB. Приклад: $hddtotgb0"
#~ msgid "HDD speed"
#~ msgstr "Швидкість HDD"
#~ msgid ""
#~ "$hddrN - read speed HDD N (from 0), KB/s. Example: $hddr0\n"
#~ "$hddwN - write speed HDD N (from 0), KB/s. Example: $hddw0"
#~ msgstr ""
#~ "$hddrN - швидкість читання HDD N (від 0), KB/s. Приклад: $hddr0\n"
#~ "$hddwN - швидкість запису HDD N (від 0), KB/s. Приклад: $hddw0"
#~ msgid "HDD temp"
#~ msgstr "Температура HDD"
#~ msgid ""
#~ "$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0"
#~ msgstr ""
#~ "$hddtempN - фізична температура на пристрої N (від 0). Приклад: $hddtemp"
#~ msgid "Network"
#~ msgstr "Мережа"
#~ msgid ""
#~ "$down - download speed, KB/s\n"
#~ "$up - upload speed, KB/s\n"
#~ "$netdev - current network device"
#~ msgstr ""
#~ "$down - швидкість скачування, KB/s\n"
#~ "$up - швидкість віддачі, KB/s\n"
#~ "$netdev - поточний мережевий пристрій"
#~ msgid "Battery"
#~ msgstr "Батарея"
#~ msgid ""
#~ "$bat - battery charge, %\n"
#~ "$ac - AC status"
#~ msgstr ""
#~ "$bat - заряд батареї, %\n"
#~ "$ac - статус адаптера живлення"
#~ msgid ""
#~ "$album - song album\n"
#~ "$artist - song artist\n"
#~ "$progress - song progress\n"
#~ "$time - song duration\n"
#~ "$title - song title"
#~ msgstr ""
#~ "$album - альбом\n"
#~ "$artist - виконавець\n"
#~ "$progress - прогрес\n"
#~ "$time - тривалість\n"
#~ "$title - назва"
#~ msgid "Processes"
#~ msgstr "Процеси"
#~ msgid ""
#~ "$pscount - number of running processes\n"
#~ "$pstotal - total number of running processes\n"
#~ "$ps - list of running processes comma separated"
#~ msgstr ""
#~ "$pscount - кількість запущених процесів\n"
#~ "$pstotal - загальна кількість процесів\n"
#~ "$ps - перелік запущених процесів, розділених комами"
#~ msgid ""
#~ "$pkgcountN - number of packages which are available for updates, command "
#~ "N. For example $pkgcount0"
#~ msgstr ""
#~ "$pkgcountN - кількість пакетів, що доступні для оновлення, для команди N. "
#~ "Наприклад: $pkgcount0"
#~ msgid "Custom"
#~ msgstr "Своя команда"
#~ msgid ""
#~ "$customN - get output from custom command N (from N). Example `$custom0`"
#~ msgstr ""
#~ "$customN - отримати інформацію зі своєї команди N. Наприклад `$custom0`"
#~ msgid "Widget settings"
#~ msgstr "Налаштування віджету"

View File

@ -1,357 +0,0 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Steve Lemuel <wlemuel@hotmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2014-09-21 20:18+0400\n"
"PO-Revision-Date: 2014-09-10 22:50+0800\n"
"Last-Translator: Steve Lemuel <wlemuel@hotmail.com>\n"
"Language-Team: American English <kde-i18n-doc@kde.org>\n"
"Language: en_US\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 1.5\n"
#: awesome-widget.cpp:78
msgid "Run ksysguard"
msgstr "运行任务管理器"
#: awesome-widget.cpp:81
msgid "Show README"
msgstr "显示帮助文档"
#: awesome-widget.cpp:84
msgid "Update text"
msgstr "刷新文本"
#: configuration.cpp:362 po/rc.cpp:151 rc.cpp:151
msgid "Custom command"
msgstr "自定义命令"
#: configuration.cpp:392 po/rc.cpp:141 rc.cpp:141
msgid "Package manager"
msgstr "包管理器"
#: configuration.cpp:393 po/rc.cpp:144 rc.cpp:144
msgid "Null lines"
msgstr "空行"
#: configuration.cpp:405
msgid "Widget"
msgstr "窗口小部件"
#: configuration.cpp:406
msgid "Advanced"
msgstr "高级设置"
#: configuration.cpp:407
msgid "Tooltip"
msgstr "提示"
#: configuration.cpp:408
msgid "Appearance"
msgstr "外观"
#: configuration.cpp:409
msgid "DataEngine"
msgstr "数据引擎"
#: configuration.cpp:697 configuration.cpp:711
msgid "Remove"
msgstr "移除"
#: configuration.cpp:766
msgid "Select font"
msgstr "选择字体"
#: po/rc.cpp:3 rc.cpp:3
msgid "Enable background"
msgstr "启用背景"
#: po/rc.cpp:6 rc.cpp:6
msgid "Enable popup on mouse click"
msgstr "鼠标点击时弹出对话框"
#: po/rc.cpp:9 rc.cpp:9
msgid "Custom time format"
msgstr "自定义时间格式"
#: po/rc.cpp:12 rc.cpp:12
msgid ""
"$dddd - long weekday\n"
"$ddd - short weekday\n"
"$dd - day\n"
"$d - day w\\o zero\n"
"$MMMM - long month\n"
"$MMM - short month\n"
"$MM - month\n"
"$M - month w\\o zero\n"
"$yyyy - year\n"
"$yy - short year\n"
"$hh - hours (24 only)\n"
"$h - hours w\\o zero (24 only)\n"
"$mm - minutes\n"
"$m - minutes w\\o zero\n"
"$ss - seconds\n"
"$s - seconds w\\o zero"
msgstr ""
"$dddd - 详细工作日\n"
"$ddd - 简短工作日\n"
"$dd - 日\n"
"$d - 日 w\\o 零\n"
"$MMMM - 详细月份\n"
"$MMM - 简短月份\n"
"$MM - 月\n"
"$M - 月 w\\o 零\n"
"$yyyy - 年\n"
"$yy - 简短年份\n"
"$hh - 小时 (24 小时制)\n"
"$h - 小时 w\\o 零 (24 小时制)\n"
"$mm - 分\n"
"$m - 分 w\\o 零\n"
"$ss - 秒\n"
"$s - 秒 w\\o 零"
#: po/rc.cpp:30 rc.cpp:30
msgid "Custom uptime format"
msgstr "自定义启动时间显示格式"
#: po/rc.cpp:33 rc.cpp:33
msgid ""
"$dd - uptime days\n"
"$d - uptime days without zero\n"
"$hh - uptime hours\n"
"$h - uptime hours without zero\n"
"$mm - uptime minutes\n"
"$m - uptime minutes without zero"
msgstr ""
"$dd - 运行天数\n"
"$d - 运行天数不显示0\n"
"$hh - 运行小时数\n"
"$h - 运行小时数不显示0\n"
"$mm - 运行分钟数\n"
"$m - 运行分钟数不显示0"
#: po/rc.cpp:41 rc.cpp:41
msgid "Temperature units"
msgstr "温度单位"
#: po/rc.cpp:44 rc.cpp:44
msgid "Temperature devices"
msgstr "温度传感器"
#: po/rc.cpp:47 po/rc.cpp:53 po/rc.cpp:59 po/rc.cpp:65 po/rc.cpp:71 rc.cpp:47
#: rc.cpp:53 rc.cpp:59 rc.cpp:65 rc.cpp:71
msgid "Editable"
msgstr "可编辑的"
#: po/rc.cpp:50 rc.cpp:50
#, fuzzy
msgid "Fan devices"
msgstr "外界电源设备"
#: po/rc.cpp:56 rc.cpp:56
msgid "Mount points"
msgstr "挂载点"
#: po/rc.cpp:62 rc.cpp:62
msgid "HDD devices (speed)"
msgstr "硬盘(高速)"
#: po/rc.cpp:68 rc.cpp:68
msgid "HDD devices (temp)"
msgstr "硬盘(临时)"
#: po/rc.cpp:74 rc.cpp:74
msgid "Disable auto select device and set specified device"
msgstr "禁用自动选择设备和设置特殊设备"
#: po/rc.cpp:77 rc.cpp:77
msgid "Set network device"
msgstr "设置网络设备"
#: po/rc.cpp:80 rc.cpp:80
msgid "AC online tag"
msgstr "外接电源使用中标签"
#: po/rc.cpp:83 rc.cpp:83
msgid "Line, which returns when AC is online"
msgstr "外接电源使用时显示线条"
#: po/rc.cpp:86 rc.cpp:86
msgid "AC offline tag"
msgstr "外接电源未使用标签"
#: po/rc.cpp:89 rc.cpp:89
msgid "Line, which returns when AC is offline"
msgstr "外接电源未使用时显示线条"
#: po/rc.cpp:92 rc.cpp:92
msgid "Time interval"
msgstr "时间周期"
#: po/rc.cpp:95 po/rc.cpp:196 rc.cpp:95 rc.cpp:196
msgid "Font"
msgstr "字体"
#: po/rc.cpp:98 rc.cpp:98
msgid "Font size"
msgstr "字体大小"
#: po/rc.cpp:101 rc.cpp:101
msgid "Font color"
msgstr "字体颜色"
#: po/rc.cpp:104 rc.cpp:104
msgid "Font style"
msgstr "字体样式"
#: po/rc.cpp:107 rc.cpp:107
msgid "Font weight"
msgstr "字体宽度"
#: po/rc.cpp:110 rc.cpp:110
msgid "HDD"
msgstr "硬盘"
#: po/rc.cpp:113 rc.cpp:113
msgid "MPD port"
msgstr "MPD 端口"
#: po/rc.cpp:116 rc.cpp:116
msgid "GPU device"
msgstr "GPU 设备"
#: po/rc.cpp:119 rc.cpp:119
msgid "hddtemp cmd"
msgstr "硬盘温度显示命令"
#: po/rc.cpp:122 rc.cpp:122
msgid "Music player"
msgstr "音乐播放器"
#: po/rc.cpp:125 rc.cpp:125
msgid "MPD address"
msgstr "MPD 地址"
#: po/rc.cpp:128 rc.cpp:128
msgid "Desktop check cmd"
msgstr "检测桌面命令"
#: po/rc.cpp:131 rc.cpp:131
msgid "<b>NOTE:</b> Player DBus interface should be an active"
msgstr "<b>提示:</b> 播放器 DBus 应当处于激活状态"
#: po/rc.cpp:134 rc.cpp:134
msgid "MPRIS player name"
msgstr "MPRIS 播放器名"
#: po/rc.cpp:137 po/rc.cpp:147 rc.cpp:137 rc.cpp:147
msgid ""
"Editable\n"
"del - remove item"
msgstr ""
"可编辑的\n"
"del - 移除项目"
#: po/rc.cpp:154 rc.cpp:154
msgid "ACPI path"
msgstr ""
#: po/rc.cpp:157 rc.cpp:157
#, fuzzy
msgid "\"/sys/class/power_supply/\" by default"
msgstr "默认为 \"/sys/class/power_supply/AC/online\""
#: po/rc.cpp:160 rc.cpp:160
msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked."
msgstr ""
"CPU CPU 时钟,内存,虚拟内存和网络连接标签均支持图形化提示显示。 请在相应复"
"选框中勾选以启用该功能。 "
#: po/rc.cpp:163 rc.cpp:163
msgid "Number of values for tooltips"
msgstr "提示的数值"
#: po/rc.cpp:166 rc.cpp:166
msgid "Background"
msgstr "背景"
#: po/rc.cpp:169 rc.cpp:169
msgid "CPU color"
msgstr "CPU 颜色"
#: po/rc.cpp:172 rc.cpp:172
msgid "CPU clock color"
msgstr "CPU 时钟颜色"
#: po/rc.cpp:175 rc.cpp:175
msgid "Memory color"
msgstr "内存显示颜色"
#: po/rc.cpp:178 rc.cpp:178
msgid "Swap color"
msgstr "虚拟内存颜色"
#: po/rc.cpp:181 rc.cpp:181
msgid "Download speed color"
msgstr "下载速度颜色"
#: po/rc.cpp:184 rc.cpp:184
msgid "Upload speed color"
msgstr "上传速度颜色"
#: po/rc.cpp:187 rc.cpp:187
msgid "Battery active color"
msgstr "电池使用状态提示颜色"
#: po/rc.cpp:190 rc.cpp:190
msgid "Battery inactive color"
msgstr "电池未使用状态提示颜色"
#: po/rc.cpp:193 rc.cpp:193
msgid ""
"Detailed information may be found on <a href=\"http://arcanis.name/projects/"
"awesome-widgets/\">project homepage</a>"
msgstr ""
"详情请参照 <a href=\"http://arcanis.name/projects/ awesome-widgets/\">项目主"
"页</a>"
#: po/rc.cpp:199 rc.cpp:199
msgid "Ctrl+B"
msgstr "Ctrl+B"
#: po/rc.cpp:202 rc.cpp:202
msgid "Ctrl+I"
msgstr "Ctrl+I"
#: po/rc.cpp:205 rc.cpp:205
msgid "Ctrl+U"
msgstr "Ctrl+U"
#: po/rc.cpp:208 rc.cpp:208
msgid "Add"
msgstr "添加"
#: po/rc.cpp:209 rc.cpp:209
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "用户名"
#: po/rc.cpp:210 rc.cpp:210
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "用户邮箱"
#~ msgid "Battery device"
#~ msgstr "电池设备"
#~ msgid "\"/sys/class/power_supply/BAT0/capacity\" by default"
#~ msgstr "默认为 \"/sys/class/power_supply/BAT0/capacity\""

View File

@ -24,6 +24,7 @@
#include <math.h>
#include "customlabel.h"
#include "graphicalitem.h"
#include <pdebug/pdebug.h>
@ -38,12 +39,12 @@ void AwesomeWidget::reinit()
else
textLabel->setPopupEnabled(true);
updateText(true);
textLabel->adjustSize();
mainLayout->itemAt(0, 0)->setGeometry(textLabel->geometry());
keys = getKeys();
foundKeys = findKeys();
updateNetworkDevice();
getGraphicalItems();
foundBars = findGraphicalItems();
updateNetworkDevice(false);
connectToEngine();
}
@ -63,11 +64,14 @@ void AwesomeWidget::sendNotification(const QString eventId, const QString messag
}
void AwesomeWidget::updateNetworkDevice()
void AwesomeWidget::updateNetworkDevice(const bool delay)
{
if (debug) qDebug() << PDEBUG;
values[QString("netdev")] = getNetworkDevice();
if (delay)
networkDeviceUpdate = 30;
else
values[QString("netdev")] = getNetworkDevice();
}
@ -76,11 +80,17 @@ void AwesomeWidget::updateText(const bool clear)
if (debug) qDebug() << PDEBUG;
QString text = configuration[QString("text")];
if (!clear)
if (!clear) {
text.replace(QString("$$"), QString("$\\$\\"));
for (int i=0; i<foundKeys.count(); i++)
text.replace(QString("$") + foundKeys[i], values[foundKeys[i]]);
for (int i=0; i<foundBars.count(); i++)
text.replace(QString("$") + foundBars[i], getItemByTag(foundBars[i])->image(values[foundBars[i]].toFloat()));
text.replace(QString("$\\$\\"), QString("$$"));
}
textLabel->setText(formatLine[0] + text + formatLine[1]);
update();
mainLayout->itemAt(0, 0)->updateGeometry();
updateGeometry();
}
@ -88,7 +98,7 @@ void AwesomeWidget::updateTooltip()
{
if (debug) qDebug() << PDEBUG;
toolTipView->resize(100.0 * counts[QString("tooltip")], 100.0);
toolTipView->resize(100.0 * counts[QString("tooltip")], 105.0);
// boundaries
QMap<QString, float> boundaries;
boundaries[QString("cpu")] = 100.0;
@ -126,7 +136,7 @@ void AwesomeWidget::updateTooltip()
if (tooltipValues.contains(QString("up"))) trueKeys.append(QString("up"));
if (tooltipValues.contains(QString("bat"))) trueKeys.append(QString("bat"));
for (int i=0; i<trueKeys.count(); i++) {
float normX = 100.0 / (tooltipValues[trueKeys[i]].count() + 0.0);
float normX = 100.0 / (float)tooltipValues[trueKeys[i]].count();
float normY = 100.0 / (1.5 * boundaries[trueKeys[i]]);
if (trueKeys[i] == QString("bat"))
isBattery = true;
@ -137,9 +147,9 @@ void AwesomeWidget::updateTooltip()
if (down) shift -= 100.0;
for (int j=0; j<tooltipValues[trueKeys[i]].count()-1; j++) {
float x1 = j * normX + shift;
float y1 = - fabs(tooltipValues[trueKeys[i]][j]) * normY;
float y1 = - fabs(tooltipValues[trueKeys[i]][j]) * normY + 5.0;
float x2 = (j + 1) * normX + shift;
float y2 = - fabs(tooltipValues[trueKeys[i]][j+1]) * normY;
float y2 = - fabs(tooltipValues[trueKeys[i]][j+1]) * normY + 5.0;
if (isBattery) {
if (tooltipValues[trueKeys[i]][j+1] > 0)
pen.setColor(QColor(configuration[QString("batteryColor")]));

View File

@ -64,41 +64,16 @@
<layout class="QHBoxLayout" name="layout_tooltipNum">
<item>
<widget class="QLabel" name="label_tooltipNum">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Number of values for tooltips</string>
</property>
</widget>
</item>
<item>
<spacer name="spacer_tooltipNum">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>19</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSpinBox" name="spinBox_tooltipNum">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_tooltipNum">
<property name="minimum">
<number>50</number>
</property>
@ -119,11 +94,8 @@
<layout class="QHBoxLayout" name="layout_background">
<item>
<widget class="QCheckBox" name="checkBox_background">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="text">
<string>Background</string>
@ -134,27 +106,7 @@
</widget>
</item>
<item>
<spacer name="spacer_background">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="KColorCombo" name="kcolorcombo_background">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
</widget>
<widget class="KColorCombo" name="kcolorcombo_background"/>
</item>
</layout>
</item>
@ -162,11 +114,8 @@
<layout class="QHBoxLayout" name="layout_cpuColor">
<item>
<widget class="QCheckBox" name="checkBox_cpu">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="text">
<string>CPU color</string>
@ -177,27 +126,7 @@
</widget>
</item>
<item>
<spacer name="spacer_cpuColor">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="KColorCombo" name="kcolorcombo_cpu">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
</widget>
<widget class="KColorCombo" name="kcolorcombo_cpu"/>
</item>
</layout>
</item>
@ -205,11 +134,8 @@
<layout class="QHBoxLayout" name="layout_cpuclockColor">
<item>
<widget class="QCheckBox" name="checkBox_cpuclock">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="text">
<string>CPU clock color</string>
@ -220,27 +146,7 @@
</widget>
</item>
<item>
<spacer name="spacer_cpuclockColor">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="KColorCombo" name="kcolorcombo_cpuclock">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
</widget>
<widget class="KColorCombo" name="kcolorcombo_cpuclock"/>
</item>
</layout>
</item>
@ -248,11 +154,8 @@
<layout class="QHBoxLayout" name="layout_memColor">
<item>
<widget class="QCheckBox" name="checkBox_mem">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="text">
<string>Memory color</string>
@ -263,27 +166,7 @@
</widget>
</item>
<item>
<spacer name="spacer_memColor">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="KColorCombo" name="kcolorcombo_mem">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
</widget>
<widget class="KColorCombo" name="kcolorcombo_mem"/>
</item>
</layout>
</item>
@ -291,11 +174,8 @@
<layout class="QHBoxLayout" name="layout_swapColor">
<item>
<widget class="QCheckBox" name="checkBox_swap">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="text">
<string>Swap color</string>
@ -306,27 +186,7 @@
</widget>
</item>
<item>
<spacer name="spacer_swapColor">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="KColorCombo" name="kcolorcombo_swap">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
</widget>
<widget class="KColorCombo" name="kcolorcombo_swap"/>
</item>
</layout>
</item>
@ -334,11 +194,8 @@
<layout class="QHBoxLayout" name="layout_downColor">
<item>
<widget class="QCheckBox" name="checkBox_down">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="text">
<string>Download speed color</string>
@ -349,83 +206,24 @@
</widget>
</item>
<item>
<spacer name="spacer_downColor">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="KColorCombo" name="kcolorcombo_down">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
</widget>
<widget class="KColorCombo" name="kcolorcombo_down"/>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_upColor">
<item>
<spacer name="spacer_upColorLeft">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_up">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Upload speed color</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="spacer_upColor">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="KColorCombo" name="kcolorcombo_up">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
</widget>
<widget class="KColorCombo" name="kcolorcombo_up"/>
</item>
</layout>
</item>
@ -433,11 +231,8 @@
<layout class="QHBoxLayout" name="layout_batteryColor">
<item>
<widget class="QCheckBox" name="checkBox_battery">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="text">
<string>Battery active color</string>
@ -448,83 +243,24 @@
</widget>
</item>
<item>
<spacer name="spacer_batteryColor">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="KColorCombo" name="kcolorcombo_battery">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
</widget>
<widget class="KColorCombo" name="kcolorcombo_battery"/>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_batteryInColor">
<item>
<spacer name="space_batteryIn">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_batteryIn">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Battery inactive color</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="spacer_batteryInColor">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="KColorCombo" name="kcolorcombo_batteryIn">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
</widget>
<widget class="KColorCombo" name="kcolorcombo_batteryIn"/>
</item>
</layout>
</item>

View File

@ -6,8 +6,6 @@ message (STATUS "Subproject ${SUBPROJECT}")
find_package (KDE4 REQUIRED)
add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
add_subdirectory (po)
include (KDE4Defaults)
include_directories (${CMAKE_SOURCE_DIR}
${CMAKE_BINARY_DIR}

View File

@ -49,45 +49,16 @@
<layout class="QHBoxLayout" name="layout_fontActive">
<item>
<widget class="QLabel" name="label_fontActive">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Font</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_fontActive">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QFontComboBox" name="fontComboBox_fontActive">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>180</width>
<height>23</height>
</size>
</property>
</widget>
<widget class="QFontComboBox" name="fontComboBox_fontActive"/>
</item>
</layout>
</item>
@ -95,47 +66,16 @@
<layout class="QHBoxLayout" name="layout_fontSizeActive">
<item>
<widget class="QLabel" name="label_fontSizeActive">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Font size</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_fontSizeActive">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSpinBox" name="spinBox_fontSizeActive">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>23</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_fontSizeActive">
<property name="minimum">
<number>7</number>
</property>
@ -153,45 +93,16 @@
<layout class="QHBoxLayout" name="layout_fontColorActive">
<item>
<widget class="QLabel" name="label_fontColorActive">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Font color</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_fontColorActive">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="KColorCombo" name="kcolorcombo_fontColorActive">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>23</height>
</size>
</property>
</widget>
<widget class="KColorCombo" name="kcolorcombo_fontColorActive"/>
</item>
</layout>
</item>
@ -199,47 +110,16 @@
<layout class="QHBoxLayout" name="layout_fontWeightActive">
<item>
<widget class="QLabel" name="label_fontWeightActive">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Font weight</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_fontWeightActive">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSpinBox" name="spinBox_fontWeightActive">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>23</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_fontWeightActive">
<property name="minimum">
<number>100</number>
</property>
@ -260,44 +140,16 @@
<layout class="QHBoxLayout" name="layout_fontStyleActive">
<item>
<widget class="QLabel" name="label_fontStyleActive">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Font style</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_fontStyleActive">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QComboBox" name="comboBox_fontStyleActive">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>23</height>
</size>
</property>
<item>
<property name="text">
<string notr="true">normal</string>
@ -346,8 +198,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>406</width>
<height>167</height>
<width>448</width>
<height>289</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
@ -355,45 +207,16 @@
<layout class="QHBoxLayout" name="layout_fontInactive">
<item>
<widget class="QLabel" name="label_fontInactive">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Font</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_fontInactive">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QFontComboBox" name="fontComboBox_fontInactive">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>180</width>
<height>23</height>
</size>
</property>
</widget>
<widget class="QFontComboBox" name="fontComboBox_fontInactive"/>
</item>
</layout>
</item>
@ -401,47 +224,16 @@
<layout class="QHBoxLayout" name="layout_fontSizeInactive">
<item>
<widget class="QLabel" name="label_fontSizeInactive">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Font size</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_fontSizeInactive">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSpinBox" name="spinBox_fontSizeInactive">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>23</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_fontSizeInactive">
<property name="minimum">
<number>7</number>
</property>
@ -459,45 +251,16 @@
<layout class="QHBoxLayout" name="layout_fontColorInactive">
<item>
<widget class="QLabel" name="label_fontColorInactive">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Font color</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_fontColorInactive">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="KColorCombo" name="kcolorcombo_fontColorInactive">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>23</height>
</size>
</property>
</widget>
<widget class="KColorCombo" name="kcolorcombo_fontColorInactive"/>
</item>
</layout>
</item>
@ -505,47 +268,16 @@
<layout class="QHBoxLayout" name="layout_fontWeightInactive">
<item>
<widget class="QLabel" name="label_fontWeightInactive">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Font weight</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_fontWeightInactive">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSpinBox" name="spinBox_fontWeightInactive">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>23</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_fontWeightInactive">
<property name="minimum">
<number>100</number>
</property>
@ -566,44 +298,16 @@
<layout class="QHBoxLayout" name="layout_fontStyleInactive">
<item>
<widget class="QLabel" name="label_fontStyleInactive">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Font style</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_fontStyleInactive">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QComboBox" name="comboBox_fontStyleInactive">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>23</height>
</size>
</property>
<item>
<property name="text">
<string notr="true">normal</string>

View File

@ -24,20 +24,24 @@
#include <Plasma/Containment>
#include <Plasma/Corona>
#include <Plasma/Theme>
#include <Plasma/ToolTipManager>
#include <QDebug>
#include <QDesktopWidget>
#include <QFile>
#include <QGraphicsGridLayout>
#include <QGraphicsSceneMouseEvent>
#include <QGraphicsProxyWidget>
#include <QGraphicsView>
#include <QMouseEvent>
#include <QProcessEnvironment>
#include <QTextCodec>
#include <QTimer>
#include <fontdialog/fontdialog.h>
#include <pdebug/pdebug.h>
CustomPlasmaLabel::CustomPlasmaLabel(DesktopPanel *wid, const int num, const bool debugCmd)
: Plasma::Label(wid),
: QLabel(0),
debug(debugCmd),
number(num),
widget(wid)
@ -48,6 +52,7 @@ CustomPlasmaLabel::CustomPlasmaLabel(DesktopPanel *wid, const int num, const boo
CustomPlasmaLabel::~CustomPlasmaLabel()
{
if (debug) qDebug() << PDEBUG;
}
@ -59,13 +64,26 @@ int CustomPlasmaLabel::getNumber()
}
void CustomPlasmaLabel::mousePressEvent(QGraphicsSceneMouseEvent *event)
void CustomPlasmaLabel::enterEvent(QEvent *event)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Event" << event->type();
if (event->type() == QEvent::Enter)
widget->paintTooltip(number);
emit(QLabel::enterEvent(event));
}
void CustomPlasmaLabel::mousePressEvent(QMouseEvent *event)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Get signal" << event->button();
if (event->button() == Qt::LeftButton)
widget->setCurrentDesktop(number);
emit(QLabel::mousePressEvent(event));
}
@ -94,6 +112,7 @@ DesktopPanel::DesktopPanel(QObject *parent, const QVariantList &args)
DesktopPanel::~DesktopPanel()
{
if (debug) qDebug() << PDEBUG;
}
@ -101,17 +120,53 @@ void DesktopPanel::init()
{
if (debug) qDebug() << PDEBUG;
extsysmonEngine = dataEngine(QString("ext-sysmon"));
layout = new QGraphicsGridLayout();
layout->setContentsMargins(1, 1, 1, 1);
setLayout(layout);
currentDesktop = 1;
// tooltip
toolTip = Plasma::ToolTipContent();
toolTipScene = new QGraphicsScene();
toolTipView = new QGraphicsView(toolTipScene);
toolTipView->setStyleSheet(QString("background: transparent"));
toolTipView->setContentsMargins(0, 0, 0, 0);
toolTipView->setFrameShape(QFrame::NoFrame);
toolTipView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
toolTipView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
Plasma::ToolTipManager::self()->setContent(this, toolTip);
// read variables
configChanged();
connect(this, SIGNAL(activate()), this, SLOT(changePanelsState()));
connect(KWindowSystem::self(), SIGNAL(currentDesktopChanged(int)), this, SLOT(updateText(int)));
}
DesktopPanel::DesktopWindowsInfo DesktopPanel::getInfoByDesktop(const int num)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Number" << num;
DesktopWindowsInfo info;
info.desktop = KWindowSystem::workArea(num);
QList<WId> windows = KWindowSystem::windows();
for (int i=0; i<windows.count(); i++) {
KWindowInfo winInfo = KWindowSystem::windowInfo(windows[i],
NET::Property::WMDesktop | NET::Property::WMGeometry |
NET::Property::WMState | NET::Property::WMWindowType);
if (!winInfo.isOnDesktop(num)) continue;
if (winInfo.windowType(NET::WindowTypeMask::NormalMask) == NET::WindowType::Normal) {
if (winInfo.isMinimized()) continue;
info.windows.append(winInfo.geometry());
info.winId.append(windows[i]);
} else if (winInfo.windowType(NET::WindowTypeMask::DesktopMask) == NET::WindowType::Desktop) {
info.desktopId.append(windows[i]);
}
}
return info;
}
@ -133,7 +188,7 @@ QString DesktopPanel::panelLocationToStr(Plasma::Location loc)
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Location" << loc;
switch(loc) {
switch (loc) {
case Plasma::TopEdge:
return i18n("Top Edge");
case Plasma::BottomEdge:
@ -156,7 +211,7 @@ QString DesktopPanel::parsePattern(const QString rawLine, const int num)
QString line, fullMark, mark;
line = rawLine;
if (currentDesktop == num + 1)
if (KWindowSystem::currentDesktop() == num + 1)
mark = configuration[QString("mark")];
else
mark = QString("");
@ -179,36 +234,45 @@ QString DesktopPanel::parsePattern(const QString rawLine, const int num)
void DesktopPanel::reinit()
{
if (debug) qDebug() << PDEBUG;
if (desktopNames.isEmpty()) return;
// clear
// labels
for (int i=0; i<labels.count(); i++) {
layout->removeItem(labels[i]);
for (int i=0; i<proxyWidgets.count(); i++) {
layout->removeItem(proxyWidgets[i]);
proxyWidgets[i]->setWidget(0);
delete labels[i];
delete proxyWidgets[i];
}
labels.clear();
// layout
layout = new QGraphicsGridLayout();
layout->setContentsMargins(1, 1, 1, 1);
setLayout(layout);
proxyWidgets.clear();
desktopNames.clear();
// add
int total = KWindowSystem::numberOfDesktops();
for (int i=1; i<total+1; i++)
desktopNames.append(KWindowSystem::desktopName(i));
// layout
if (configuration[QString("background")].toInt() == 0)
setBackgroundHints(NoBackground);
// labels
for (int i=0; i<desktopNames.count(); i++) {
labels.append(new CustomPlasmaLabel(this, i));
proxyWidgets.append(new QGraphicsProxyWidget(this));
labels.append(new CustomPlasmaLabel(this, i, debug));
labels[i]->setWordWrap(false);
labels[i]->setAttribute(Qt::WA_NoSystemBackground, true);
labels[i]->setAttribute(Qt::WA_TranslucentBackground, true);
proxyWidgets[i]->setWidget(labels[i]);
if (configuration[QString("layout")].toInt() == 0)
layout->addItem(labels[i], 0, i);
layout->addItem(proxyWidgets[i], 0, i);
else
layout->addItem(labels[i], i, 0);
layout->addItem(proxyWidgets[i], i, 0);
}
updateText(true);
updateText(KWindowSystem::currentDesktop());
for (int i=0; i<proxyWidgets.count(); i++) {
labels[i]->adjustSize();
proxyWidgets[i]->setGeometry(labels[i]->geometry());
}
emit(KWindowSystem::setCurrentDesktop(KWindowSystem::currentDesktop()));
}
@ -240,56 +304,96 @@ void DesktopPanel::changePanelsState()
}
void DesktopPanel::paintTooltip(const int active)
{
if (debug) qDebug() << PDEBUG;
if (active == activeTooltip) return;
// prepare
// clear
toolTip.setImage(0);
toolTip.setWindowsToPreview(QList<WId>());
activeTooltip = active;
DesktopWindowsInfo info = getInfoByDesktop(active + 1);
float margin = 5.0 * info.desktop.width() / 400.0;
toolTipView->resize(info.desktop.width() + 2.0 * margin, info.desktop.height() + 2.0 * margin);
toolTipScene->clear();
toolTipScene->setBackgroundBrush(QBrush(Qt::NoBrush));
// borders
toolTipScene->addLine(0, 0, 0, info.desktop.height() + 2.0 * margin);
toolTipScene->addLine(0, info.desktop.height() + 2.0 * margin,
info.desktop.width() + 2.0 * margin, info.desktop.height() + 2.0 * margin);
toolTipScene->addLine(info.desktop.width() + 2.0 * margin, info.desktop.height() + 2.0 * margin,
info.desktop.width() + 2.0 * margin, 0);
toolTipScene->addLine(info.desktop.width() + 2.0 * margin, 0, 0, 0);
if (configuration[QString("tooltipType")].toInt() == 1) {
// only contours
QPen pen = QPen();
pen.setWidthF(2.0 * info.desktop.width() / 400.0);
pen.setColor(QColor(configuration[QString("tooltipColor")]));
for (int i=0; i<info.windows.count(); i++) {
toolTipScene->addLine(info.windows[i].left() + margin, info.windows[i].bottom() + margin,
info.windows[i].left() + margin, info.windows[i].top() + margin, pen);
toolTipScene->addLine(info.windows[i].left() + margin, info.windows[i].top() + margin,
info.windows[i].right() + margin, info.windows[i].top() + margin, pen);
toolTipScene->addLine(info.windows[i].right() + margin, info.windows[i].top() + margin,
info.windows[i].right() + margin, info.windows[i].bottom() + margin, pen);
toolTipScene->addLine(info.windows[i].right() + margin, info.windows[i].bottom() + margin,
info.windows[i].left() + margin, info.windows[i].bottom() + margin, pen);
}
toolTip.setImage(QPixmap::grabWidget(toolTipView).scaledToWidth(configuration[QString("tooltipWidth")].toInt()));
} else if (configuration[QString("tooltipType")].toInt() == 2) {
// clean desktop
toolTip.setWindowsToPreview(info.desktopId);
} else {
// desktop preview
toolTip.setWindowsToPreview(info.winId);
}
Plasma::ToolTipManager::self()->setContent(this, toolTip);
}
void DesktopPanel::setCurrentDesktop(const int number)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Set desktop" << number + 1;
QString cmd = parsePattern(configuration[QString("desktopcmd")], number);
if (debug) qDebug() << PDEBUG << ":" << "Run cmd " << cmd;
QProcess command;
command.startDetached(cmd);
KWindowSystem::setCurrentDesktop(number + 1);
}
void DesktopPanel::updateText(const bool first)
void DesktopPanel::updateText(const int active)
{
if (debug) qDebug() << PDEBUG;
QString line, text;
for (int i=0; i<labels.count(); i++) {
if (debug) qDebug() << PDEBUG << ":" << "Label" << i;
if (first)
line = configuration[QString("pattern")];
else
line = parsePattern(configuration[QString("pattern")], i);
if (currentDesktop == i + 1)
line = parsePattern(configuration[QString("pattern")], i);
if (active == i + 1)
text = currentFormatLine[0] + line + currentFormatLine[1];
else
text = formatLine[0] + line + formatLine[1];
labels[i]->setText(text);
}
update();
}
// data engine interaction
void DesktopPanel::dataUpdated(const QString &sourceName, const Plasma::DataEngine::Data &data)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Source name" << sourceName;
if (data.keys().count() == 0)
return;
if (sourceName == QString("desktop")) {
currentDesktop = data[QString("currentNumber")].toInt();
if (desktopNames.isEmpty()) {
desktopNames = data[QString("list")].toString().split(QString(";;"));
reinit();
int height = 0;
int width = 0;
for (int i=0; i<proxyWidgets.count(); i++) {
labels[i]->adjustSize();
proxyWidgets[i]->setGeometry(labels[i]->geometry());
if (configuration[QString("layout")].toInt() == 0) {
width += proxyWidgets[i]->geometry().width();
if (height < proxyWidgets[i]->geometry().height())
height = proxyWidgets[i]->geometry().height();
} else {
height += proxyWidgets[i]->geometry().height();
if (width < proxyWidgets[i]->geometry().width())
width = proxyWidgets[i]->geometry().width();
}
updateText();
}
layout->setMinimumSize(width, height);
}
@ -306,6 +410,13 @@ void DesktopPanel::createConfigurationInterface(KConfigDialog *parent)
uiToggleConfig.setupUi(toggleWidget);
uiWidConfig.textEdit_elements->setPlainText(configuration[QString("pattern")]);
if (configuration[QString("tooltip")].toInt() == 0)
uiWidConfig.checkBox_tooltip->setCheckState(Qt::Unchecked);
else
uiWidConfig.checkBox_tooltip->setCheckState(Qt::Checked);
uiWidConfig.comboBox_tooltipType->setCurrentIndex(configuration[QString("tooltipType")].toInt());
uiWidConfig.spinBox_tooltip->setValue(configuration[QString("tooltipWidth")].toInt());
uiWidConfig.kcolorcombo_tooltipColor->setColor(QColor(configuration[QString("tooltipColor")]));
if (configuration[QString("background")].toInt() == 0)
uiWidConfig.checkBox_background->setCheckState(Qt::Unchecked);
else
@ -314,10 +425,8 @@ void DesktopPanel::createConfigurationInterface(KConfigDialog *parent)
uiWidConfig.checkBox_layout->setCheckState(Qt::Unchecked);
else
uiWidConfig.checkBox_layout->setCheckState(Qt::Checked);
uiWidConfig.spinBox_interval->setValue(configuration[QString("interval")].toInt());
uiWidConfig.comboBox_mark->setItemText(uiWidConfig.comboBox_mark->count()-1, configuration[QString("mark")]);
uiWidConfig.comboBox_mark->setCurrentIndex(uiWidConfig.comboBox_mark->count()-1);
uiWidConfig.lineEdit_desktopcmd->setText(configuration[QString("desktopcmd")]);
KConfigGroup cg = config();
CFont font(cg.readEntry("currentFontFamily", "Terminus"));
@ -386,15 +495,16 @@ void DesktopPanel::configAccepted()
{
if (debug) qDebug() << PDEBUG;
extsysmonEngine->disconnectSource(QString("desktop"), this);
KConfigGroup cg = config();
cg.writeEntry("pattern", uiWidConfig.textEdit_elements->toPlainText());
cg.writeEntry("tooltip", QString::number(uiWidConfig.checkBox_tooltip->checkState()));
cg.writeEntry("tooltipType", QString::number(uiWidConfig.comboBox_tooltipType->currentIndex()));
cg.writeEntry("tooltipWidth", QString::number(uiWidConfig.spinBox_tooltip->value()));
cg.writeEntry("tooltipColor", uiWidConfig.kcolorcombo_tooltipColor->color().name());
cg.writeEntry("background", QString::number(uiWidConfig.checkBox_background->checkState()));
cg.writeEntry("layout", QString::number(uiWidConfig.checkBox_layout->checkState()));
cg.writeEntry("interval", QString::number(uiWidConfig.spinBox_interval->value()));
cg.writeEntry("mark", uiWidConfig.comboBox_mark->currentText());
cg.writeEntry("desktopcmd", uiWidConfig.lineEdit_desktopcmd->text());
cg.writeEntry("currentFontFamily", uiAppConfig.fontComboBox_fontActive->currentFont().family());
cg.writeEntry("currentFontSize", uiAppConfig.spinBox_fontSizeActive->value());
@ -426,15 +536,15 @@ void DesktopPanel::configChanged()
KConfigGroup cg = config();
configuration[QString("pattern")] = cg.readEntry("pattern", "[$fullmark$number/$total: $name]");
configuration[QString("tooltip")] = cg.readEntry("tooltip", "2");
configuration[QString("tooltipType")] = cg.readEntry("tooltipType", "0");
configuration[QString("tooltipWidth")] = cg.readEntry("tooltipWidth", "200");
configuration[QString("tooltipColor")] = cg.readEntry("tooltipColor", "#ffffff");
configuration[QString("background")] = cg.readEntry("background", "2");
configuration[QString("desktopcmd")] = cg.readEntry("desktopcmd", "qdbus org.kde.kwin /KWin setCurrentDesktop $number");
configuration[QString("interval")] = cg.readEntry("interval", "1000");
configuration[QString("layout")] = cg.readEntry("layout", "0");
configuration[QString("mark")] = cg.readEntry("mark", "¤");
configuration[QString("panels")] = cg.readEntry("panels", "-1");
extsysmonEngine->connectSource(QString("desktop"), this, configuration[QString("interval")].toInt());
CFont font = CFont(cg.readEntry("currentFontFamily", "Terminus"));
font.setPointSize(cg.readEntry("currentFontSize", 10));
font.setCurrentColor(QColor(cg.readEntry("currentFontColor", "#ff0000")));

View File

@ -20,8 +20,8 @@
#define DESKTOP_PANEL_H
#include <Plasma/Applet>
#include <Plasma/DataEngine>
#include <Plasma/Label>
#include <Plasma/ToolTipContent>
#include <QLabel>
#include <ui_appearance.h>
#include <ui_toggle.h>
@ -29,21 +29,25 @@
class QGraphicsGridLayout;
class QGraphicsProxyWidget;
class QGraphicsScene;
class DesktopPanel;
class CustomPlasmaLabel : public Plasma::Label
class CustomPlasmaLabel : public QLabel
{
Q_OBJECT
public:
CustomPlasmaLabel(DesktopPanel *wid, const int num,
CustomPlasmaLabel(DesktopPanel *wid,
const int num,
const bool debugCmd = false);
~CustomPlasmaLabel();
int getNumber();
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *event);
void enterEvent(QEvent *event);
void mousePressEvent(QMouseEvent *event);
private:
// debug
@ -58,26 +62,34 @@ class DesktopPanel : public Plasma::Applet
{
Q_OBJECT
typedef struct {
QRect desktop;
QList<WId> desktopId;
QList<QRect> windows;
QList<WId> winId;
} DesktopWindowsInfo;
public:
DesktopPanel(QObject *parent, const QVariantList &args);
~DesktopPanel();
void init();
DesktopWindowsInfo getInfoByDesktop(const int num);
QString parsePattern(const QString rawLine, const int num);
public slots:
// dataengine
void dataUpdated(const QString &sourceName, const Plasma::DataEngine::Data &data);
// configuration interface
void configAccepted();
void configChanged();
// events
void changePanelsState();
void paintTooltip(const int active);
void setCurrentDesktop(const int number);
private slots:
void reinit();
void setFontFormating();
void setFormating();
void updateText(const int active);
protected:
void createConfigurationInterface(KConfigDialog *parent);
@ -86,16 +98,18 @@ private:
// functions
QList<Plasma::Containment *> getPanels();
QString panelLocationToStr(Plasma::Location loc);
void updateText(const bool first = false);
// ui
QGraphicsGridLayout *layout;
QGraphicsGridLayout *layout = nullptr;
QList<QGraphicsProxyWidget *> proxyWidgets;
QList<CustomPlasmaLabel *> labels;
// tooltip
Plasma::ToolTipContent toolTip;
QGraphicsScene *toolTipScene = nullptr;
QGraphicsView *toolTipView = nullptr;
// debug
bool debug;
// data engine
int currentDesktop;
int oldState;
Plasma::DataEngine *extsysmonEngine;
int activeTooltip = -1;
int oldState = 0;
// configuration interface
Ui::AppearanceWidget uiAppConfig;
Ui::ConfigWindow uiWidConfig;

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_desktop-panel.mo)
list (APPEND _gmoFiles ${_gmoFile})
endforeach (_current_PO_FILE)
add_custom_target (pofiles ALL DEPENDS ${_gmoFiles})

View File

@ -1,173 +0,0 @@
# Copyright (C) 2014
# This file is distributed under the same license as the PyTextMonitor package.
#
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2014-09-15 10:02+0400\n"
"PO-Revision-Date: 2014-09-15 10:02+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: English <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"
#: desktop-panel.cpp:141
msgid "Top Edge"
msgstr "Top Edge"
#: desktop-panel.cpp:143
msgid "Bottom Edge"
msgstr "Bottom Edge"
#: desktop-panel.cpp:145
msgid "Left Edge"
msgstr "Left Edge"
#: desktop-panel.cpp:147
msgid "Right Edge"
msgstr "Right Edge"
#: desktop-panel.cpp:149
msgid "Unknown Position (%1)"
msgstr "Unknown Position (%1)"
#: desktop-panel.cpp:367
msgid "Widget"
msgstr "Widget"
#: desktop-panel.cpp:368
msgid "Appearance"
msgstr "Appearance"
#: desktop-panel.cpp:369
msgid "Toggle panels"
msgstr "Toggle panels"
#: desktop-panel.cpp:489
msgid "Select font"
msgstr "Select font"
#: po/rc.cpp:3 rc.cpp:3
msgid "Active desktop"
msgstr "Active desktop"
#: po/rc.cpp:6 po/rc.cpp:24 po/rc.cpp:63 rc.cpp:6 rc.cpp:24 rc.cpp:63
msgid "Font"
msgstr "Font"
#: po/rc.cpp:9 po/rc.cpp:27 rc.cpp:9 rc.cpp:27
msgid "Font size"
msgstr "Font size"
#: po/rc.cpp:12 po/rc.cpp:30 rc.cpp:12 rc.cpp:30
msgid "Font color"
msgstr "Font color"
#: po/rc.cpp:15 po/rc.cpp:33 rc.cpp:15 rc.cpp:33
msgid "Font weight"
msgstr "Font weight"
#: po/rc.cpp:18 po/rc.cpp:36 rc.cpp:18 rc.cpp:36
msgid "Font style"
msgstr "Font style"
#: po/rc.cpp:21 rc.cpp:21
msgid "Inactive desktop"
msgstr "Inactive desktop"
#: po/rc.cpp:39 rc.cpp:39
msgid "To control panels please set widget shortcut."
msgstr "To control panels please set widget shortcut."
#: po/rc.cpp:42 rc.cpp:42
msgid "Time interval"
msgstr "Time interval"
#: po/rc.cpp:45 rc.cpp:45
msgid "Enable background"
msgstr "Enable background"
#: po/rc.cpp:48 rc.cpp:48
msgid "Mark"
msgstr "Mark"
#: po/rc.cpp:51 rc.cpp:51
msgid "A mark which will be shown if this desktop is active"
msgstr "A mark which will be shown if this desktop is active"
#: po/rc.cpp:54 rc.cpp:54
msgid "Vertical layout"
msgstr "Vertical layout"
#: po/rc.cpp:57 rc.cpp:57
msgid "Command to change desktop"
msgstr "Command to change desktop"
#: po/rc.cpp:60 rc.cpp:60
msgid "Command which will change the current desktop"
msgstr "Command which will change the current desktop"
#: po/rc.cpp:66 rc.cpp:66
msgid "Ctrl+B"
msgstr "Ctrl+B"
#: po/rc.cpp:69 rc.cpp:69
msgid "Ctrl+I"
msgstr "Ctrl+I"
#: po/rc.cpp:72 rc.cpp:72
msgid "Ctrl+U"
msgstr "Ctrl+U"
#: po/rc.cpp:75 rc.cpp:75
msgid "Add"
msgstr "Add"
#: po/rc.cpp:76 rc.cpp:76
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Evgeniy Alekseev"
#: po/rc.cpp:77 rc.cpp:77
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "esalexeev@gmail.com"
#~ msgid "Add stretch to left/top of the layout"
#~ msgstr "Add stretch to left/top of the layout"
#~ msgid "Add stretch to right/bottom of the layout"
#~ msgstr "Add stretch to right/bottom of the layout"
#~ msgid "Pattern"
#~ msgstr "Pattern"
#~ msgid ""
#~ "$mark - show mark if the current desktop is active\n"
#~ "$name - desktop name\n"
#~ "$number - desktop number\n"
#~ "$total - total number of desktops"
#~ msgstr ""
#~ "$mark - show mark if the current desktop is active\n"
#~ "$name - desktop name\n"
#~ "$number - desktop number\n"
#~ "$total - total number of desktops"
#~ msgid "Set font family"
#~ msgstr "Set font family"
#~ msgid "Set font color"
#~ msgstr "Set font color"
#~ msgid "Set font weight"
#~ msgstr "Set font weight"
#~ msgid "Set font style"
#~ msgstr "Set font style"

View File

@ -1,147 +0,0 @@
# Copyright (C) 2014
# This file is distributed under the same license as the PyTextMonitor package.
#
# Ernesto Avilés Vzqz <whippiii@gmail.com>, 2014.
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2014-09-15 10:02+0400\n"
"PO-Revision-Date: 2014-06-05 10:21+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Spanish <kde-spanish@lists.kde.ru>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 1.5\n"
#: desktop-panel.cpp:141
msgid "Top Edge"
msgstr ""
#: desktop-panel.cpp:143
msgid "Bottom Edge"
msgstr ""
#: desktop-panel.cpp:145
msgid "Left Edge"
msgstr ""
#: desktop-panel.cpp:147
msgid "Right Edge"
msgstr ""
#: desktop-panel.cpp:149
msgid "Unknown Position (%1)"
msgstr ""
#: desktop-panel.cpp:367
msgid "Widget"
msgstr "Widget"
#: desktop-panel.cpp:368
msgid "Appearance"
msgstr "Apariencia"
#: desktop-panel.cpp:369
msgid "Toggle panels"
msgstr ""
#: desktop-panel.cpp:489
msgid "Select font"
msgstr ""
#: po/rc.cpp:3 rc.cpp:3
msgid "Active desktop"
msgstr ""
#: po/rc.cpp:6 po/rc.cpp:24 po/rc.cpp:63 rc.cpp:6 rc.cpp:24 rc.cpp:63
msgid "Font"
msgstr "Fuente"
#: po/rc.cpp:9 po/rc.cpp:27 rc.cpp:9 rc.cpp:27
msgid "Font size"
msgstr "Tamaño de fuente"
#: po/rc.cpp:12 po/rc.cpp:30 rc.cpp:12 rc.cpp:30
msgid "Font color"
msgstr "Color de fuente"
#: po/rc.cpp:15 po/rc.cpp:33 rc.cpp:15 rc.cpp:33
msgid "Font weight"
msgstr "Grosor de la fuente"
#: po/rc.cpp:18 po/rc.cpp:36 rc.cpp:18 rc.cpp:36
msgid "Font style"
msgstr "Estilo de fuente"
#: po/rc.cpp:21 rc.cpp:21
msgid "Inactive desktop"
msgstr ""
#: po/rc.cpp:39 rc.cpp:39
msgid "To control panels please set widget shortcut."
msgstr ""
#: po/rc.cpp:42 rc.cpp:42
msgid "Time interval"
msgstr "Intervalo de tiempo"
#: po/rc.cpp:45 rc.cpp:45
msgid "Enable background"
msgstr ""
#: po/rc.cpp:48 rc.cpp:48
msgid "Mark"
msgstr ""
#: po/rc.cpp:51 rc.cpp:51
msgid "A mark which will be shown if this desktop is active"
msgstr ""
#: po/rc.cpp:54 rc.cpp:54
msgid "Vertical layout"
msgstr "Orientación vertical"
#: po/rc.cpp:57 rc.cpp:57
msgid "Command to change desktop"
msgstr ""
#: po/rc.cpp:60 rc.cpp:60
msgid "Command which will change the current desktop"
msgstr ""
#: po/rc.cpp:66 rc.cpp:66
msgid "Ctrl+B"
msgstr ""
#: po/rc.cpp:69 rc.cpp:69
msgid "Ctrl+I"
msgstr ""
#: po/rc.cpp:72 rc.cpp:72
msgid "Ctrl+U"
msgstr ""
#: po/rc.cpp:75 rc.cpp:75
msgid "Add"
msgstr ""
#: po/rc.cpp:76 rc.cpp:76
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Tu nombre"
#: po/rc.cpp:77 rc.cpp:77
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "Tus correos"
#~ msgid "Add stretch to left/top of the layout"
#~ msgstr "Añadir extensión a la izquierda/superior de la distribución"
#~ msgid "Add stretch to right/bottom of the layout"
#~ msgstr "Añadir extensión a la derecha/inferior de la distribución"

View File

@ -1,40 +0,0 @@
#!/bin/sh
BASEDIR="../" # root of translatable sources
PROJECT="plasma_applet_desktop-panel" # project name
BUGADDR="https://github.com/arcan1s/awesome-widgets/issues" # MSGID-Bugs
WDIR=`pwd` # working dir
echo "Preparing rc files"
cd "${BASEDIR}"
find . -name '*.rc' -o -name '*.ui' -o -name '*.kcfg' -o -name '*.py' | sort > "${WDIR}/rcfiles.list"
xargs --arg-file=${WDIR}/rcfiles.list extractrc > "${WDIR}/rc.cpp"
echo 'i18nc("NAME OF TRANSLATORS","Your names");' >> "${WDIR}/rc.cpp"
echo 'i18nc("EMAIL OF TRANSLATORS","Your emails");' >> "${WDIR}/rc.cpp"
echo "Done preparing rc files"
echo "Extracting messages"
cd "${WDIR}"
cd "${BASEDIR}"
find . -name '*.cpp' -o -name '*.h' -o -name '*.c' -o -name '*.py' | 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 \
-kI18N_NOOP:1 -kI18N_NOOP2:1c,2 -kaliasLocale -kki18n:1 -kki18nc:1c,2 -kki18np:1,2 -kki18ncp:1c,2,3 \
--msgid-bugs-address="${BUGADDR}" --language=Python \
--files-from=infiles.list -D "${BASEDIR}" -D "${WDIR}" -o "${PROJECT}.pot" || { echo "error while calling xgettext. aborting."; exit 1; }
echo "Done extracting messages"
echo "Merging translations"
catalogs=$(find . -name '*.po')
for cat in $catalogs; do
echo $cat
msgmerge -o "$cat.new" "$cat" "${PROJECT}.pot"
mv "$cat.new" "$cat"
done
echo "Done merging translations"
echo "Cleaning up"
cd "${WDIR}"
rm -f rcfiles.list infiles.list rc.cpp
echo "Done"

View File

@ -1,148 +0,0 @@
# Copyright (C) 2014
# This file is distributed under the same license as the PyTextMonitor package.
#
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
# Mermouy <mermouy@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2014-09-15 10:02+0400\n"
"PO-Revision-Date: 2014-06-05 19:24+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: French <kde-french@lists.kde.ru>\n"
"Language: fr\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"
#: desktop-panel.cpp:141
msgid "Top Edge"
msgstr ""
#: desktop-panel.cpp:143
msgid "Bottom Edge"
msgstr ""
#: desktop-panel.cpp:145
msgid "Left Edge"
msgstr ""
#: desktop-panel.cpp:147
msgid "Right Edge"
msgstr ""
#: desktop-panel.cpp:149
msgid "Unknown Position (%1)"
msgstr ""
#: desktop-panel.cpp:367
msgid "Widget"
msgstr "Widget"
#: desktop-panel.cpp:368
msgid "Appearance"
msgstr "Apparence"
#: desktop-panel.cpp:369
msgid "Toggle panels"
msgstr ""
#: desktop-panel.cpp:489
msgid "Select font"
msgstr ""
#: po/rc.cpp:3 rc.cpp:3
msgid "Active desktop"
msgstr ""
#: po/rc.cpp:6 po/rc.cpp:24 po/rc.cpp:63 rc.cpp:6 rc.cpp:24 rc.cpp:63
msgid "Font"
msgstr "Police"
#: po/rc.cpp:9 po/rc.cpp:27 rc.cpp:9 rc.cpp:27
msgid "Font size"
msgstr "Taille de la police"
#: po/rc.cpp:12 po/rc.cpp:30 rc.cpp:12 rc.cpp:30
msgid "Font color"
msgstr "Couleur de la police"
#: po/rc.cpp:15 po/rc.cpp:33 rc.cpp:15 rc.cpp:33
msgid "Font weight"
msgstr "Épaisseur de la police"
#: po/rc.cpp:18 po/rc.cpp:36 rc.cpp:18 rc.cpp:36
msgid "Font style"
msgstr "Style de la police"
#: po/rc.cpp:21 rc.cpp:21
msgid "Inactive desktop"
msgstr ""
#: po/rc.cpp:39 rc.cpp:39
msgid "To control panels please set widget shortcut."
msgstr ""
#: po/rc.cpp:42 rc.cpp:42
msgid "Time interval"
msgstr "Intervalle"
#: po/rc.cpp:45 rc.cpp:45
msgid "Enable background"
msgstr ""
#: po/rc.cpp:48 rc.cpp:48
msgid "Mark"
msgstr ""
#: po/rc.cpp:51 rc.cpp:51
msgid "A mark which will be shown if this desktop is active"
msgstr ""
#: po/rc.cpp:54 rc.cpp:54
msgid "Vertical layout"
msgstr "Positionnement vertical"
#: po/rc.cpp:57 rc.cpp:57
msgid "Command to change desktop"
msgstr ""
#: po/rc.cpp:60 rc.cpp:60
msgid "Command which will change the current desktop"
msgstr ""
#: po/rc.cpp:66 rc.cpp:66
msgid "Ctrl+B"
msgstr ""
#: po/rc.cpp:69 rc.cpp:69
msgid "Ctrl+I"
msgstr ""
#: po/rc.cpp:72 rc.cpp:72
msgid "Ctrl+U"
msgstr ""
#: po/rc.cpp:75 rc.cpp:75
msgid "Add"
msgstr ""
#: po/rc.cpp:76 rc.cpp:76
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Evgeniy Alekseev"
#: po/rc.cpp:77 rc.cpp:77
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "esalexeev@gmail.com"
#~ msgid "Add stretch to left/top of the layout"
#~ msgstr "Étirer le positionnement vers haut/gauche"
#~ msgid "Add stretch to right/bottom of the layout"
#~ msgstr "Étirer le positionnement vers bas/droite"

View File

@ -1,140 +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/awesome-widgets/issues\n"
"POT-Creation-Date: 2014-09-15 10:02+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"
#: desktop-panel.cpp:141
msgid "Top Edge"
msgstr ""
#: desktop-panel.cpp:143
msgid "Bottom Edge"
msgstr ""
#: desktop-panel.cpp:145
msgid "Left Edge"
msgstr ""
#: desktop-panel.cpp:147
msgid "Right Edge"
msgstr ""
#: desktop-panel.cpp:149
msgid "Unknown Position (%1)"
msgstr ""
#: desktop-panel.cpp:367
msgid "Widget"
msgstr ""
#: desktop-panel.cpp:368
msgid "Appearance"
msgstr ""
#: desktop-panel.cpp:369
msgid "Toggle panels"
msgstr ""
#: desktop-panel.cpp:489
msgid "Select font"
msgstr ""
#: po/rc.cpp:3 rc.cpp:3
msgid "Active desktop"
msgstr ""
#: po/rc.cpp:6 po/rc.cpp:24 po/rc.cpp:63 rc.cpp:6 rc.cpp:24 rc.cpp:63
msgid "Font"
msgstr ""
#: po/rc.cpp:9 po/rc.cpp:27 rc.cpp:9 rc.cpp:27
msgid "Font size"
msgstr ""
#: po/rc.cpp:12 po/rc.cpp:30 rc.cpp:12 rc.cpp:30
msgid "Font color"
msgstr ""
#: po/rc.cpp:15 po/rc.cpp:33 rc.cpp:15 rc.cpp:33
msgid "Font weight"
msgstr ""
#: po/rc.cpp:18 po/rc.cpp:36 rc.cpp:18 rc.cpp:36
msgid "Font style"
msgstr ""
#: po/rc.cpp:21 rc.cpp:21
msgid "Inactive desktop"
msgstr ""
#: po/rc.cpp:39 rc.cpp:39
msgid "To control panels please set widget shortcut."
msgstr ""
#: po/rc.cpp:42 rc.cpp:42
msgid "Time interval"
msgstr ""
#: po/rc.cpp:45 rc.cpp:45
msgid "Enable background"
msgstr ""
#: po/rc.cpp:48 rc.cpp:48
msgid "Mark"
msgstr ""
#: po/rc.cpp:51 rc.cpp:51
msgid "A mark which will be shown if this desktop is active"
msgstr ""
#: po/rc.cpp:54 rc.cpp:54
msgid "Vertical layout"
msgstr ""
#: po/rc.cpp:57 rc.cpp:57
msgid "Command to change desktop"
msgstr ""
#: po/rc.cpp:60 rc.cpp:60
msgid "Command which will change the current desktop"
msgstr ""
#: po/rc.cpp:66 rc.cpp:66
msgid "Ctrl+B"
msgstr ""
#: po/rc.cpp:69 rc.cpp:69
msgid "Ctrl+I"
msgstr ""
#: po/rc.cpp:72 rc.cpp:72
msgid "Ctrl+U"
msgstr ""
#: po/rc.cpp:75 rc.cpp:75
msgid "Add"
msgstr ""
#: po/rc.cpp:76 rc.cpp:76
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr ""
#: po/rc.cpp:77 rc.cpp:77
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr ""

View File

@ -1,146 +0,0 @@
# Copyright (C) 2014
# This file is distributed under the same license as the PyTextMonitor package.
#
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2014-09-15 10:02+0400\n"
"PO-Revision-Date: 2014-06-09 01:47+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Brazilian Portuguese <kde-russian@lists.kde.ru>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Lokalize 1.5\n"
#: desktop-panel.cpp:141
msgid "Top Edge"
msgstr ""
#: desktop-panel.cpp:143
msgid "Bottom Edge"
msgstr ""
#: desktop-panel.cpp:145
msgid "Left Edge"
msgstr ""
#: desktop-panel.cpp:147
msgid "Right Edge"
msgstr ""
#: desktop-panel.cpp:149
msgid "Unknown Position (%1)"
msgstr ""
#: desktop-panel.cpp:367
msgid "Widget"
msgstr "Widget"
#: desktop-panel.cpp:368
msgid "Appearance"
msgstr "Aparência"
#: desktop-panel.cpp:369
msgid "Toggle panels"
msgstr ""
#: desktop-panel.cpp:489
msgid "Select font"
msgstr ""
#: po/rc.cpp:3 rc.cpp:3
msgid "Active desktop"
msgstr ""
#: po/rc.cpp:6 po/rc.cpp:24 po/rc.cpp:63 rc.cpp:6 rc.cpp:24 rc.cpp:63
msgid "Font"
msgstr "Tamanho da fonte"
#: po/rc.cpp:9 po/rc.cpp:27 rc.cpp:9 rc.cpp:27
msgid "Font size"
msgstr "Tamanho da fonte"
#: po/rc.cpp:12 po/rc.cpp:30 rc.cpp:12 rc.cpp:30
msgid "Font color"
msgstr "Cor da fonte"
#: po/rc.cpp:15 po/rc.cpp:33 rc.cpp:15 rc.cpp:33
msgid "Font weight"
msgstr "Peso da fonte"
#: po/rc.cpp:18 po/rc.cpp:36 rc.cpp:18 rc.cpp:36
msgid "Font style"
msgstr "Estilo da fonte"
#: po/rc.cpp:21 rc.cpp:21
msgid "Inactive desktop"
msgstr ""
#: po/rc.cpp:39 rc.cpp:39
msgid "To control panels please set widget shortcut."
msgstr ""
#: po/rc.cpp:42 rc.cpp:42
msgid "Time interval"
msgstr "Intervalo de tempo"
#: po/rc.cpp:45 rc.cpp:45
msgid "Enable background"
msgstr ""
#: po/rc.cpp:48 rc.cpp:48
msgid "Mark"
msgstr ""
#: po/rc.cpp:51 rc.cpp:51
msgid "A mark which will be shown if this desktop is active"
msgstr ""
#: po/rc.cpp:54 rc.cpp:54
msgid "Vertical layout"
msgstr "Layout vertical"
#: po/rc.cpp:57 rc.cpp:57
msgid "Command to change desktop"
msgstr ""
#: po/rc.cpp:60 rc.cpp:60
msgid "Command which will change the current desktop"
msgstr ""
#: po/rc.cpp:66 rc.cpp:66
msgid "Ctrl+B"
msgstr ""
#: po/rc.cpp:69 rc.cpp:69
msgid "Ctrl+I"
msgstr ""
#: po/rc.cpp:72 rc.cpp:72
msgid "Ctrl+U"
msgstr ""
#: po/rc.cpp:75 rc.cpp:75
msgid "Add"
msgstr ""
#: po/rc.cpp:76 rc.cpp:76
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "under"
#: po/rc.cpp:77 rc.cpp:77
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "dreanazous@gmail.com"
#~ msgid "Add stretch to left/top of the layout"
#~ msgstr "Adicionar esticamento à esquerda/topo do layout"
#~ msgid "Add stretch to right/bottom of the layout"
#~ msgstr "Adicionar esticamento à direita/inferior do layout"

View File

@ -1,161 +0,0 @@
# Copyright (C) 2014
# This file is distributed under the same license as the PyTextMonitor package.
#
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2014-09-15 10:02+0400\n"
"PO-Revision-Date: 2014-09-15 10:03+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"
#: desktop-panel.cpp:141
msgid "Top Edge"
msgstr "Верхний край"
#: desktop-panel.cpp:143
msgid "Bottom Edge"
msgstr "Нижний край"
#: desktop-panel.cpp:145
msgid "Left Edge"
msgstr "Левый край"
#: desktop-panel.cpp:147
msgid "Right Edge"
msgstr "Правый край"
#: desktop-panel.cpp:149
msgid "Unknown Position (%1)"
msgstr "Неизвестное положение (%1)"
#: desktop-panel.cpp:367
msgid "Widget"
msgstr "Виджет"
#: desktop-panel.cpp:368
msgid "Appearance"
msgstr "Внешний вид"
#: desktop-panel.cpp:369
msgid "Toggle panels"
msgstr "Скрыть панели"
#: desktop-panel.cpp:489
msgid "Select font"
msgstr "Выберете шрифт"
#: po/rc.cpp:3 rc.cpp:3
msgid "Active desktop"
msgstr "Активный рабочий стол"
#: po/rc.cpp:6 po/rc.cpp:24 po/rc.cpp:63 rc.cpp:6 rc.cpp:24 rc.cpp:63
msgid "Font"
msgstr "Шрифт"
#: po/rc.cpp:9 po/rc.cpp:27 rc.cpp:9 rc.cpp:27
msgid "Font size"
msgstr "Размер шрифта"
#: po/rc.cpp:12 po/rc.cpp:30 rc.cpp:12 rc.cpp:30
msgid "Font color"
msgstr "Цвет шрифта"
#: po/rc.cpp:15 po/rc.cpp:33 rc.cpp:15 rc.cpp:33
msgid "Font weight"
msgstr "Толщина шрифта"
#: po/rc.cpp:18 po/rc.cpp:36 rc.cpp:18 rc.cpp:36
msgid "Font style"
msgstr "Стиль шрифта"
#: po/rc.cpp:21 rc.cpp:21
msgid "Inactive desktop"
msgstr "Неактивный рабочий стол"
#: po/rc.cpp:39 rc.cpp:39
msgid "To control panels please set widget shortcut."
msgstr "Чтобы управлять панелями, настройте комбинацию клавиш."
#: po/rc.cpp:42 rc.cpp:42
msgid "Time interval"
msgstr "Интервал обновления"
#: po/rc.cpp:45 rc.cpp:45
msgid "Enable background"
msgstr "Включить фон"
#: po/rc.cpp:48 rc.cpp:48
msgid "Mark"
msgstr "Метка"
#: po/rc.cpp:51 rc.cpp:51
msgid "A mark which will be shown if this desktop is active"
msgstr "Метка, которая будет показана, если данный рабочий стол активен"
#: po/rc.cpp:54 rc.cpp:54
msgid "Vertical layout"
msgstr "Вертикальная разметка"
#: po/rc.cpp:57 rc.cpp:57
msgid "Command to change desktop"
msgstr "Команда"
#: po/rc.cpp:60 rc.cpp:60
msgid "Command which will change the current desktop"
msgstr "Команда которая изменит текущий рабочий стол"
#: po/rc.cpp:66 rc.cpp:66
msgid "Ctrl+B"
msgstr "Ctrl+B"
#: po/rc.cpp:69 rc.cpp:69
msgid "Ctrl+I"
msgstr "Ctrl+I"
#: po/rc.cpp:72 rc.cpp:72
msgid "Ctrl+U"
msgstr "Ctrl+U"
#: po/rc.cpp:75 rc.cpp:75
msgid "Add"
msgstr "Добавить"
#: po/rc.cpp:76 rc.cpp:76
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Evgeniy Alekseev"
#: po/rc.cpp:77 rc.cpp:77
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "esalexeev@gmail.com"
#~ msgid "Add stretch to left/top of the layout"
#~ msgstr "Добавить пустое место слева/сверху виджета"
#~ msgid "Add stretch to right/bottom of the layout"
#~ msgstr "Добавить пустое место справа/снизу виджета"
#~ msgid "Pattern"
#~ msgstr "Шаблон"
#~ msgid ""
#~ "$mark - show mark if the current desktop is active\n"
#~ "$name - desktop name\n"
#~ "$number - desktop number\n"
#~ "$total - total number of desktops"
#~ msgstr ""
#~ "$mark - показать метку, если данный рабочий стол активен\n"
#~ "$name - имя рабочего стола\n"
#~ "$number - номер рабочего стола\n"
#~ "$total - общее число рабочий столов"

View File

@ -1,147 +0,0 @@
# Copyright (C) 2014
# This file is distributed under the same license as the PyTextMonitor package.
#
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2014-09-15 10:02+0400\n"
"PO-Revision-Date: 2014-06-06 01:23+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Ukrainian <kde-ukrainian@lists.kde.ru>\n"
"Language: ua\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"
#: desktop-panel.cpp:141
msgid "Top Edge"
msgstr ""
#: desktop-panel.cpp:143
msgid "Bottom Edge"
msgstr ""
#: desktop-panel.cpp:145
msgid "Left Edge"
msgstr ""
#: desktop-panel.cpp:147
msgid "Right Edge"
msgstr ""
#: desktop-panel.cpp:149
msgid "Unknown Position (%1)"
msgstr ""
#: desktop-panel.cpp:367
msgid "Widget"
msgstr "Віджет"
#: desktop-panel.cpp:368
msgid "Appearance"
msgstr "Зовнішній вигляд"
#: desktop-panel.cpp:369
msgid "Toggle panels"
msgstr ""
#: desktop-panel.cpp:489
msgid "Select font"
msgstr ""
#: po/rc.cpp:3 rc.cpp:3
msgid "Active desktop"
msgstr ""
#: po/rc.cpp:6 po/rc.cpp:24 po/rc.cpp:63 rc.cpp:6 rc.cpp:24 rc.cpp:63
msgid "Font"
msgstr "Шрифт"
#: po/rc.cpp:9 po/rc.cpp:27 rc.cpp:9 rc.cpp:27
msgid "Font size"
msgstr "Розмір шрифту"
#: po/rc.cpp:12 po/rc.cpp:30 rc.cpp:12 rc.cpp:30
msgid "Font color"
msgstr "Колір шрифту"
#: po/rc.cpp:15 po/rc.cpp:33 rc.cpp:15 rc.cpp:33
msgid "Font weight"
msgstr "Ширина шрифту"
#: po/rc.cpp:18 po/rc.cpp:36 rc.cpp:18 rc.cpp:36
msgid "Font style"
msgstr "Стиль шрифту"
#: po/rc.cpp:21 rc.cpp:21
msgid "Inactive desktop"
msgstr ""
#: po/rc.cpp:39 rc.cpp:39
msgid "To control panels please set widget shortcut."
msgstr ""
#: po/rc.cpp:42 rc.cpp:42
msgid "Time interval"
msgstr "Інтервал оновлення"
#: po/rc.cpp:45 rc.cpp:45
msgid "Enable background"
msgstr ""
#: po/rc.cpp:48 rc.cpp:48
msgid "Mark"
msgstr ""
#: po/rc.cpp:51 rc.cpp:51
msgid "A mark which will be shown if this desktop is active"
msgstr ""
#: po/rc.cpp:54 rc.cpp:54
msgid "Vertical layout"
msgstr "Вертикальна розмітка"
#: po/rc.cpp:57 rc.cpp:57
msgid "Command to change desktop"
msgstr ""
#: po/rc.cpp:60 rc.cpp:60
msgid "Command which will change the current desktop"
msgstr ""
#: po/rc.cpp:66 rc.cpp:66
msgid "Ctrl+B"
msgstr ""
#: po/rc.cpp:69 rc.cpp:69
msgid "Ctrl+I"
msgstr ""
#: po/rc.cpp:72 rc.cpp:72
msgid "Ctrl+U"
msgstr ""
#: po/rc.cpp:75 rc.cpp:75
msgid "Add"
msgstr ""
#: po/rc.cpp:76 rc.cpp:76
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Slobodyan Victor"
#: po/rc.cpp:77 rc.cpp:77
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "sarumyan@i.ua"
#~ msgid "Add stretch to left/top of the layout"
#~ msgstr "Додати порожнє місце ліворуч/вгорі віджету"
#~ msgid "Add stretch to right/bottom of the layout"
#~ msgstr "Додати порожнє місце праворуч/внизу віджету"

View File

@ -1,161 +0,0 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Steve Lemuel <wlemuel@hotmail.com>, 2014.
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2014-09-15 10:02+0400\n"
"PO-Revision-Date: 2014-09-15 10:04+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: American English <kde-russian@lists.kde.ru>\n"
"Language: en_US\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 1.5\n"
#: desktop-panel.cpp:141
msgid "Top Edge"
msgstr "顶部边缘"
#: desktop-panel.cpp:143
msgid "Bottom Edge"
msgstr "底部边缘"
#: desktop-panel.cpp:145
msgid "Left Edge"
msgstr "左端边缘"
#: desktop-panel.cpp:147
msgid "Right Edge"
msgstr "右端边缘"
#: desktop-panel.cpp:149
msgid "Unknown Position (%1)"
msgstr "未知位置(%1"
#: desktop-panel.cpp:367
msgid "Widget"
msgstr "窗口小部件"
#: desktop-panel.cpp:368
msgid "Appearance"
msgstr "外观"
#: desktop-panel.cpp:369
msgid "Toggle panels"
msgstr "控制面板状态切换(显示/隐藏)"
#: desktop-panel.cpp:489
msgid "Select font"
msgstr "选择字体"
#: po/rc.cpp:3 rc.cpp:3
msgid "Active desktop"
msgstr "当前激活桌面"
#: po/rc.cpp:6 po/rc.cpp:24 po/rc.cpp:63 rc.cpp:6 rc.cpp:24 rc.cpp:63
msgid "Font"
msgstr "字体"
#: po/rc.cpp:9 po/rc.cpp:27 rc.cpp:9 rc.cpp:27
msgid "Font size"
msgstr "字体大小"
#: po/rc.cpp:12 po/rc.cpp:30 rc.cpp:12 rc.cpp:30
msgid "Font color"
msgstr "字体颜色"
#: po/rc.cpp:15 po/rc.cpp:33 rc.cpp:15 rc.cpp:33
msgid "Font weight"
msgstr "字体宽度"
#: po/rc.cpp:18 po/rc.cpp:36 rc.cpp:18 rc.cpp:36
msgid "Font style"
msgstr "字体样式"
#: po/rc.cpp:21 rc.cpp:21
msgid "Inactive desktop"
msgstr "未激活桌面"
#: po/rc.cpp:39 rc.cpp:39
msgid "To control panels please set widget shortcut."
msgstr "设置控制面板的快捷键"
#: po/rc.cpp:42 rc.cpp:42
msgid "Time interval"
msgstr "时间间隔"
#: po/rc.cpp:45 rc.cpp:45
msgid "Enable background"
msgstr "启用背景"
#: po/rc.cpp:48 rc.cpp:48
msgid "Mark"
msgstr "标记"
#: po/rc.cpp:51 rc.cpp:51
msgid "A mark which will be shown if this desktop is active"
msgstr "当前桌面处于激活状态下,该当标记显示。 "
#: po/rc.cpp:54 rc.cpp:54
msgid "Vertical layout"
msgstr "垂直布局"
#: po/rc.cpp:57 rc.cpp:57
msgid "Command to change desktop"
msgstr "桌面切换命令"
#: po/rc.cpp:60 rc.cpp:60
msgid "Command which will change the current desktop"
msgstr "当前桌面更改命令"
#: po/rc.cpp:66 rc.cpp:66
msgid "Ctrl+B"
msgstr "Ctrl+B"
#: po/rc.cpp:69 rc.cpp:69
msgid "Ctrl+I"
msgstr "Ctrl+I"
#: po/rc.cpp:72 rc.cpp:72
msgid "Ctrl+U"
msgstr "Ctrl+U"
#: po/rc.cpp:75 rc.cpp:75
msgid "Add"
msgstr "添加"
#: po/rc.cpp:76 rc.cpp:76
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "用户名"
#: po/rc.cpp:77 rc.cpp:77
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "用户邮箱"
#~ msgid "Add stretch to left/top of the layout"
#~ msgstr "添加左上角拉伸"
#~ msgid "Add stretch to right/bottom of the layout"
#~ msgstr "添加右下角拉伸"
#~ msgid "Pattern"
#~ msgstr "样式"
#~ msgid ""
#~ "$mark - show mark if the current desktop is active\n"
#~ "$name - desktop name\n"
#~ "$number - desktop number\n"
#~ "$total - total number of desktops"
#~ msgstr ""
#~ "$mark - 当前桌面处于激活状态时,显示标记\n"
#~ "$name - 桌面名称\n"
#~ "$number - 桌面数量\n"
#~ "$total - 桌面总数量"

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>729</width>
<height>428</height>
<width>721</width>
<height>420</height>
</rect>
</property>
<property name="minimumSize">
@ -20,81 +20,16 @@
<string notr="true">Widget</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="4" column="0">
<layout class="QHBoxLayout" name="layout_interval">
<item>
<widget class="QLabel" name="label_interval">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Time interval</string>
</property>
</widget>
</item>
<item>
<spacer name="spacer_interval">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSpinBox" name="spinBox_interval">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>10000</number>
</property>
<property name="singleStep">
<number>500</number>
</property>
<property name="value">
<number>1000</number>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="checkBox_background">
<property name="text">
<string>Enable background</string>
</property>
</widget>
</item>
<item row="5" column="0">
<item row="9" column="0">
<layout class="QHBoxLayout" name="layout_mark">
<item>
<widget class="QLabel" name="label_mark">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Mark</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
@ -179,37 +114,6 @@
</item>
</layout>
</item>
<item row="3" column="0">
<widget class="QCheckBox" name="checkBox_layout">
<property name="text">
<string>Vertical layout</string>
</property>
</widget>
</item>
<item row="6" column="0">
<layout class="QHBoxLayout" name="layout_desktopcmd">
<item>
<widget class="QLabel" name="label_desktopcmd">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Command to change desktop</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_desktopcmd">
<property name="toolTip">
<string>Command which will change the current desktop</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0">
<layout class="QHBoxLayout" name="layput_mainFormating">
<item>
@ -402,8 +306,167 @@
</property>
</widget>
</item>
<item row="5" column="0">
<layout class="QHBoxLayout" name="layout_tooltip">
<item>
<widget class="QLabel" name="label_tooltip">
<property name="text">
<string>Tooltip width</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_tooltip">
<property name="suffix">
<string>px</string>
</property>
<property name="minimum">
<number>100</number>
</property>
<property name="maximum">
<number>1000</number>
</property>
<property name="singleStep">
<number>25</number>
</property>
</widget>
</item>
</layout>
</item>
<item row="6" column="0">
<layout class="QHBoxLayout" name="layout_tooltipColor">
<item>
<widget class="QLabel" name="label_tooltipColor">
<property name="text">
<string>Window border color on tooltip</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="KColorCombo" name="kcolorcombo_tooltipColor"/>
</item>
</layout>
</item>
<item row="2" column="0">
<layout class="QHBoxLayout" name="layout_background">
<item>
<spacer name="spacer_background">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="checkBox_background">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Enable background</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="3" column="0">
<layout class="QHBoxLayout" name="layout_layout">
<item>
<spacer name="spacer_layout">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="checkBox_layout">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Vertical layout</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="0">
<layout class="QHBoxLayout" name="layout_tooltip_2">
<item>
<widget class="QCheckBox" name="checkBox_tooltip">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="text">
<string>Enable tooltip</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_tooltipType">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>Windows</string>
</property>
</item>
<item>
<property name="text">
<string>Contours</string>
</property>
</item>
<item>
<property name="text">
<string>Clean desktop</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>KColorCombo</class>
<extends>QComboBox</extends>
<header>kcolorcombo.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@ -1,42 +0,0 @@
# Configuration file for Extended Systemmonitor DataEngine
# $kdehome/share/config/extsysmon.conf
# ACPI devices
#ACPIPATH=/sys/class/power_supply/
# Custom command, separator is '@@'
#CUSTOM=curl ip4.telize.com
# Command which returns number of the current desktop
#DESKTOPCMD=qdbus org.kde.kwin /KWin currentDesktop
# Set GPU device
# May be 'nvidia' (for nvidia), 'ati' (for ATI RADEON), 'disable' or 'auto'
#GPUDEV=auto
# Set block device for hddtemp comma separated or use 'all' or 'disable'
#HDDDEV=all
# Set MPD settings
#MPDADDRESS=localhost
#MPDPORT=6600
# MPRIS player name or 'auto'. In the most cases it should be a player name
# DBus path is org.mpris.MediaPlayer2.amarok
#MPRIS=auto
# Package upgrade info
## from vicious
## Arch: PKGCMD=pacman -Qu PKGNULL=0
## Debian: PKGCMD=apt-show-versions -u -b PKGNULL=0
## Ubuntu: PKGCMD=aptitude search '~U' PKGNULL=0
## Fedora: PKGCMD=yum list updates PKGNULL=3
## FreeBSD: PKGCMD=pkg_version -I -l '<' PKGNULL=0
## Mandriva: PKGCMD=urpmq --auto-select PKGNULL=0
# Commands to run, comma separated
#PKGCMD=pacman -Qu
# Number of null lines for commands, comma separated
#PKGNULL=0
# Player name. Supported players are 'mpd', 'mpris'
#PLAYER=mpris

View File

@ -1,638 +0,0 @@
/***************************************************************************
* This file is part of awesome-widgets *
* *
* awesome-widgets 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. *
* *
* awesome-widgets 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 awesome-widgets. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
#include "extsysmon.h"
#include <Plasma/DataContainer>
#include <KDE/KGlobal>
#include <KDE/KStandardDirs>
#include <QDebug>
#include <QDir>
#include <QFile>
#include <QProcessEnvironment>
#include <QRegExp>
#include <QTextCodec>
#include <QThread>
#include <pdebug/pdebug.h>
#include <task/taskadds.h>
ExtendedSysMon::ExtendedSysMon(QObject* parent, const QVariantList& args)
: Plasma::DataEngine(parent, args)
{
Q_UNUSED(args)
// debug
QProcessEnvironment environment = QProcessEnvironment::systemEnvironment();
QString debugEnv = environment.value(QString("DEBUG"), QString("no"));
if (debugEnv == QString("yes"))
debug = true;
else
debug = false;
setMinimumPollingInterval(333);
readConfiguration();
}
QString ExtendedSysMon::getAllHdd()
{
if (debug) qDebug() << PDEBUG;
QStringList devices;
QString cmd = QString("find /dev -name [hms]d[a-z]");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
TaskResult process = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output);
for (int i=0; i<qoutput.split(QChar('\n'), QString::SkipEmptyParts).count(); i++)
devices.append(qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i]);
if (debug) qDebug() << PDEBUG << ":" << "Device list" << devices;
return devices.join(QChar(','));
}
QString ExtendedSysMon::getAutoGpu()
{
if (debug) qDebug() << PDEBUG;
QString gpu = QString("disable");
QString cmd = QString("lspci");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
TaskResult process = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output);
if (qoutput.toLower().contains("nvidia"))
gpu = QString("nvidia");
else if (qoutput.toLower().contains("radeon"))
gpu = QString("ati");
if (debug) qDebug() << PDEBUG << ":" << "Device" << gpu;
return gpu;
}
QString ExtendedSysMon::getAutoMpris()
{
if (debug) qDebug() << PDEBUG;
QString mpris;
QString cmd = QString("bash -c \"qdbus 'org.mpris.MediaPlayer2.*'\"");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
TaskResult process = runTask(cmd);
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
if (qoutput.split(QChar('\n'))[0].split(QChar('.')).count() > 3)
mpris = qoutput.split(QChar('\n'))[0].split(QChar('.'))[3];
if (debug) qDebug() << PDEBUG << ":" << "Player found" << mpris;
return mpris;
}
QStringList ExtendedSysMon::getDesktopNames()
{
if (debug) qDebug() << PDEBUG;
QStringList list;
QString fileName = KGlobal::dirs()->findResource("config", "kwinrc");
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << fileName;
QFile configFile(fileName);
if (!configFile.open(QIODevice::ReadOnly)) return list;
QString fileStr;
QStringList value;
bool desktopSection = false;
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[0] == QChar('[')) desktopSection = false;
if (fileStr == QString("[Desktops]")) desktopSection = true;
if (desktopSection) {
if (fileStr.contains(QChar('='))) {
value.clear();
for (int i=1; i<fileStr.split(QChar('=')).count(); i++)
value.append(fileStr.split(QChar('='))[i]);
if (fileStr.split(QChar('='))[0].contains(QString("Name_")))
list.append(value.join(QChar('=')));
}
}
if (configFile.atEnd()) break;
}
configFile.close();
return list;
}
QStringList ExtendedSysMon::sources() const
{
if (debug) qDebug() << PDEBUG;
QStringList source;
source.append(QString("battery"));
source.append(QString("custom"));
source.append(QString("desktop"));
source.append(QString("gpu"));
source.append(QString("gputemp"));
source.append(QString("hddtemp"));
source.append(QString("pkg"));
source.append(QString("player"));
source.append(QString("ps"));
if (debug) qDebug() << PDEBUG << ":" << "Sources" << source;
return source;
}
void ExtendedSysMon::readConfiguration()
{
if (debug) qDebug() << PDEBUG;
// pre-setup
QMap<QString, QString> rawConfig;
rawConfig[QString("ACPIPATH")] = QString("/sys/class/power_supply/");
rawConfig[QString("CUSTOM")] = QString("curl ip4.telize.com");
rawConfig[QString("DESKTOP")] = QString("");
rawConfig[QString("DESKTOPCMD")] = QString("qdbus org.kde.kwin /KWin currentDesktop");
rawConfig[QString("GPUDEV")] = QString("auto");
rawConfig[QString("HDDDEV")] = QString("all");
rawConfig[QString("HDDTEMPCMD")] = QString("sudo hddtemp");
rawConfig[QString("MPDADDRESS")] = QString("localhost");
rawConfig[QString("MPDPORT")] = QString("6600");
rawConfig[QString("MPRIS")] = QString("auto");
rawConfig[QString("PKGCMD")] = QString("pacman -Qu");
rawConfig[QString("PKGNULL")] = QString("0");
rawConfig[QString("PLAYER")] = QString("mpris");
QString fileName = KGlobal::dirs()->findResource("config", "extsysmon.conf");
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);
}
QMap<QString, QString> ExtendedSysMon::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("CUSTOM")) &&
(key != QString("DESKTOPCMD")) &&
(key != QString("HDDTEMPCMD")) &&
(key != QString("PKGCMD")))
value.remove(QChar(' '));
config[key] = value;
}
// update values
// desktop names
config[QString("DESKTOP")] = getDesktopNames().join(QString(";;"));
// gpudev
if (config[QString("GPUDEV")] == QString("disable"))
config[QString("GPUDEV")] = QString("disable");
else if (config[QString("GPUDEV")] == QString("auto"))
config[QString("GPUDEV")] = getAutoGpu();
else if ((config[QString("GPUDEV")] != QString("ati")) &&
(config[QString("GPUDEV")] != QString("nvidia")))
config[QString("GPUDEV")] = getAutoGpu();
// hdddev
if (config[QString("HDDDEV")] == QString("all"))
config[QString("HDDDEV")] = getAllHdd();
else if (config[QString("HDDDEV")] == QString("disable"))
config[QString("HDDDEV")] = QString("");
else {
QStringList deviceList = config[QString("HDDDEV")].split(QChar(','), QString::SkipEmptyParts);
QStringList devices;
QRegExp diskRegexp = QRegExp("/dev/[hms]d[a-z]$");
for (int i=0; i<deviceList.count(); i++)
if ((QFile::exists(deviceList[i])) &&
(diskRegexp.indexIn(deviceList[i]) > -1))
devices.append(deviceList[i]);
if (devices.isEmpty())
config[QString("HDDDEV")] = getAllHdd();
else
config[QString("HDDDEV")] = devices.join(QChar(','));
}
// pkgcmd
for (int i=config[QString("PKGNULL")].split(QString(","), QString::SkipEmptyParts).count();
i<config[QString("PKGCMD")].split(QString(","), QString::SkipEmptyParts).count()+1;
i++)
config[QString("PKGNULL")] += QString(",0");
// player
if ((config[QString("PLAYER")] != QString("mpd")) &&
(config[QString("PLAYER")] != QString("mpris")))
config[QString("PLAYER")] = QString("mpris");
for (int i=0; i<config.keys().count(); i++)
if (debug) qDebug() << PDEBUG << ":" <<
config.keys()[i] + QString("=") + config[config.keys()[i]];
return config;
}
QMap<QString, QVariant> ExtendedSysMon::getBattery(const QString acpiPath)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "ACPI path" << acpiPath;
QMap<QString, QVariant> battery;
battery[QString("ac")] = false;
battery[QString("bat")] = 0;
QFile acFile(acpiPath + QString("/AC/online"));
if (acFile.open(QIODevice::ReadOnly)) {
if (QString(acFile.readLine()).trimmed().toInt() == 1)
battery[QString("ac")] = true;
}
acFile.close();
// batterites
QStringList allDevices = QDir(acpiPath).entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name);
QStringList batDevices;
QRegExp batRegexp = QRegExp(QString("BAT.*"));
for (int i=0; i<allDevices.count(); i++)
if (allDevices[i].indexOf(batRegexp) > -1)
batDevices.append(allDevices[i]);
for (int i=0; i<batDevices.count(); i++) {
QFile batFile(acpiPath + QString("/") + batDevices[i] + QString("/capacity"));
if (batFile.open(QIODevice::ReadOnly))
battery[QString("bat") + QString::number(i)] = QString(batFile.readLine()).trimmed().toInt();
batFile.close();
}
float number = 0.0;
float average = 0.0;
for (int i=0; i<battery.keys().count(); i++) {
if (battery.keys()[i] == QString("ac")) continue;
if (battery.keys()[i] == QString("bat")) continue;
average += battery[battery.keys()[i]].toInt();
number++;
}
battery[QString("bat")] = int(average / number);
return battery;
}
QMap<QString, QVariant> ExtendedSysMon::getCurrentDesktop(const QString cmd)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
TaskResult process = runTask(QString("bash -c \"") + cmd + QString("\""));
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
int number = qoutput.toInt();
QMap<QString, QVariant> currentDesktop;
currentDesktop[QString("currentName")] = configuration[QString("DESKTOP")].split(QString(";;"))[number-1];
currentDesktop[QString("currentNumber")] = number;
currentDesktop[QString("list")] = configuration[QString("DESKTOP")];
currentDesktop[QString("number")] = configuration[QString("DESKTOP")].split(QString(";;")).count();
return currentDesktop;
}
QString ExtendedSysMon::getCustomCmd(const QString cmd)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
TaskResult process = runTask(QString("bash -c \"") + cmd + QString("\""));
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
return QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
}
float ExtendedSysMon::getGpu(const QString device)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Device" << device;
float value = 0.0;
if ((device != QString("nvidia")) && (device != QString("ati")))
return value;
QString cmd = QString("");
if (device == QString("nvidia"))
cmd = QString("nvidia-smi -q -d UTILIZATION");
else if (device == QString("ati"))
cmd = QString("aticonfig --od-getclocks");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
TaskResult process = runTask(QString("bash -c \"") + cmd + QString("\""));
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
if (configuration[QString("GPUDEV")] == QString("nvidia"))
for (int i=0; i<qoutput.split(QChar('\n'), QString::SkipEmptyParts).count(); i++) {
if (qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i].contains(QString("Gpu"))) {
QString load = qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i]
.split(QChar(' '), QString::SkipEmptyParts)[2]
.remove(QChar('%'));
value = load.toFloat();
}
}
else if (configuration[QString("GPUDEV")] == QString("ati"))
for (int i=0; i<qoutput.split(QChar('\n'), QString::SkipEmptyParts).count(); i++) {
if (qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i].contains(QString("load"))) {
QString load = qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i]
.split(QChar(' '), QString::SkipEmptyParts)[3]
.remove(QChar('%'));
value = load.toFloat();
}
}
return value;
}
float ExtendedSysMon::getGpuTemp(const QString device)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Device" << device;
float value = 0.0;
if ((device != QString("nvidia")) && (device != QString("ati")))
return value;
QString cmd = QString("");
if (device == QString("nvidia"))
cmd = QString("nvidia-smi -q -d TEMPERATURE");
else if (device == QString("ati"))
cmd = QString("aticonfig --od-gettemperature");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
TaskResult process = runTask(QString("bash -c \"") + cmd + QString("\""));
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output);
if (configuration[QString("GPUDEV")] == QString("nvidia"))
for (int i=0; i<qoutput.split(QChar('\n'), QString::SkipEmptyParts).count(); i++) {
if (qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i].contains(QString("GPU Current Temp"))) {
QString temp = qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i]
.split(QChar(' '), QString::SkipEmptyParts)[4];
value = temp.toFloat();
}
}
else if (configuration[QString("GPUDEV")] == QString("ati"))
for (int i=0; i<qoutput.split(QChar('\n'), QString::SkipEmptyParts).count(); i++) {
if (qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i].contains(QString("Temperature"))) {
QString temp = qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i]
.split(QChar(' '), QString::SkipEmptyParts)[4];
value = temp.toFloat();
}
}
return value;
}
float ExtendedSysMon::getHddTemp(const QString cmd, const QString device)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
if (debug) qDebug() << PDEBUG << ":" << "Device" << device;
float value = 0.0;
TaskResult process = runTask(cmd + QString(" ") + device);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
if (qoutput.split(QChar(':'), QString::SkipEmptyParts).count() >= 3) {
QString temp = qoutput.split(QChar(':'), QString::SkipEmptyParts)[2];
temp.remove(QChar(0260)).remove(QChar('C'));
value = temp.toFloat();
}
return value;
}
QMap<QString, QVariant> ExtendedSysMon::getPlayerInfo(const QString playerName,
const QString mpdAddress,
const QString mpdPort,
QString mpris)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "player" << playerName;
if (debug) qDebug() << PDEBUG << ":" << "MPD" << mpdAddress + QString(":") + mpdPort;
if (debug) qDebug() << PDEBUG << ":" << "MPRIS" << mpris;
QMap<QString, QVariant> info;
info[QString("album")] = QString("unknown");
info[QString("artist")] = QString("unknown");
info[QString("duration")] = QString("0");
info[QString("progress")] = QString("0");
info[QString("title")] = QString("unknown");
QString cmd;
if (playerName == QString("mpd"))
// mpd
cmd = QString("bash -c \"echo 'currentsong\nstatus\nclose' | curl --connect-timeout 1 -fsm 3 telnet://%1:%2\"")
.arg(mpdAddress)
.arg(mpdPort);
else if (playerName == QString("mpris")) {
// players which supports mpris
if (mpris == "auto")
mpris = getAutoMpris();
cmd = QString("bash -c \"qdbus org.mpris.%1 /Player GetMetadata && qdbus org.mpris.%1 /Player PositionGet\"")
.arg(mpris);
}
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
TaskResult process = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
QString qstr = QString("");
if (playerName == QString("mpd"))
for (int i=0; i<qoutput.split(QChar('\n'), QString::SkipEmptyParts).count(); i++) {
qstr = qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i];
if (qstr.split(QString(": "), QString::SkipEmptyParts).count() > 1) {
if (qstr.split(QString(": "), QString::SkipEmptyParts)[0] == QString("Album"))
info[QString("album")] = qstr.split(QString(": "), QString::SkipEmptyParts)[1].trimmed();
else if (qstr.split(QString(": "), QString::SkipEmptyParts)[0] == QString("Artist"))
info[QString("artist")] = qstr.split(QString(": "), QString::SkipEmptyParts)[1].trimmed();
else if (qstr.split(QString(": "), QString::SkipEmptyParts)[0] == QString("time")) {
info[QString("duration")] = qstr.split(QString(": "), QString::SkipEmptyParts)[1].trimmed().split(QString(":"))[0];
info[QString("progress")] = qstr.split(QString(": "), QString::SkipEmptyParts)[1].trimmed().split(QString(":"))[1];
} else if (qstr.split(QString(": "), QString::SkipEmptyParts)[0] == QString("Title"))
info[QString("title")] = qstr.split(QString(": "), QString::SkipEmptyParts)[1].trimmed();
}
}
else if (playerName == QString("mpris"))
for (int i=0; i<qoutput.split(QChar('\n'), QString::SkipEmptyParts).count(); i++) {
qstr = qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i];
if (qstr.split(QString(": "), QString::SkipEmptyParts).count() > 1) {
if (qstr.split(QString(": "), QString::SkipEmptyParts)[0] == QString("album"))
info[QString("album")] = qstr.split(QString(": "), QString::SkipEmptyParts)[1].trimmed();
else if (qstr.split(QString(": "), QString::SkipEmptyParts)[0] == QString("artist"))
info[QString("artist")] = qstr.split(QString(": "), QString::SkipEmptyParts)[1].trimmed();
else if (qstr.split(QString(": "), QString::SkipEmptyParts)[0] == QString("time"))
info[QString("duration")] = qstr.split(QString(": "), QString::SkipEmptyParts)[1].trimmed();
else if (qstr.split(QString(": "), QString::SkipEmptyParts)[0] == QString("title"))
info[QString("title")] = qstr.split(QString(": "), QString::SkipEmptyParts)[1].trimmed();
} else {
int time = qstr.toInt() / 1000;
info[QString("progress")] = QString::number(time);
}
}
return info;
}
QMap<QString, QVariant> ExtendedSysMon::getPsStats()
{
if (debug) qDebug() << PDEBUG;
QMap<QString, QVariant> psStats;
QString cmd, qoutput;
cmd = QString("ps --no-headers -o command");
if (debug) qDebug() << PDEBUG << ":" << "Run cmd" << cmd;
TaskResult process = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
QStringList psList;
for (int i=0; i<qoutput.split(QChar('\n'), QString::SkipEmptyParts).count(); i++)
if (!qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i].contains(QString("ps ")))
psList.append(qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i]);
psStats[QString("psCount")] = psList.count();
psStats[QString("ps")] = psList.join(QString(","));
cmd = QString("ps -e --no-headers -o command");
if (debug) qDebug() << PDEBUG << ":" << "Run cmd" << cmd;
process = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
psStats[QString("psTotal")] = qoutput.split(QChar('\n'), QString::SkipEmptyParts).count();
return psStats;
}
int ExtendedSysMon::getUpgradeInfo(const QString cmd)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
TaskResult process = runTask(QString("bash -c \"") + cmd + QString("\""));
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
int count = 0;
for (int i=0; i<qoutput.split(QChar('\n')).count(); i++)
if (!qoutput.isEmpty())
count++;
return count;
}
bool ExtendedSysMon::sourceRequestEvent(const QString &source)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Source" << source;
return updateSourceEvent(source);
}
bool ExtendedSysMon::updateSourceEvent(const QString &source)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Source" << source;
if (source == QString("battery")) {
QMap<QString, QVariant> battery = getBattery(configuration[QString("ACPIPATH")]);
setData(source, QString("ac"), battery[QString("ac")].toBool());
for (int i=0; i<battery.keys().count(); i++) {
if (battery.keys()[i] == QString("ac")) continue;
setData(source, battery.keys()[i], battery[battery.keys()[i]].toInt());
}
} else if (source == QString("custom")) {
for (int i=0; i<configuration[QString("CUSTOM")].split(QString("@@"), QString::SkipEmptyParts).count(); i++) {
setData(source, QString("custom") + QString::number(i),
getCustomCmd(configuration[QString("CUSTOM")].split(QString("@@"), QString::SkipEmptyParts)[i]));
}
} else if (source == QString("desktop")) {
QMap<QString, QVariant> desktop = getCurrentDesktop(configuration[QString("DESKTOPCMD")]);
for (int i=0; i<desktop.keys().count(); i++)
setData(source, desktop.keys()[i], desktop[desktop.keys()[i]]);
} else if (source == QString("gpu")) {
setData(source, QString("GPU"), getGpu(configuration[QString("GPUDEV")]));
} else if (source == QString("gputemp")) {
setData(source, QString("GPUTemp"), getGpuTemp(configuration[QString("GPUDEV")]));
} else if (source == QString("hddtemp")) {
QStringList deviceList = configuration[QString("HDDDEV")].split(QChar(','), QString::SkipEmptyParts);
for (int i=0; i<deviceList.count(); i++)
setData(source, deviceList[i],
getHddTemp(configuration[QString("HDDTEMPCMD")], deviceList[i]));
} else if (source == QString("pkg")) {
for (int i=0; i<configuration[QString("PKGCMD")].split(QString(","), QString::SkipEmptyParts).count(); i++)
setData(source, QString("pkgCount") + QString::number(i),
getUpgradeInfo(configuration[QString("PKGCMD")].split(QString(","), QString::SkipEmptyParts)[i]));
} else if (source == QString("player")) {
QMap<QString, QVariant> player = getPlayerInfo(configuration[QString("PLAYER")],
configuration[QString("MPDADDRESS")],
configuration[QString("MPDPORT")],
configuration[QString("MPRIS")]);
for (int i=0; i<player.keys().count(); i++)
setData(source, player.keys()[i], player[player.keys()[i]]);
} else if (source == QString("ps")) {
QMap<QString, QVariant> ps = getPsStats();
for (int i=0; i<ps.keys().count(); i++)
setData(source, ps.keys()[i], ps[ps.keys()[i]]);
}
return true;
}
K_EXPORT_PLASMA_DATAENGINE(extsysmon, ExtendedSysMon)
#include "extsysmon.moc"

View File

@ -1,34 +1,44 @@
# set project name
set (SUBPROJECT plasma_engine_extsysmon)
set (SUBPROJECT plasma_dataengine_extsysmon)
set (PLUGIN_NAME ${SUBPROJECT})
message (STATUS "Subproject ${SUBPROJECT}")
# find required libaries
find_package (KDE4 REQUIRED)
include (KDE4Defaults)
add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
set (KDE_INCLUDE ${KDE4_INCLUDES})
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)
file (RELATIVE_PATH SUBPROJECT_DESKTOP ${CMAKE_SOURCE_DIR} ${SUBPROJECT_DESKTOP_IN})
file (GLOB_RECURSE SUBPROJECT_SOURCE *.cpp ${PROJECT_TRDPARTY_DIR}/task/*.cpp)
set (TASK_HEADER ${PROJECT_TRDPARTY_DIR}/task/task.h)
file (GLOB SUBPROJECT_UI *.ui)
file (GLOB SUBPROJECT_CONF *.conf)
set (SUBPROJECT_SCRIPTS ${CMAKE_CURRENT_SOURCE_DIR}/scripts)
set (SUBPROJECT_UPGRADE ${CMAKE_CURRENT_SOURCE_DIR}/upgrade)
# prepare
configure_file (${SUBPROJECT_DESKTOP_IN} ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP})
# make
qt4_wrap_cpp (TASK_MOC_SOURCE ${TASK_HEADER})
kde4_add_ui_files (SUBPROJECT_SOURCE ${SUBPROJECT_UI})
kde4_add_plugin (${PLUGIN_NAME} ${SUBPROJECT_SOURCE} ${TASK_MOC_SOURCE})
target_link_libraries (${PLUGIN_NAME} ${KDE4_KDECORE_LIBS} ${KDE4_PLASMA_LIBS})
target_link_libraries (${PLUGIN_NAME} ${KDE4_KDECORE_LIBS} ${KDE4_PLASMA_LIBS} ${QT_QTNETWORK_LIBRARY})
# install
install (TARGETS ${PLUGIN_NAME} DESTINATION ${PLUGIN_INSTALL_DIR})
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP} DESTINATION ${SERVICES_INSTALL_DIR})
install (FILES ${SUBPROJECT_CONF} DESTINATION ${CONFIG_INSTALL_DIR})
install (DIRECTORY ${SUBPROJECT_SCRIPTS} DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME})
install (DIRECTORY ${SUBPROJECT_UPGRADE} DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME})

View File

@ -0,0 +1,390 @@
/***************************************************************************
* This file is part of awesome-widgets *
* *
* awesome-widgets 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. *
* *
* awesome-widgets 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 awesome-widgets. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
#include "extscript.h"
#include "ui_extscript.h"
#include <QDebug>
#include <QDir>
#include <QSettings>
#include <QTextCodec>
#include <pdebug/pdebug.h>
#include <task/taskadds.h>
#include "version.h"
ExtScript::ExtScript(QWidget *parent, const QString scriptName, const QStringList directories, const bool debugCmd)
: QDialog(parent),
m_fileName(scriptName),
m_dirs(directories),
debug(debugCmd),
ui(new Ui::ExtScript)
{
m_name = m_fileName;
readConfiguration();
ui->setupUi(this);
}
ExtScript::~ExtScript()
{
if (debug) qDebug() << PDEBUG;
delete ui;
}
int ExtScript::apiVersion()
{
if (debug) qDebug() << PDEBUG;
return m_apiVersion;
}
QString ExtScript::comment()
{
if (debug) qDebug() << PDEBUG;
return m_comment;
}
QString ExtScript::executable()
{
if (debug) qDebug() << PDEBUG;
return m_executable;
}
QString ExtScript::fileName()
{
if (debug) qDebug() << PDEBUG;
return m_fileName;
}
int ExtScript::interval()
{
if (debug) qDebug() << PDEBUG;
return m_interval;
}
QString ExtScript::name()
{
if (debug) qDebug() << PDEBUG;
return m_name;
}
QString ExtScript::prefix()
{
if (debug) qDebug() << PDEBUG;
return m_prefix;
}
ExtScript::Redirect ExtScript::redirect()
{
if (debug) qDebug() << PDEBUG;
return m_redirect;
}
QString ExtScript::strRedirect()
{
if (debug) qDebug() << PDEBUG;
QString value;
switch (m_redirect) {
case stdout2stderr:
value = QString("stdout2stderr");
break;
case stderr2stdout:
value = QString("stderr2stdout");
break;
default:
value = QString("nothing");
break;
}
return value;
}
bool ExtScript::hasOutput()
{
if (debug) qDebug() << PDEBUG;
return m_output;
}
bool ExtScript::isActive()
{
if (debug) qDebug() << PDEBUG;
return m_active;
}
void ExtScript::setApiVersion(const int _apiVersion)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Version" << _apiVersion;
m_apiVersion = _apiVersion;
}
void ExtScript::setActive(const bool state)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "State" << state;
m_active = state;
}
void ExtScript::setComment(const QString _comment)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Comment" << _comment;
m_comment = _comment;
}
void ExtScript::setExecutable(const QString _executable)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Executable" << _executable;
m_executable = _executable;
}
void ExtScript::setHasOutput(const bool state)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "State" << state;
m_output = state;
}
void ExtScript::setInterval(const int _interval)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Interval" << _interval;
if (_interval <= 0) return;
m_interval = _interval;
}
void ExtScript::setName(const QString _name)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Name" << _name;
m_name = _name;
}
void ExtScript::setPrefix(const QString _prefix)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Prefix" << _prefix;
m_prefix = _prefix;
}
void ExtScript::setRedirect(const Redirect _redirect)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Redirect" << _redirect;
m_redirect = _redirect;
}
void ExtScript::setStrRedirect(const QString _redirect)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Redirect" << _redirect;
if (_redirect == QString("stdout2sdterr"))
m_redirect = stdout2stderr;
else if (_redirect == QString("stderr2sdtout"))
m_redirect = stderr2stdout;
else
m_redirect = nothing;
}
void ExtScript::readConfiguration()
{
if (debug) qDebug() << PDEBUG;
for (int i=m_dirs.count()-1; i>=0; i--) {
if (!QDir(m_dirs[i]).entryList(QDir::Files).contains(m_fileName)) continue;
QSettings settings(m_dirs[i] + QDir::separator() + m_fileName, QSettings::IniFormat);
settings.beginGroup(QString("Desktop Entry"));
setName(settings.value(QString("Name"), m_name).toString());
setComment(settings.value(QString("Comment"), m_comment).toString());
setApiVersion(settings.value(QString("X-AW-ApiVersion"), AWESAPI).toInt());
setExecutable(settings.value(QString("Exec"), m_executable).toString());
setPrefix(settings.value(QString("X-AW-Prefix"), m_prefix).toString());
setActive(settings.value(QString("X-AW-Active"), QVariant(m_active)).toString() == QString("true"));
setHasOutput(settings.value(QString("X-AW-Output"), QVariant(m_output)).toString() == QString("true"));
setStrRedirect(settings.value(QString("X-AW-Redirect"), strRedirect()).toString());
setInterval(settings.value(QString("X-AW-Interval"), m_interval).toInt());
settings.endGroup();
}
if (!m_output)
setRedirect(stdout2stderr);
}
QString ExtScript::run()
{
if (debug) qDebug() << PDEBUG;
if (!m_active) return value;
if (times == 1) {
QStringList cmdList;
if (!m_prefix.isEmpty())
cmdList.append(m_prefix);
cmdList.append(m_executable);
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmdList.join(QChar(' '));
TaskResult process = runTask(cmdList.join(QChar(' ')));
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
QString info = QString::number(process.exitCode) + QString(":") +
QTextCodec::codecForMib(106)->toUnicode(process.error).trimmed();
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
switch (m_redirect) {
case stdout2stderr:
if (debug) qDebug() << PDEBUG << ":" << "Debug" << info;
if (debug) qDebug() << PDEBUG << ":" << "Output" << qoutput;
break;
case stderr2stdout:
value = info + QString("\t") + qoutput;
break;
default:
if (debug) qDebug() << PDEBUG << ":" << "Debug" << info;
value = qoutput;
break;
}
}
// update value
if (times >= m_interval) times = 0;
times++;
return value;
}
int ExtScript::showConfiguration()
{
if (debug) qDebug() << PDEBUG;
ui->lineEdit_name->setText(m_name);
ui->lineEdit_comment->setText(m_comment);
ui->lineEdit_command->setText(m_executable);
ui->lineEdit_prefix->setText(m_prefix);
if (m_active)
ui->checkBox_active->setCheckState(Qt::Checked);
else
ui->checkBox_active->setCheckState(Qt::Unchecked);
if (m_output)
ui->checkBox_output->setCheckState(Qt::Checked);
else
ui->checkBox_output->setCheckState(Qt::Unchecked);
ui->comboBox_redirect->setCurrentIndex(static_cast<int>(m_redirect));
ui->spinBox_interval->setValue(m_interval);
int ret = exec();
if (ret != 1) return ret;
setName(ui->lineEdit_name->text());
setComment(ui->lineEdit_comment->text());
setApiVersion(AWESAPI);
setExecutable(ui->lineEdit_command->text());
setPrefix(ui->lineEdit_prefix->text());
setActive(ui->checkBox_active->checkState() == Qt::Checked);
setHasOutput(ui->checkBox_output->checkState() == Qt::Checked);
setStrRedirect(ui->comboBox_redirect->currentText());
setInterval(ui->spinBox_interval->value());
writeConfiguration();
return ret;
}
int ExtScript::tryDelete()
{
if (debug) qDebug() << PDEBUG;
for (int i=0; i<m_dirs.count(); i++)
if (debug) qDebug() << PDEBUG << ":" << "Remove file" << m_dirs[i] + QDir::separator() + m_fileName <<
QFile::remove(m_dirs[i] + QDir::separator() + m_fileName);
// check if exists
for (int i=0; i<m_dirs.count(); i++)
if (QFile::exists(m_dirs[i] + QDir::separator() + m_fileName)) return 0;
return 1;
}
void ExtScript::writeConfiguration()
{
if (debug) qDebug() << PDEBUG;
QSettings settings(m_dirs[0] + QDir::separator() + m_fileName, QSettings::IniFormat);
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << settings.fileName();
settings.beginGroup(QString("Desktop Entry"));
settings.setValue(QString("Encoding"), QString("UTF-8"));
settings.setValue(QString("Name"), m_name);
settings.setValue(QString("Comment"), m_comment);
settings.setValue(QString("Exec"), m_executable);
settings.setValue(QString("X-AW-ApiVersion"), m_apiVersion);
settings.setValue(QString("X-AW-Prefix"), m_prefix);
settings.setValue(QString("X-AW-Active"), QVariant(m_active).toString());
settings.setValue(QString("X-AW-Output"), QVariant(m_active).toString());
settings.setValue(QString("X-AW-Redirect"), strRedirect());
settings.setValue(QString("X-AW-Interval"), m_interval);
settings.endGroup();
settings.sync();
}

View File

@ -0,0 +1,102 @@
/***************************************************************************
* This file is part of awesome-widgets *
* *
* awesome-widgets 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. *
* *
* awesome-widgets 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 awesome-widgets. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
#ifndef EXTSCRIPT_H
#define EXTSCRIPT_H
#include <QDialog>
namespace Ui {
class ExtScript;
}
class ExtScript : public QDialog
{
Q_OBJECT
Q_PROPERTY(int apiVersion READ apiVersion WRITE setApiVersion)
Q_PROPERTY(QString name READ name WRITE setName)
Q_PROPERTY(QString comment READ comment WRITE setComment)
Q_PROPERTY(QString executable READ executable WRITE setExecutable)
Q_PROPERTY(QString prefix READ prefix WRITE setPrefix)
Q_PROPERTY(bool active READ isActive WRITE setActive)
Q_PROPERTY(bool output READ hasOutput WRITE setHasOutput)
Q_PROPERTY(int interval READ interval WRITE setInterval)
Q_PROPERTY(Redirect redirect READ redirect WRITE setRedirect)
public:
enum Redirect {
stdout2stderr = 0,
nothing,
stderr2stdout
};
explicit ExtScript(QWidget *parent = 0, const QString scriptName = QString(),
const QStringList directories = QStringList(), const bool debugCmd = false);
~ExtScript();
// get methods
int apiVersion();
QString comment();
QString executable();
QString fileName();
int interval();
QString name();
QString prefix();
Redirect redirect();
QString strRedirect();
bool hasOutput();
bool isActive();
// set methods
void setApiVersion(const int _apiVersion = 0);
void setActive(const bool _state = true);
void setComment(const QString _comment = QString("empty"));
void setExecutable(const QString _executable = QString("/usr/bin/true"));
void setHasOutput(const bool _state = true);
void setInterval(const int _interval = 1);
void setName(const QString _name = QString("none"));
void setPrefix(const QString _prefix = QString(""));
void setRedirect(const Redirect _redirect = nothing);
void setStrRedirect(const QString _redirect = QString("nothing"));
public slots:
void readConfiguration();
QString run();
int showConfiguration();
int tryDelete();
void writeConfiguration();
private:
QString m_fileName;
QStringList m_dirs;
bool debug;
Ui::ExtScript *ui;
// properties
int m_apiVersion = 0;
bool m_active = true;
QString m_comment = QString("empty");
QString m_executable = QString("/usr/bin/true");
int m_interval = 1;
QString m_name = QString("none");
bool m_output = true;
QString m_prefix = QString("");
Redirect m_redirect = nothing;
int times = 0;
QString value = QString();
};
#endif /* EXTSCRIPT_H */

View File

@ -0,0 +1,283 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ExtScript</class>
<widget class="QDialog" name="ExtScript">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>420</width>
<height>301</height>
</rect>
</property>
<property name="windowTitle">
<string>Configuration</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="layout_name">
<item>
<widget class="QLabel" name="label_name">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Name</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_name"/>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_comment">
<item>
<widget class="QLabel" name="label_comment">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Comment</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_comment"/>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_command">
<item>
<widget class="QLabel" name="label_command">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Command</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_command"/>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_prefix">
<item>
<widget class="QLabel" name="label_prefix">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Prefix</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_prefix"/>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_active">
<item>
<spacer name="spacer_active">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="checkBox_active">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Active</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_output">
<item>
<spacer name="spacer_output">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="checkBox_output">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Has output</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_redirect">
<item>
<widget class="QLabel" name="label_redirect">
<property name="text">
<string>Redirect</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_redirect">
<item>
<property name="text">
<string notr="true">stdout2stderr</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">nothing</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">stderr2stdout</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_interval">
<item>
<widget class="QLabel" name="label_interval">
<property name="text">
<string>Interval</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_interval">
<property name="minimum">
<number>1</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>ExtScript</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>ExtScript</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -0,0 +1,678 @@
/***************************************************************************
* This file is part of awesome-widgets *
* *
* awesome-widgets 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. *
* *
* awesome-widgets 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 awesome-widgets. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
#include "extsysmon.h"
#include <KWindowSystem>
#include <Plasma/DataContainer>
#include <QDBusArgument>
#include <QDBusConnection>
#include <QDBusConnectionInterface>
#include <QDBusMessage>
#include <QDebug>
#include <QDir>
#include <QFile>
#include <QNetworkInterface>
#include <QProcessEnvironment>
#include <QRegExp>
#include <QTextCodec>
#include <QSettings>
#include <pdebug/pdebug.h>
#include <task/taskadds.h>
#include "extscript.h"
#include "extupgrade.h"
#include "version.h"
#include <KGlobal>
#include <KStandardDirs>
ExtendedSysMon::ExtendedSysMon(QObject* parent, const QVariantList &args)
: Plasma::DataEngine(parent, args)
{
Q_UNUSED(args)
// debug
QProcessEnvironment environment = QProcessEnvironment::systemEnvironment();
QString debugEnv = environment.value(QString("DEBUG"), QString("no"));
debug = (debugEnv == QString("yes"));
setMinimumPollingInterval(333);
readConfiguration();
initScripts();
initUpgrade();
}
QString ExtendedSysMon::getAllHdd()
{
if (debug) qDebug() << PDEBUG;
QStringList allDevices = QDir(QString("/dev")).entryList(QDir::System, QDir::Name);
QStringList devices = allDevices.filter(QRegExp(QString("^[hms]d[a-z]$")));
for (int i=0; i<devices.count(); i++)
devices[i] = QString("/dev/") + devices[i];
if (debug) qDebug() << PDEBUG << ":" << "Device list" << devices;
return devices.join(QChar(','));
}
QString ExtendedSysMon::getAutoGpu()
{
if (debug) qDebug() << PDEBUG;
QString gpu = QString("disable");
QFile moduleFile(QString("/proc/modules"));
if (!moduleFile.open(QIODevice::ReadOnly)) return gpu;
QString output = moduleFile.readAll();
if (output.contains(QString("fglrx")))
gpu = QString("ati");
else if (output.contains(QString("nvidia")))
gpu = QString("nvidia");
if (debug) qDebug() << PDEBUG << ":" << "Device" << gpu;
return gpu;
}
QString ExtendedSysMon::getAutoMpris()
{
if (debug) qDebug() << PDEBUG;
QDBusMessage listServices = QDBusConnection::sessionBus().interface()->call(QDBus::BlockWithGui, QString("ListNames"));
if (listServices.arguments().count() == 0) return QString();
QStringList arguments = listServices.arguments()[0].toStringList();
for (int i=0; i<arguments.count(); i++) {
if (debug) qDebug() << PDEBUG << ":" << "Service found" << arguments[i];
if (!arguments[i].startsWith(QString("org.mpris.MediaPlayer2."))) continue;
QString service = arguments[i];
service.remove(QString("org.mpris.MediaPlayer2."));
return service;
}
return QString();
}
void ExtendedSysMon::initScripts()
{
if (debug) qDebug() << PDEBUG;
// create directory at $HOME and create dirs list
QString localDir;
QStringList dirs;
localDir = KStandardDirs::locateLocal("data", "awesomewidgets/scripts");
if (KStandardDirs::makeDir(localDir))
if (debug) qDebug() << PDEBUG << ":" << "Created directory" << localDir;
dirs = KGlobal::dirs()->findDirs("data", "awesomewidgets/scripts");
QStringList names;
for (int i=0; i<dirs.count(); i++) {
QStringList files = QDir(dirs[i]).entryList(QDir::Files, QDir::Name);
for (int j=0; j<files.count(); j++) {
if (!files[j].endsWith(QString(".desktop"))) continue;
if (names.contains(files[j])) continue;
if (debug) qDebug() << PDEBUG << ":" << "Found file" << files[j] << "in" << dirs[i];
names.append(files[j]);
externalScripts.append(new ExtScript(0, files[j], dirs, debug));
}
}
}
void ExtendedSysMon::initUpgrade()
{
if (debug) qDebug() << PDEBUG;
// create directory at $HOME and create dirs list
QString localDir;
QStringList dirs;
localDir = KStandardDirs::locateLocal("data", "awesomewidgets/upgrade");
if (KStandardDirs::makeDir(localDir))
if (debug) qDebug() << PDEBUG << ":" << "Created directory" << localDir;
dirs = KGlobal::dirs()->findDirs("data", "awesomewidgets/upgrade");
QStringList names;
for (int i=0; i<dirs.count(); i++) {
QStringList files = QDir(dirs[i]).entryList(QDir::Files, QDir::Name);
for (int j=0; j<files.count(); j++) {
if (!files[j].endsWith(QString(".desktop"))) continue;
if (names.contains(files[j])) continue;
if (debug) qDebug() << PDEBUG << ":" << "Found file" << files[j] << "in" << dirs[i];
names.append(files[j]);
externalUpgrade.append(new ExtUpgrade(0, files[j], dirs, debug));
}
}
}
QStringList ExtendedSysMon::sources() const
{
if (debug) qDebug() << PDEBUG;
QStringList source;
source.append(QString("battery"));
source.append(QString("custom"));
source.append(QString("desktop"));
source.append(QString("netdev"));
source.append(QString("gpu"));
source.append(QString("gputemp"));
source.append(QString("hddtemp"));
source.append(QString("pkg"));
source.append(QString("player"));
source.append(QString("ps"));
source.append(QString("update"));
if (debug) qDebug() << PDEBUG << ":" << "Sources" << source;
return source;
}
void ExtendedSysMon::readConfiguration()
{
if (debug) qDebug() << PDEBUG;
QString fileName;
fileName = KGlobal::dirs()->findResource("config", "plasma-dataengine-extsysmon.conf");
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << fileName;
QSettings settings(fileName, QSettings::IniFormat);
QMap<QString, QString> rawConfig;
settings.beginGroup(QString("Configuration"));
rawConfig[QString("ACPIPATH")] = settings.value(QString("ACPIPATH"), QString("/sys/class/power_supply/")).toString();
rawConfig[QString("GPUDEV")] = settings.value(QString("GPUDEV"), QString("auto")).toString();
rawConfig[QString("HDDDEV")] = settings.value(QString("HDDDEV"), QString("all")).toString();
rawConfig[QString("HDDTEMPCMD")] = settings.value(QString("HDDTEMPCMD"), QString("sudo hddtemp")).toString();
rawConfig[QString("MPDADDRESS")] = settings.value(QString("MPDADDRESS"), QString("localhost")).toString();
rawConfig[QString("MPDPORT")] = settings.value(QString("MPDPORT"), QString("6600")).toString();
rawConfig[QString("MPRIS")] = settings.value(QString("MPRIS"), QString("auto")).toString();
rawConfig[QString("PLAYER")] = settings.value(QString("PLAYER"), QString("mpris")).toString();
settings.endGroup();
configuration = updateConfiguration(rawConfig);
}
QMap<QString, QString> ExtendedSysMon::updateConfiguration(QMap<QString, QString> rawConfig)
{
if (debug) qDebug() << PDEBUG;
// gpudev
if (rawConfig[QString("GPUDEV")] == QString("disable"))
rawConfig[QString("GPUDEV")] = QString("disable");
else if (rawConfig[QString("GPUDEV")] == QString("auto"))
rawConfig[QString("GPUDEV")] = getAutoGpu();
else if ((rawConfig[QString("GPUDEV")] != QString("ati")) &&
(rawConfig[QString("GPUDEV")] != QString("nvidia")))
rawConfig[QString("GPUDEV")] = getAutoGpu();
// hdddev
allHddDevices = getAllHdd().split(QChar(','), QString::SkipEmptyParts);
if (rawConfig[QString("HDDDEV")] == QString("all"))
rawConfig[QString("HDDDEV")] = allHddDevices.join(QChar(','));
else if (rawConfig[QString("HDDDEV")] == QString("disable"))
rawConfig[QString("HDDDEV")] = QString("");
else {
QStringList deviceList = rawConfig[QString("HDDDEV")].split(QChar(','), QString::SkipEmptyParts);
QStringList devices;
QRegExp diskRegexp = QRegExp("^/dev/[hms]d[a-z]$");
for (int i=0; i<deviceList.count(); i++)
if ((QFile::exists(deviceList[i])) &&
(diskRegexp.indexIn(deviceList[i]) > -1))
devices.append(deviceList[i]);
if (devices.isEmpty())
rawConfig[QString("HDDDEV")] = allHddDevices.join(QChar(','));
else
rawConfig[QString("HDDDEV")] = devices.join(QChar(','));
}
// player
if ((rawConfig[QString("PLAYER")] != QString("mpd")) &&
(rawConfig[QString("PLAYER")] != QString("mpris")))
rawConfig[QString("PLAYER")] = QString("mpris");
for (int i=0; i<rawConfig.keys().count(); i++)
if (debug) qDebug() << PDEBUG << ":" <<
rawConfig.keys()[i] + QString("=") + rawConfig[rawConfig.keys()[i]];
return rawConfig;
}
QMap<QString, QVariant> ExtendedSysMon::getBattery(const QString acpiPath)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "ACPI path" << acpiPath;
QMap<QString, QVariant> battery;
battery[QString("ac")] = false;
battery[QString("bat")] = 0;
QFile acFile(acpiPath + QString("/AC/online"));
if (acFile.open(QIODevice::ReadOnly)) {
if (QString(acFile.readLine()).trimmed().toInt() == 1)
battery[QString("ac")] = true;
}
acFile.close();
// batterites
QStringList allDevices = QDir(acpiPath).entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name);
QStringList batDevices;
QRegExp batRegexp = QRegExp(QString("BAT.*"));
for (int i=0; i<allDevices.count(); i++)
if (allDevices[i].contains(batRegexp))
batDevices.append(allDevices[i]);
for (int i=0; i<batDevices.count(); i++) {
QFile batFile(acpiPath + QString("/") + batDevices[i] + QString("/capacity"));
if (batFile.open(QIODevice::ReadOnly))
battery[QString("bat") + QString::number(i)] = QString(batFile.readLine()).trimmed().toInt();
batFile.close();
}
float number = 0.0;
float average = 0.0;
for (int i=0; i<battery.keys().count(); i++) {
if (battery.keys()[i] == QString("ac")) continue;
if (battery.keys()[i] == QString("bat")) continue;
average += battery[battery.keys()[i]].toInt();
number++;
}
battery[QString("bat")] = int(average / number);
return battery;
}
QMap<QString, QVariant> ExtendedSysMon::getCurrentDesktop()
{
if (debug) qDebug() << PDEBUG;
int number = KWindowSystem::currentDesktop();
int total = KWindowSystem::numberOfDesktops();
QMap<QString, QVariant> currentDesktop;
currentDesktop[QString("currentName")] = KWindowSystem::desktopName(number);
currentDesktop[QString("currentNumber")] = number;
QStringList list;
for (int i=1; i<total+1; i++)
list.append(KWindowSystem::desktopName(i));
currentDesktop[QString("list")] = list.join(QString(";;"));
currentDesktop[QString("number")] = total;
return currentDesktop;
}
float ExtendedSysMon::getGpu(const QString device)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Device" << device;
float value = 0.0;
if ((device != QString("nvidia")) && (device != QString("ati")))
return value;
QString cmd = QString("");
if (device == QString("nvidia"))
cmd = QString("nvidia-smi -q -x");
else if (device == QString("ati"))
cmd = QString("aticonfig --od-getclocks");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
TaskResult process = runTask(QString("bash -c \"") + cmd + QString("\""));
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
if (configuration[QString("GPUDEV")] == QString("nvidia"))
for (int i=0; i<qoutput.split(QChar('\n'), QString::SkipEmptyParts).count(); i++) {
if (qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i].contains(QString("<gpu_util>"))) {
QString load = qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i]
.remove(QString("<gpu_util>"))
.remove(QString("</gpu_util>"))
.remove(QChar('%'));
value = load.toFloat();
}
}
else if (configuration[QString("GPUDEV")] == QString("ati"))
for (int i=0; i<qoutput.split(QChar('\n'), QString::SkipEmptyParts).count(); i++) {
if (qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i].contains(QString("load"))) {
QString load = qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i]
.split(QChar(' '), QString::SkipEmptyParts)[3]
.remove(QChar('%'));
value = load.toFloat();
}
}
return value;
}
float ExtendedSysMon::getGpuTemp(const QString device)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Device" << device;
float value = 0.0;
if ((device != QString("nvidia")) && (device != QString("ati")))
return value;
QString cmd = QString("");
if (device == QString("nvidia"))
cmd = QString("nvidia-smi -q -x");
else if (device == QString("ati"))
cmd = QString("aticonfig --od-gettemperature");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
TaskResult process = runTask(QString("bash -c \"") + cmd + QString("\""));
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output);
if (configuration[QString("GPUDEV")] == QString("nvidia"))
for (int i=0; i<qoutput.split(QChar('\n'), QString::SkipEmptyParts).count(); i++) {
if (qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i].contains(QString("<gpu_temp>"))) {
QString temp = qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i]
.remove(QString("<gpu_temp>"))
.remove(QString("C</gpu_temp>"));
value = temp.toFloat();
}
}
else if (configuration[QString("GPUDEV")] == QString("ati"))
for (int i=0; i<qoutput.split(QChar('\n'), QString::SkipEmptyParts).count(); i++) {
if (qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i].contains(QString("Temperature"))) {
QString temp = qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i]
.split(QChar(' '), QString::SkipEmptyParts)[4];
value = temp.toFloat();
}
}
return value;
}
float ExtendedSysMon::getHddTemp(const QString cmd, const QString device)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
if (debug) qDebug() << PDEBUG << ":" << "Device" << device;
float value = 0.0;
TaskResult process = runTask(cmd + QString(" ") + device);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
bool smartctl = cmd.contains(QString("smartctl"));
if (debug) qDebug() << PDEBUG << ":" << "Define smartctl" << smartctl;
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
if (smartctl) {
for (int i=0; i<qoutput.split(QChar(':'), QString::SkipEmptyParts).count(); i++) {
if (qoutput.split(QChar(':'), QString::SkipEmptyParts)[i].split(QChar(' '))[0] != QString("194")) continue;
if (qoutput.split(QChar(':'), QString::SkipEmptyParts)[i].split(QChar(' '), QString::SkipEmptyParts).count() < 9) break;
value = qoutput.split(QChar(':'), QString::SkipEmptyParts)[i].split(QChar(' '), QString::SkipEmptyParts)[9].toFloat();
break;
}
} else {
if (qoutput.split(QChar(':'), QString::SkipEmptyParts).count() >= 3) {
QString temp = qoutput.split(QChar(':'), QString::SkipEmptyParts)[2];
temp.remove(QChar(0260)).remove(QChar('C'));
value = temp.toFloat();
}
}
return value;
}
QString ExtendedSysMon::getNetworkDevice()
{
if (debug) qDebug() << PDEBUG;
QString device = QString("lo");
QList<QNetworkInterface> rawInterfaceList = QNetworkInterface::allInterfaces();
for (int i=0; i<rawInterfaceList.count(); i++)
if ((rawInterfaceList[i].flags().testFlag(QNetworkInterface::IsUp)) &&
(!rawInterfaceList[i].flags().testFlag(QNetworkInterface::IsLoopBack)) &&
(!rawInterfaceList[i].flags().testFlag(QNetworkInterface::IsPointToPoint))) {
device = rawInterfaceList[i].name();
break;
}
return device;
}
QMap<QString, QVariant> ExtendedSysMon::getPlayerInfo(const QString playerName,
const QString mpdAddress,
const QString mpdPort,
QString mpris)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "player" << playerName;
if (debug) qDebug() << PDEBUG << ":" << "MPD" << mpdAddress + QString(":") + mpdPort;
if (debug) qDebug() << PDEBUG << ":" << "MPRIS" << mpris;
QMap<QString, QVariant> info;
info[QString("album")] = QString("unknown");
info[QString("artist")] = QString("unknown");
info[QString("duration")] = QString("0");
info[QString("progress")] = QString("0");
info[QString("title")] = QString("unknown");
if (playerName == QString("mpd"))
// mpd
return getPlayerMpdInfo(mpdAddress, mpdPort);
else if (playerName == QString("mpris")) {
// players which supports mpris
if (mpris == QString("auto")) mpris = getAutoMpris();
if (mpris.isEmpty()) return info;
return getPlayerMprisInfo(mpris);
}
return info;
}
QMap<QString, QVariant> ExtendedSysMon::getPlayerMpdInfo(const QString mpdAddress,
const QString mpdPort)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "MPD" << mpdAddress + QString(":") + mpdPort;
QMap<QString, QVariant> info;
info[QString("album")] = QString("unknown");
info[QString("artist")] = QString("unknown");
info[QString("duration")] = QString("0");
info[QString("progress")] = QString("0");
info[QString("title")] = QString("unknown");
QString cmd = QString("bash -c \"echo 'currentsong\nstatus\nclose' | curl --connect-timeout 1 -fsm 3 telnet://%1:%2\"")
.arg(mpdAddress)
.arg(mpdPort);
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
TaskResult process = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
QString qstr = QString("");
for (int i=0; i<qoutput.split(QChar('\n'), QString::SkipEmptyParts).count(); i++) {
qstr = qoutput.split(QChar('\n'), QString::SkipEmptyParts)[i];
if (qstr.split(QString(": "), QString::SkipEmptyParts).count() > 1) {
if (qstr.split(QString(": "), QString::SkipEmptyParts)[0] == QString("Album"))
info[QString("album")] = qstr.split(QString(": "), QString::SkipEmptyParts)[1].trimmed();
else if (qstr.split(QString(": "), QString::SkipEmptyParts)[0] == QString("Artist"))
info[QString("artist")] = qstr.split(QString(": "), QString::SkipEmptyParts)[1].trimmed();
else if (qstr.split(QString(": "), QString::SkipEmptyParts)[0] == QString("time")) {
info[QString("duration")] = qstr.split(QString(": "), QString::SkipEmptyParts)[1].trimmed().split(QString(":"))[0];
info[QString("progress")] = qstr.split(QString(": "), QString::SkipEmptyParts)[1].trimmed().split(QString(":"))[1];
} else if (qstr.split(QString(": "), QString::SkipEmptyParts)[0] == QString("Title"))
info[QString("title")] = qstr.split(QString(": "), QString::SkipEmptyParts)[1].trimmed();
}
}
return info;
}
QMap<QString, QVariant> ExtendedSysMon::getPlayerMprisInfo(const QString mpris)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << "MPRIS" << mpris;
QMap<QString, QVariant> info;
info[QString("album")] = QString("unknown");
info[QString("artist")] = QString("unknown");
info[QString("duration")] = 0;
info[QString("progress")] = 0;
info[QString("title")] = QString("unknown");
// init
QDBusArgument arg;
QDBusConnection bus = QDBusConnection::sessionBus();
QDBusMessage response, request;
QVariantMap map;
// general information
request = QDBusMessage::createMethodCall(QString("org.mpris.MediaPlayer2.%1").arg(mpris),
QString("/Player"),
QString(""),
QString("GetMetadata"));
response = bus.call(request, QDBus::BlockWithGui);
if (response.arguments().size() == 0) {
if (debug) qDebug() << PDEBUG << ":" << "Error message" << response.errorMessage();
} else {
arg = response.arguments()[0].value<QDBusArgument>();
arg >> map;
info[QString("album")] = map[QString("album")];
info[QString("artist")] = map[QString("artist")];
info[QString("duration")] = map[QString("time")];
info[QString("title")] = map[QString("title")];
}
// position
request = QDBusMessage::createMethodCall(QString("org.mpris.MediaPlayer2.%1").arg(mpris),
QString("/Player"),
QString(""),
QString("PositionGet"));
response = bus.call(request, QDBus::BlockWithGui);
if (response.arguments().size() == 0) {
if (debug) qDebug() << PDEBUG << ":" << "Error message" << response.errorMessage();
} else
info[QString("progress")] = response.arguments()[0].toInt() / 1000;
return info;
}
QMap<QString, QVariant> ExtendedSysMon::getPsStats()
{
if (debug) qDebug() << PDEBUG;
QStringList allDirectories = QDir(QString("/proc")).entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name);
QStringList directories = allDirectories.filter(QRegExp(QString("(\\d+)")));
QStringList running;
for (int i=0; i<directories.count(); i++) {
QFile statusFile(QString("/proc/%1/status").arg(directories[i]));
if (!statusFile.open(QIODevice::ReadOnly)) continue;
QFile cmdFile(QString("/proc/%1/cmdline").arg(directories[i]));
if (!cmdFile.open(QIODevice::ReadOnly)) continue;
QString output = statusFile.readAll();
if (output.contains(QString("running"))) running.append(cmdFile.readAll());
}
QMap<QString, QVariant> psStats;
psStats[QString("pscount")] = running.count();
psStats[QString("ps")] = running.join(QString(","));
psStats[QString("pstotal")] = directories.count();
return psStats;
}
bool ExtendedSysMon::sourceRequestEvent(const QString &source)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Source" << source;
return updateSourceEvent(source);
}
bool ExtendedSysMon::updateSourceEvent(const QString &source)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Source" << source;
if (source == QString("battery")) {
QMap<QString, QVariant> battery = getBattery(configuration[QString("ACPIPATH")]);
setData(source, QString("ac"), battery[QString("ac")].toBool());
for (int i=0; i<battery.keys().count(); i++) {
if (battery.keys()[i] == QString("ac")) continue;
setData(source, battery.keys()[i], battery[battery.keys()[i]].toInt());
}
} else if (source == QString("custom")) {
for (int i=0; i<externalScripts.count(); i++)
setData(source, QString("custom") + QString::number(i), externalScripts[i]->run());
} else if (source == QString("desktop")) {
QMap<QString, QVariant> desktop = getCurrentDesktop();
for (int i=0; i<desktop.keys().count(); i++)
setData(source, desktop.keys()[i], desktop[desktop.keys()[i]]);
} else if (source == QString("gpu")) {
setData(source, QString("value"), getGpu(configuration[QString("GPUDEV")]));
} else if (source == QString("gputemp")) {
setData(source, QString("value"), getGpuTemp(configuration[QString("GPUDEV")]));
} else if (source == QString("hddtemp")) {
// fill empty list
for (int i=0; i<allHddDevices.count(); i++)
setData(source, allHddDevices[i], 0.0);
QStringList deviceList = configuration[QString("HDDDEV")].split(QChar(','), QString::SkipEmptyParts);
for (int i=0; i<deviceList.count(); i++)
setData(source, deviceList[i],
getHddTemp(configuration[QString("HDDTEMPCMD")], deviceList[i]));
} else if (source == QString("netdev")) {
setData(source, QString("value"), getNetworkDevice());
} else if (source == QString("pkg")) {
for (int i=0; i<externalUpgrade.count(); i++)
setData(source, QString("pkgcount") + QString::number(i), externalUpgrade[i]->run());
} else if (source == QString("player")) {
QMap<QString, QVariant> player = getPlayerInfo(configuration[QString("PLAYER")],
configuration[QString("MPDADDRESS")],
configuration[QString("MPDPORT")],
configuration[QString("MPRIS")]);
for (int i=0; i<player.keys().count(); i++)
setData(source, player.keys()[i], player[player.keys()[i]]);
} else if (source == QString("ps")) {
QMap<QString, QVariant> ps = getPsStats();
for (int i=0; i<ps.keys().count(); i++)
setData(source, ps.keys()[i], ps[ps.keys()[i]]);
} else if (source == QString("update")) {
setData(source, QString("value"), true);
}
return true;
}
K_EXPORT_PLASMA_DATAENGINE(extsysmon, ExtendedSysMon)
#include "extsysmon.moc"

View File

@ -21,6 +21,10 @@
#include <Plasma/DataEngine>
#include <QProcess>
class ExtScript;
class ExtUpgrade;
class ExtendedSysMon : public Plasma::DataEngine
{
Q_OBJECT
@ -29,17 +33,19 @@ public:
ExtendedSysMon(QObject *parent, const QVariantList &args);
// update functions
QMap<QString, QVariant> getBattery(const QString acpiPath);
QMap<QString, QVariant> getCurrentDesktop(const QString cmd);
QString getCustomCmd(const QString cmd);
QMap<QString, QVariant> getCurrentDesktop();
float getGpu(const QString device);
float getGpuTemp(const QString device);
float getHddTemp(const QString cmd, const QString device);
QString getNetworkDevice();
QMap<QString, QVariant> getPlayerInfo(const QString playerName,
const QString mpdAddress = 0,
const QString mpdPort = 0,
QString mpris = 0);
const QString mpris = 0);
QMap<QString, QVariant> getPlayerMpdInfo(const QString mpdAddress = 0,
const QString mpdPort = 0);
QMap<QString, QVariant> getPlayerMprisInfo(const QString mpris = 0);
QMap<QString, QVariant> getPsStats();
int getUpgradeInfo(const QString cmd);
protected:
bool sourceRequestEvent(const QString &source);
@ -49,14 +55,19 @@ protected:
private:
// configuration
QMap<QString, QString> configuration;
QList<ExtScript *> externalScripts;
QList<ExtUpgrade *> externalUpgrade;
bool debug;
// reread configuration
QStringList allHddDevices;
QString getAllHdd();
QString getAutoGpu();
QString getAutoMpris();
QStringList getDesktopNames();
void initScripts();
void initUpgrade();
void readConfiguration();
QMap<QString, QString> updateConfiguration(const QMap<QString, QString> rawConfig);
QMap<QString, QString> updateConfiguration(QMap<QString, QString> rawConfig);
};
#endif /* EXTSYSMON_H */

View File

@ -0,0 +1,288 @@
/***************************************************************************
* This file is part of awesome-widgets *
* *
* awesome-widgets 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. *
* *
* awesome-widgets 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 awesome-widgets. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
#include "extupgrade.h"
#include "ui_extupgrade.h"
#include <QDebug>
#include <QDir>
#include <QSettings>
#include <QTextCodec>
#include <pdebug/pdebug.h>
#include <task/taskadds.h>
#include "version.h"
ExtUpgrade::ExtUpgrade(QWidget *parent, const QString upgradeName, const QStringList directories, const bool debugCmd) :
QDialog(parent),
m_fileName(upgradeName),
m_dirs(directories),
debug(debugCmd),
ui(new Ui::ExtUpgrade)
{
m_name = m_fileName;
readConfiguration();
ui->setupUi(this);
}
ExtUpgrade::~ExtUpgrade()
{
if (debug) qDebug() << PDEBUG;
delete ui;
}
int ExtUpgrade::apiVersion()
{
if (debug) qDebug() << PDEBUG;
return m_apiVersion;
}
QString ExtUpgrade::comment()
{
if (debug) qDebug() << PDEBUG;
return m_comment;
}
QString ExtUpgrade::executable()
{
if (debug) qDebug() << PDEBUG;
return m_executable;
}
QString ExtUpgrade::fileName()
{
if (debug) qDebug() << PDEBUG;
return m_fileName;
}
int ExtUpgrade::interval()
{
if (debug) qDebug() << PDEBUG;
return m_interval;
}
QString ExtUpgrade::name()
{
if (debug) qDebug() << PDEBUG;
return m_name;
}
int ExtUpgrade::null()
{
if (debug) qDebug() << PDEBUG;
return m_null;
}
bool ExtUpgrade::isActive()
{
if (debug) qDebug() << PDEBUG;
return m_active;
}
void ExtUpgrade::setApiVersion(const int _apiVersion)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Version" << _apiVersion;
m_apiVersion = _apiVersion;
}
void ExtUpgrade::setActive(const bool state)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "State" << state;
m_active = state;
}
void ExtUpgrade::setComment(const QString _comment)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Comment" << _comment;
m_comment = _comment;
}
void ExtUpgrade::setExecutable(const QString _executable)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Executable" << _executable;
m_executable = _executable;
}
void ExtUpgrade::setInterval(const int _interval)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Interval" << _interval;
m_interval = _interval;
}
void ExtUpgrade::setName(const QString _name)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Name" << _name;
m_name = _name;
}
void ExtUpgrade::setNull(const int _null)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Null lines" << _null;
if (_null < 0) return;
m_null = _null;
}
void ExtUpgrade::readConfiguration()
{
if (debug) qDebug() << PDEBUG;
for (int i=m_dirs.count()-1; i>=0; i--) {
if (!QDir(m_dirs[i]).entryList(QDir::Files).contains(m_fileName)) continue;
QSettings settings(m_dirs[i] + QDir::separator() + m_fileName, QSettings::IniFormat);
settings.beginGroup(QString("Desktop Entry"));
setName(settings.value(QString("Name"), m_name).toString());
setComment(settings.value(QString("Comment"), m_comment).toString());
setApiVersion(settings.value(QString("X-AW-ApiVersion"), AWESAPI).toInt());
setExecutable(settings.value(QString("Exec"), m_executable).toString());
setActive(settings.value(QString("X-AW-Active"), QVariant(m_active)).toString() == QString("true"));
setNull(settings.value(QString("X-AW-Null"), m_null).toInt());
setInterval(settings.value(QString("X-AW-Interval"), m_interval).toInt());
settings.endGroup();
}
}
int ExtUpgrade::run()
{
if (debug) qDebug() << PDEBUG;
if (!m_active) return value;
if (times == 1) {
TaskResult process = runTask(QString("bash -c \"") + m_executable + QString("\""));
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
value = qoutput.split(QChar('\n'), QString::SkipEmptyParts).count() - m_null;
}
// update value
if (times >= m_interval) times = 0;
times++;
return value;
}
int ExtUpgrade::showConfiguration()
{
if (debug) qDebug() << PDEBUG;
ui->lineEdit_name->setText(m_name);
ui->lineEdit_comment->setText(m_comment);
ui->lineEdit_command->setText(m_executable);
if (m_active)
ui->checkBox_active->setCheckState(Qt::Checked);
else
ui->checkBox_active->setCheckState(Qt::Unchecked);
ui->spinBox_null->setValue(m_null);
ui->spinBox_interval->setValue(m_interval);
int ret = exec();
if (ret != 1) return ret;
setName(ui->lineEdit_name->text());
setComment(ui->lineEdit_comment->text());
setApiVersion(AWEUAPI);
setExecutable(ui->lineEdit_command->text());
setActive(ui->checkBox_active->checkState() == Qt::Checked);
setNull(ui->spinBox_null->value());
setInterval(ui->spinBox_interval->value());
writeConfiguration();
return ret;
}
int ExtUpgrade::tryDelete()
{
if (debug) qDebug() << PDEBUG;
for (int i=0; i<m_dirs.count(); i++)
if (debug) qDebug() << PDEBUG << ":" << "Remove file" << m_dirs[i] + QDir::separator() + m_fileName <<
QFile::remove(m_dirs[i] + QDir::separator() + m_fileName);
// check if exists
for (int i=0; i<m_dirs.count(); i++)
if (QFile::exists(m_dirs[i] + QDir::separator() + m_fileName)) return 0;
return 1;
}
void ExtUpgrade::writeConfiguration()
{
if (debug) qDebug() << PDEBUG;
QSettings settings(m_dirs[0] + QDir::separator() + m_fileName, QSettings::IniFormat);
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << settings.fileName();
settings.beginGroup(QString("Desktop Entry"));
settings.setValue(QString("Encoding"), QString("UTF-8"));
settings.setValue(QString("Name"), m_name);
settings.setValue(QString("Comment"), m_comment);
settings.setValue(QString("Exec"), m_executable);
settings.setValue(QString("X-AW-ApiVersion"), m_apiVersion);
settings.setValue(QString("X-AW-Active"), QVariant(m_active).toString());
settings.setValue(QString("X-AW-Null"), m_null);
settings.setValue(QString("X-AW-Interval"), m_interval);
settings.endGroup();
settings.sync();
}

View File

@ -0,0 +1,86 @@
/***************************************************************************
* This file is part of awesome-widgets *
* *
* awesome-widgets 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. *
* *
* awesome-widgets 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 awesome-widgets. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/
#ifndef EXTUPGRADE_H
#define EXTUPGRADE_H
#include <QDialog>
namespace Ui {
class ExtUpgrade;
}
class ExtUpgrade : public QDialog
{
Q_OBJECT
Q_PROPERTY(int apiVersion READ apiVersion WRITE setApiVersion)
Q_PROPERTY(QString name READ name WRITE setName)
Q_PROPERTY(QString comment READ comment WRITE setComment)
Q_PROPERTY(QString executable READ executable WRITE setExecutable)
Q_PROPERTY(int null READ null WRITE setNull)
Q_PROPERTY(bool active READ isActive WRITE setActive)
Q_PROPERTY(int interval READ interval WRITE setInterval)
public:
explicit ExtUpgrade(QWidget *parent = 0, const QString upgradeName = QString(),
const QStringList directories = QStringList(), const bool debugCmd = false);
~ExtUpgrade();
// get methods
int apiVersion();
QString comment();
QString executable();
QString fileName();
int interval();
QString name();
int null();
bool isActive();
// set methods
void setApiVersion(const int _apiVersion = 0);
void setActive(const bool _state = true);
void setComment(const QString _comment = QString("empty"));
void setExecutable(const QString _executable = QString("/usr/bin/true"));
void setName(const QString _name = QString("none"));
void setNull(const int _null = 0);
void setInterval(const int _interval = 0);
public slots:
void readConfiguration();
int run();
int showConfiguration();
int tryDelete();
void writeConfiguration();
private:
QString m_fileName;
QStringList m_dirs;
bool debug;
Ui::ExtUpgrade *ui;
// properties
int m_apiVersion = 0;
bool m_active = true;
QString m_comment = QString("empty");
QString m_executable = QString("/usr/bin/true");
QString m_name = QString("none");
int m_null = 0;
int m_interval = 3600;
int times = 0;
int value = 0;
};
#endif /* EXTUPGRADE_H */

View File

@ -0,0 +1,230 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ExtUpgrade</class>
<widget class="QDialog" name="ExtUpgrade">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>420</width>
<height>301</height>
</rect>
</property>
<property name="windowTitle">
<string>Configuration</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="layout_name">
<item>
<widget class="QLabel" name="label_name">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Name</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_name"/>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_comment">
<item>
<widget class="QLabel" name="label_comment">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Comment</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_comment"/>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_command">
<item>
<widget class="QLabel" name="label_command">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Command</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_command"/>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_active">
<item>
<spacer name="spacer_active">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="checkBox_active">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Active</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_null">
<item>
<widget class="QLabel" name="label_null">
<property name="text">
<string>Null</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_null">
<property name="minimum">
<number>0</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_interval">
<item>
<widget class="QLabel" name="label_interval">
<property name="text">
<string>Interval</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_interval">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>10000</number>
</property>
<property name="singleStep">
<number>500</number>
</property>
<property name="value">
<number>3600</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>ExtUpgrade</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>ExtUpgrade</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -0,0 +1,18 @@
[Configuration]
# ACPI devices
ACPIPATH=/sys/class/power_supply/
# May be 'nvidia' (for nvidia), 'ati' (for ATI RADEON), 'disable' or 'auto'
GPUDEV=auto
# HDD temperature
## Set block device for hddtemp comma separated or use 'all' or 'disable'
HDDDEV=all
# cmd
HDDTEMPCMD=sudo hddtemp
# mpd server settings
MPDADDRESS=localhost
MPDPORT=6600
# MPRIS player name or 'auto'. In the most cases it should be a player name
## DBus path is org.mpris.MediaPlayer2.amarok
MPRIS=auto
# Player name. Supported players are 'mpd', 'mpris'
PLAYER=mpris

View File

@ -7,12 +7,12 @@ Type=Service
Icon=utilities-system-monitor
X-KDE-ServiceTypes=Plasma/DataEngine
X-KDE-Library=plasma_engine_extsysmon
X-Plasma-EngineName=ext-sysmon
X-KDE-Library=plasma_dataengine_extsysmon
X-Plasma-EngineName=extsysmon
X-KDE-PluginInfo-Author=Evgeniy Alekseev aka arcanis
X-KDE-PluginInfo-Email=esalexeev@gmail.com
X-KDE-PluginInfo-Name=ext-sysmon
X-KDE-PluginInfo-Name=extsysmon
X-KDE-PluginInfo-Version=@PROJECT_VERSION@
X-KDE-PluginInfo-Category=System Information
X-KDE-PluginInfo-Depends=

View File

@ -0,0 +1,11 @@
[Desktop Entry]
Encoding=UTF-8
Name=aw-get-external-ip
Comment=Custom command to get external IP
Exec=curl ip4.telize.com
X-AW-Prefix=
X-AW-Active=true
X-AW-Output=true
X-AW-Redirect=nothing
X-AW-Interval=1
X-AW-ApiVersion=1

View File

@ -0,0 +1,20 @@
[Desktop Entry]
Encoding=UTF-8
Name=aw-script-template
Comment=Template for external script
# path to command
Exec=/path/to/some/command
# usually you need to leave this field blank
# use this field to setup script language for example
X-AW-Prefix=/prefix/to/command/if/required
# is the script active. true or false
X-AW-Active=false
# is the script has output. true or false
X-AW-Output=false
# use redirect for the script
# stderr2stdout, nothing, stdout2stderr
X-AW-Redirect=nothing
# update interval in default AW intervals
X-AW-Interval=1
# API version
X-AW-ApiVersion=1

View File

@ -0,0 +1,10 @@
[Desktop Entry]
Encoding=UTF-8
Name=default-arch
Comment=Archlinux upgrade info
Exec=pacman -Qu
X-AW-Prefix=
X-AW-Active=false
X-AW-Null=0
X-AW-Interval=3600
X-AW-ApiVersion=1

View File

@ -0,0 +1,10 @@
[Desktop Entry]
Encoding=UTF-8
Name=default-debian
Comment=Debian upgrade info
Exec=apt-show-versions -u -b
X-AW-Prefix=
X-AW-Active=false
X-AW-Null=0
X-AW-Interval=3600
X-AW-ApiVersion=1

View File

@ -0,0 +1,10 @@
[Desktop Entry]
Encoding=UTF-8
Name=default-fedora
Comment=Fedora upgrade info
Exec=yum list updates
X-AW-Prefix=
X-AW-Active=false
X-AW-Null=3
X-AW-Interval=3600
X-AW-ApiVersion=1

View File

@ -0,0 +1,10 @@
[Desktop Entry]
Encoding=UTF-8
Name=default-mandriva
Comment=Mandriva upgrade info
Exec=urpmq --auto-select
X-AW-Prefix=
X-AW-Active=false
X-AW-Null=0
X-AW-Interval=3600
X-AW-ApiVersion=1

View File

@ -0,0 +1,10 @@
[Desktop Entry]
Encoding=UTF-8
Name=default-ubuntu
Comment=Ubuntu upgrade info
Exec=aptitude search '~U'
X-AW-Prefix=
X-AW-Active=false
X-AW-Null=0
X-AW-Interval=3600
X-AW-ApiVersion=1

View File

@ -0,0 +1,37 @@
# generators
if(BUILD_DEB_PACKAGE)
set(CPACK_GENERATOR ${CPACK_GENERATOR} "DEB")
endif()
if(BUILD_RPM_PACKAGE)
set(CPACK_GENERATOR ${CPACK_GENERATOR} "RPM")
endif()
# build properties
set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
# general metadata
set(CPACK_PACKAGE_NAME "plasma-widget-awesome-widgets")
set(CPACK_PACKAGE_CONTACT "${PROJECT_AUTHOR}")
set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}")
set(CPACK_PACKAGE_RELEASE "1")
# doesn't match to official arch :/
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_PACKAGE_RELEASE}.${CMAKE_SYSTEM_PROCESSOR}")
# deb specific
set(CPACK_DEBIAN_PACKAGE_DEPENDS "kdebase-workspace, lm-sensors")
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "Collection of minimalistic Plasmoids which look like Awesome WM widgets (ex-PyTextMonitor)")
set(CPACK_DEBIAN_PACKAGE_ENHANCES "mpd, smartmontools")
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://arcanis.name/projects/awesome-widgets")
set(CPACK_DEBIAN_PACKAGE_SECTION "KDE")
# rpm specific
set(CPACK_RPM_PACKAGE_DESCRIPTION "Collection of minimalistic Plasmoids which look like Awesome WM widgets (ex-PyTextMonitor)")
set(CPACK_RPM_PACKAGE_GROUP "User Interface/Desktops")
set(CPACK_RPM_PACKAGE_LICENSE "${PROJECT_LICENSE}")
set(CPACK_RPM_PACKAGE_REQUIRES "kdebase4-workspace, sensors")
set(CPACK_RPM_PACKAGE_SUGGESTS "mpd, smartmontools")
set(CPACK_RPM_PACKAGE_URL "https://arcanis.name/projects/awesome-widgets")
if(BUILD_DEB_PACKAGE OR BUILD_RPM_PACKAGE)
include(CPack)
endif()

3
sources/sources.kdev4 Normal file
View File

@ -0,0 +1,3 @@
[Project]
Manager=KDevCMakeManager
Name=awesome-widgets

View File

@ -0,0 +1,6 @@
find_package(Gettext REQUIRED)
find_package (KDE4 REQUIRED)
add_subdirectory (awesome-widget)
add_subdirectory (desktop-panel)

View File

@ -0,0 +1,18 @@
set (MO_NAME plasma_applet_awesome-widget.mo)
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 (aw_pofiles ALL DEPENDS ${_gmoFiles})

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,48 @@
#!/bin/sh
# root of translatable sources
BASEDIR="../../"
PATHS="awesome-widget"
PROJECT="plasma_applet_awesome-widget" # project name
BUGADDR="https://github.com/arcan1s/awesome-widgets/issues" # MSGID-Bugs
# working dir
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' | 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
echo 'i18nc("EMAIL OF TRANSLATORS","Your emails");' >> ${WDIR}/rc.cpp
cd ${WDIR}
echo "Done preparing rc files"
echo "Extracting messages"
cd ${BASEDIR}
# see above on sorting
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 \
-kI18N_NOOP:1 -kI18N_NOOP2:1c,2 -kaliasLocale -kki18n:1 -kki18nc:1c,2 -kki18np:1,2 -kki18ncp:1c,2,3 \
--msgid-bugs-address="${BUGADDR}" \
--files-from=infiles.list -D ${BASEDIR} -D ${WDIR} -o ${PROJECT}.pot || { echo "Error while calling xgettext, aborting."; exit 1; }
echo "Done extracting messages"
echo "Merging translations"
catalogs=`find . -name '*.po'`
for cat in $catalogs; do
echo $cat
msgmerge -o $cat.new $cat ${PROJECT}.pot
mv $cat.new $cat
done
echo "Done merging translations"
echo "Cleaning up"
cd ${WDIR}
rm -f rcfiles.list infiles.list rc.cpp
echo "Done"

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,953 @@
# 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/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-02-11 04:56+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"
#: awesome-widget-kde4/awesome-widget.cpp:95
msgid "Run ksysguard"
msgstr ""
#: awesome-widget-kde4/awesome-widget.cpp:98
#: awesome-widget-kf5/package/contents/ui/main.qml:164
msgid "Show README"
msgstr ""
#: awesome-widget-kde4/awesome-widget.cpp:101
msgid "Update text"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:507
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_updates)
#: awesome-widget-kde4/awesome-widget.cpp:106
#: translations/awesome-widget/rc.cpp:98 rc.cpp:98
msgid "Check for updates"
msgstr ""
#: awesome-widget-kde4/awesome-widget.cpp:491
#: awesome-widget-kf5/plugin/awactions.cpp:209
msgid "Current version : %1"
msgstr ""
#: awesome-widget-kde4/awesome-widget.cpp:492
#: awesome-widget-kf5/plugin/awactions.cpp:210
msgid "New version : %1"
msgstr ""
#: awesome-widget-kde4/awesome-widget.cpp:493
#: awesome-widget-kf5/plugin/awactions.cpp:211
msgid "Click \"Ok\" to download"
msgstr ""
#: awesome-widget-kde4/awesome-widget.cpp:494
#: awesome-widget-kf5/plugin/awactions.cpp:213
msgid "There are updates"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:277
#: awesome-widget-kf5/package/contents/ui/widget.qml:239
#: awesome-widget-kf5/plugin/awkeys.cpp:724
#: awesome-widget-kf5/plugin/awkeys.cpp:780
msgid "Tag: %1"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:278
#: awesome-widget-kde4/configuration.cpp:353
#: awesome-widget-kde4/configuration.cpp:386
#: awesome-widget-kf5/plugin/awkeys.cpp:781
#: awesome-widget-kf5/plugin/awkeys.cpp:791
#: awesome-widget-kf5/plugin/awkeys.cpp:802
msgid "Comment: %1"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:352
#: awesome-widget-kde4/configuration.cpp:385
#: awesome-widget-kf5/plugin/awkeys.cpp:790
#: awesome-widget-kf5/plugin/awkeys.cpp:801
msgid "Name: %1"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:354
#: awesome-widget-kde4/configuration.cpp:387
#: awesome-widget-kf5/plugin/awkeys.cpp:792
#: awesome-widget-kf5/plugin/awkeys.cpp:803
msgid "Exec: %1"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:397
msgid ""
"Version %1\n"
"(build date %2)"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:398
#: awesome-widget-kf5/plugin/awactions.cpp:105
msgid "A set of minimalistic plasmoid widgets"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:399
#: awesome-widget-kf5/plugin/awactions.cpp:107
msgid "Links:"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:400
#: awesome-widget-kf5/plugin/awactions.cpp:108
msgid "Homepage"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:401
#: awesome-widget-kf5/plugin/awactions.cpp:109
msgid "Repository"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:402
#: awesome-widget-kf5/plugin/awactions.cpp:110
msgid "Bugtracker"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:403
#: awesome-widget-kf5/plugin/awactions.cpp:111
msgid "Translation issue"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:404
#: awesome-widget-kf5/plugin/awactions.cpp:112
msgid "AUR packages"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:406
#: awesome-widget-kf5/plugin/awactions.cpp:116
msgid "This software is licensed under %1"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:414
#: awesome-widget-kf5/plugin/awactions.cpp:118
msgid "Translators: %1"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:415
#: awesome-widget-kf5/plugin/awactions.cpp:126
msgid "This software uses: %1"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:417
#: awesome-widget-kf5/package/contents/config/config.qml:25
msgid "Widget"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:418
#: awesome-widget-kf5/package/contents/config/config.qml:31
msgid "Advanced"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:419
#: awesome-widget-kf5/package/contents/config/config.qml:37
msgid "Tooltip"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:420
#: awesome-widget-kf5/package/contents/config/config.qml:43
msgid "Appearance"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:421
#: awesome-widget-kf5/package/contents/config/config.qml:49
msgid "DataEngine"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:422
#: awesome-widget-kf5/package/contents/config/config.qml:55
#: awesome-widget-kf5/package/contents/ui/about.qml:42
msgid "About"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:695
#: awesome-widget-kde4/configuration.cpp:721
#: awesome-widget-kde4/configuration.cpp:739
#: awesome-widget-kde4/configuration.cpp:836
#: awesome-widget-kde4/configuration.cpp:878
#: awesome-widget-kf5/plugin/awkeys.cpp:933
#: awesome-widget-kf5/plugin/awkeys.cpp:980
#: awesome-widget-kf5/plugin/awkeys.cpp:1019
msgid "Enter file name"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:696
#: awesome-widget-kde4/configuration.cpp:722
#: awesome-widget-kde4/configuration.cpp:740
#: awesome-widget-kde4/configuration.cpp:837
#: awesome-widget-kde4/configuration.cpp:879
#: awesome-widget-kf5/plugin/awkeys.cpp:934
#: awesome-widget-kf5/plugin/awkeys.cpp:981
#: awesome-widget-kf5/plugin/awkeys.cpp:1020
msgid "File name"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:757
#: awesome-widget-kde4/configuration.cpp:783
msgid "Edit"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:758
#: awesome-widget-kde4/configuration.cpp:784
#: awesome-widget-kf5/plugin/awkeys.cpp:56
msgid "Copy"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:759
#: awesome-widget-kde4/configuration.cpp:785
#: awesome-widget-kde4/configuration.cpp:807
#: awesome-widget-kf5/plugin/awkeys.cpp:58
msgid "Remove"
msgstr ""
#: awesome-widget-kde4/configuration.cpp:1042
#: awesome-widget-kf5/plugin/awactions.cpp:141
msgid "Select font"
msgstr ""
#: awesome-widget-kde4/graphicalitem.cpp:489
#: awesome-widget-kf5/plugin/graphicalitem.cpp:491
msgid "Select color"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/about.qml:75
msgid "Acknowledgment"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:104
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_background)
#: awesome-widget-kf5/package/contents/ui/advanced.qml:82
#: translations/awesome-widget/rc.cpp:6 rc.cpp:6
msgid "Enable background"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:121
#. i18n: ectx: property (text), widget (QLabel, label_timeFormat)
#: awesome-widget-kf5/package/contents/ui/advanced.qml:94
#: translations/awesome-widget/rc.cpp:9 rc.cpp:9
msgid "Custom time format"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:163
#. i18n: ectx: property (text), widget (QLabel, label_uptimeFormat)
#: awesome-widget-kf5/package/contents/ui/advanced.qml:111
#: translations/awesome-widget/rc.cpp:30 rc.cpp:30
msgid "Custom uptime format"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:189
#. i18n: ectx: property (text), widget (QLabel, label_tempUnits)
#: awesome-widget-kf5/package/contents/ui/advanced.qml:128
#: translations/awesome-widget/rc.cpp:41 rc.cpp:41
msgid "Temperature units"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/advanced.qml:136
msgid "Celsius"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/advanced.qml:140
msgid "Fahrenheit"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/advanced.qml:144
msgid "Kelvin"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/advanced.qml:148
msgid "Reaumur"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/advanced.qml:152
msgid "cm^-1"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/advanced.qml:156
msgid "kJ/mol"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/advanced.qml:160
msgid "kcal/mol"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:392
#. i18n: ectx: property (text), widget (QLabel, label_acOnline)
#: awesome-widget-kf5/package/contents/ui/advanced.qml:183
#: translations/awesome-widget/rc.cpp:80 rc.cpp:80
msgid "AC online tag"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:422
#. i18n: ectx: property (text), widget (QLabel, label_acOffline)
#: awesome-widget-kf5/package/contents/ui/advanced.qml:200
#: translations/awesome-widget/rc.cpp:86 rc.cpp:86
msgid "AC offline tag"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:448
#. i18n: ectx: property (text), widget (QLabel, label_bars)
#: awesome-widget-kf5/package/contents/ui/advanced.qml:217
#: translations/awesome-widget/rc.cpp:92 rc.cpp:92
msgid "Bars"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/advanced.qml:221
msgid "Edit bars"
msgstr ""
#. i18n: file: awesome-widget-kde4/appearance.ui:55
#. i18n: ectx: property (text), widget (QLabel, label_interval)
#: awesome-widget-kf5/package/contents/ui/appearance.qml:61
#: translations/awesome-widget/rc.cpp:101 rc.cpp:101
msgid "Time interval"
msgstr ""
#. i18n: file: awesome-widget-kde4/appearance.ui:85
#. i18n: ectx: property (text), widget (QLabel, label_font)
#. i18n: file: awesome-widget-kde4/widget.ui:53
#. i18n: ectx: property (text), widget (QPushButton, pushButton_font)
#. i18n: file: awesome-widget-kde4/appearance.ui:85
#. i18n: ectx: property (text), widget (QLabel, label_font)
#. i18n: file: awesome-widget-kde4/widget.ui:53
#. i18n: ectx: property (text), widget (QPushButton, pushButton_font)
#: awesome-widget-kf5/package/contents/ui/appearance.qml:81
#: awesome-widget-kf5/package/contents/ui/widget.qml:79
#: translations/awesome-widget/rc.cpp:104
#: translations/awesome-widget/rc.cpp:227 rc.cpp:104 rc.cpp:227
msgid "Font"
msgstr ""
#. i18n: file: awesome-widget-kde4/appearance.ui:109
#. i18n: ectx: property (text), widget (QLabel, label_size)
#: awesome-widget-kf5/package/contents/ui/appearance.qml:99
#: translations/awesome-widget/rc.cpp:107 rc.cpp:107
msgid "Font size"
msgstr ""
#. i18n: file: awesome-widget-kde4/appearance.ui:184
#. i18n: ectx: property (text), widget (QLabel, label_weight)
#: awesome-widget-kf5/package/contents/ui/appearance.qml:119
#: translations/awesome-widget/rc.cpp:116 rc.cpp:116
msgid "Font weight"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/appearance.qml:127
msgid "light"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/appearance.qml:131
#: awesome-widget-kf5/package/contents/ui/appearance.qml:174
msgid "normal"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/appearance.qml:135
msgid "demi bold"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/appearance.qml:139
msgid "bold"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/appearance.qml:143
msgid "black"
msgstr ""
#. i18n: file: awesome-widget-kde4/appearance.ui:156
#. i18n: ectx: property (text), widget (QLabel, label_style)
#: awesome-widget-kf5/package/contents/ui/appearance.qml:166
#: translations/awesome-widget/rc.cpp:113 rc.cpp:113
msgid "Font style"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/appearance.qml:178
msgid "italic"
msgstr ""
#. i18n: file: awesome-widget-kde4/appearance.ui:139
#. i18n: ectx: property (text), widget (QLabel, label_color)
#: awesome-widget-kf5/package/contents/ui/appearance.qml:201
#: translations/awesome-widget/rc.cpp:110 rc.cpp:110
msgid "Font color"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/appearance.qml:219
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:131
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:183
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:235
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:287
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:339
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:391
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:421
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:473
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:503
msgid "Select a color"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/appearance.qml:226
msgid "Select a font"
msgstr ""
#. i18n: file: awesome-widget-kde4/deconfig.ui:245
#. i18n: ectx: property (text), widget (QLabel, label_acpi)
#: awesome-widget-kf5/package/contents/ui/dataengine.qml:69
#: translations/awesome-widget/rc.cpp:137 rc.cpp:137
msgid "ACPI path"
msgstr ""
#. i18n: file: awesome-widget-kde4/deconfig.ui:355
#. i18n: ectx: property (text), widget (QLabel, label_custom)
#: awesome-widget-kf5/package/contents/ui/dataengine.qml:85
#: translations/awesome-widget/rc.cpp:149 rc.cpp:149
msgid "Custom scripts"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/dataengine.qml:89
msgid "Edit scripts"
msgstr ""
#. i18n: file: awesome-widget-kde4/deconfig.ui:78
#. i18n: ectx: property (text), widget (QLabel, label_gpudev)
#: awesome-widget-kf5/package/contents/ui/dataengine.qml:102
#: translations/awesome-widget/rc.cpp:122 rc.cpp:122
msgid "GPU device"
msgstr ""
#. i18n: file: awesome-widget-kde4/deconfig.ui:116
#. i18n: ectx: property (text), widget (QLabel, label_hdddev)
#: awesome-widget-kf5/package/contents/ui/dataengine.qml:127
#: translations/awesome-widget/rc.cpp:125 rc.cpp:125
msgid "HDD"
msgstr ""
#. i18n: file: awesome-widget-kde4/deconfig.ui:61
#. i18n: ectx: property (text), widget (QLabel, label_hddtempCmd)
#: awesome-widget-kf5/package/contents/ui/dataengine.qml:152
#: translations/awesome-widget/rc.cpp:119 rc.cpp:119
msgid "hddtemp cmd"
msgstr ""
#. i18n: file: awesome-widget-kde4/deconfig.ui:209
#. i18n: ectx: property (text), widget (QLabel, label_mpdaddress)
#: awesome-widget-kf5/package/contents/ui/dataengine.qml:168
#: translations/awesome-widget/rc.cpp:134 rc.cpp:134
msgid "MPD address"
msgstr ""
#. i18n: file: awesome-widget-kde4/deconfig.ui:173
#. i18n: ectx: property (text), widget (QLabel, label_mpdport)
#: awesome-widget-kf5/package/contents/ui/dataengine.qml:184
#: translations/awesome-widget/rc.cpp:131 rc.cpp:131
msgid "MPD port"
msgstr ""
#. i18n: file: awesome-widget-kde4/deconfig.ui:284
#. i18n: ectx: property (text), widget (QLabel, label_mpris)
#: awesome-widget-kf5/package/contents/ui/dataengine.qml:203
#: translations/awesome-widget/rc.cpp:146 rc.cpp:146
msgid "MPRIS player name"
msgstr ""
#. i18n: file: awesome-widget-kde4/deconfig.ui:139
#. i18n: ectx: property (text), widget (QLabel, label_playerSelect)
#: awesome-widget-kf5/package/contents/ui/dataengine.qml:223
#: translations/awesome-widget/rc.cpp:128 rc.cpp:128
msgid "Music player"
msgstr ""
#. i18n: file: awesome-widget-kde4/deconfig.ui:397
#. i18n: ectx: property (text), widget (QLabel, label_pkgCommand)
#: awesome-widget-kf5/package/contents/ui/dataengine.qml:248
#: translations/awesome-widget/rc.cpp:155 rc.cpp:155
msgid "Package manager"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/dataengine.qml:252
msgid "Edit command"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/main.qml:163
msgid "Request key"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/main.qml:165
msgid "Check updates"
msgstr ""
#. i18n: file: awesome-widget-kde4/tooltipconfig.ui:38
#. i18n: ectx: property (text), widget (QLabel, label_tooltip)
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:62
#: translations/awesome-widget/rc.cpp:191 rc.cpp:191
msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked."
msgstr ""
#. i18n: file: awesome-widget-kde4/tooltipconfig.ui:68
#. i18n: ectx: property (text), widget (QLabel, label_tooltipNum)
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:73
#: translations/awesome-widget/rc.cpp:194 rc.cpp:194
msgid "Number of values for tooltips"
msgstr ""
#. i18n: file: awesome-widget-kde4/tooltipconfig.ui:101
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_background)
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:93
#: translations/awesome-widget/rc.cpp:197 rc.cpp:197
msgid "Background"
msgstr ""
#. i18n: file: awesome-widget-kde4/tooltipconfig.ui:121
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_cpu)
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:145
#: translations/awesome-widget/rc.cpp:200 rc.cpp:200
msgid "CPU color"
msgstr ""
#. i18n: file: awesome-widget-kde4/tooltipconfig.ui:141
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_cpuclock)
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:197
#: translations/awesome-widget/rc.cpp:203 rc.cpp:203
msgid "CPU clock color"
msgstr ""
#. i18n: file: awesome-widget-kde4/tooltipconfig.ui:161
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_mem)
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:249
#: translations/awesome-widget/rc.cpp:206 rc.cpp:206
msgid "Memory color"
msgstr ""
#. i18n: file: awesome-widget-kde4/tooltipconfig.ui:181
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_swap)
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:301
#: translations/awesome-widget/rc.cpp:209 rc.cpp:209
msgid "Swap color"
msgstr ""
#. i18n: file: awesome-widget-kde4/tooltipconfig.ui:201
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_down)
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:353
#: translations/awesome-widget/rc.cpp:212 rc.cpp:212
msgid "Download speed color"
msgstr ""
#. i18n: file: awesome-widget-kde4/tooltipconfig.ui:218
#. i18n: ectx: property (text), widget (QLabel, label_up)
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:405
#: translations/awesome-widget/rc.cpp:215 rc.cpp:215
msgid "Upload speed color"
msgstr ""
#. i18n: file: awesome-widget-kde4/tooltipconfig.ui:238
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_battery)
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:435
#: translations/awesome-widget/rc.cpp:218 rc.cpp:218
msgid "Battery active color"
msgstr ""
#. i18n: file: awesome-widget-kde4/tooltipconfig.ui:255
#. i18n: ectx: property (text), widget (QLabel, label_batteryIn)
#: awesome-widget-kf5/package/contents/ui/tooltip.qml:487
#: translations/awesome-widget/rc.cpp:221 rc.cpp:221
msgid "Battery inactive color"
msgstr ""
#. i18n: file: awesome-widget-kde4/widget.ui:38
#. i18n: ectx: property (text), widget (QLabel, label)
#: awesome-widget-kf5/package/contents/ui/widget.qml:72
#: translations/awesome-widget/rc.cpp:224 rc.cpp:224
msgid ""
"Detailed information may be found on <a href=\"http://arcanis.name/projects/"
"awesome-widgets/\">project homepage</a>"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:468
#. i18n: ectx: property (text), widget (QPushButton, pushButton_bars)
#. i18n: file: awesome-widget-kde4/deconfig.ui:375
#. i18n: ectx: property (text), widget (QPushButton, pushButton_custom)
#. i18n: file: awesome-widget-kde4/deconfig.ui:417
#. i18n: ectx: property (text), widget (QPushButton, pushButton_pkgCommand)
#. i18n: file: awesome-widget-kde4/widget.ui:208
#. i18n: ectx: property (text), widget (QPushButton, pushButton_tags)
#. i18n: file: awesome-widget-kde4/advanced.ui:468
#. i18n: ectx: property (text), widget (QPushButton, pushButton_bars)
#. i18n: file: awesome-widget-kde4/deconfig.ui:375
#. i18n: ectx: property (text), widget (QPushButton, pushButton_custom)
#. i18n: file: awesome-widget-kde4/deconfig.ui:417
#. i18n: ectx: property (text), widget (QPushButton, pushButton_pkgCommand)
#. i18n: file: awesome-widget-kde4/widget.ui:208
#. i18n: ectx: property (text), widget (QPushButton, pushButton_tags)
#: awesome-widget-kf5/package/contents/ui/widget.qml:221
#: translations/awesome-widget/rc.cpp:95
#: translations/awesome-widget/rc.cpp:152
#: translations/awesome-widget/rc.cpp:158
#: translations/awesome-widget/rc.cpp:239 rc.cpp:95 rc.cpp:152 rc.cpp:158
#: rc.cpp:239
msgid "Add"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/widget.qml:234
msgid "Show value"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/widget.qml:241
#: awesome-widget-kf5/plugin/awkeys.cpp:726
msgid "Value: %1"
msgstr ""
#: awesome-widget-kf5/package/contents/ui/widget.qml:243
msgid "Info: %1"
msgstr ""
#: awesome-widget-kf5/plugin/awactions.cpp:76
msgid "Run %1"
msgstr ""
#: awesome-widget-kf5/plugin/awactions.cpp:113
msgid "openSUSE packages"
msgstr ""
#: awesome-widget-kf5/plugin/awkeys.cpp:57
msgid "Create"
msgstr ""
#: awesome-widget-kf5/plugin/awkeys.cpp:443
msgid "AC online"
msgstr ""
#: awesome-widget-kf5/plugin/awkeys.cpp:445
msgid "AC offline"
msgstr ""
#: awesome-widget-kf5/plugin/awkeys.cpp:462
msgid "High CPU load"
msgstr ""
#: awesome-widget-kf5/plugin/awkeys.cpp:521
msgid "Free space on %1 less than 10%"
msgstr ""
#: awesome-widget-kf5/plugin/awkeys.cpp:587
msgid "High memory usage"
msgstr ""
#: awesome-widget-kf5/plugin/awkeys.cpp:595
msgid "Network device has been changed to %1"
msgstr ""
#: awesome-widget-kf5/plugin/awkeys.cpp:660
msgid "Swap is used"
msgstr ""
#: awesome-widget-kf5/plugin/awkeys.cpp:720
msgid "Select tag"
msgstr ""
#: awesome-widget-kf5/plugin/awkeys.cpp:721
msgid "Tag"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:74
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_popup)
#: translations/awesome-widget/rc.cpp:3 rc.cpp:3
msgid "Enable popup on mouse click"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:146
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_timeFormat)
#: translations/awesome-widget/rc.cpp:12 rc.cpp:12
msgid ""
"$dddd - long weekday\n"
"$ddd - short weekday\n"
"$dd - day\n"
"$d - day w\\o zero\n"
"$MMMM - long month\n"
"$MMM - short month\n"
"$MM - month\n"
"$M - month w\\o zero\n"
"$yyyy - year\n"
"$yy - short year\n"
"$hh - hours (24 only)\n"
"$h - hours w\\o zero (24 only)\n"
"$mm - minutes\n"
"$m - minutes w\\o zero\n"
"$ss - seconds\n"
"$s - seconds w\\o zero"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:178
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_uptimeFormat)
#: translations/awesome-widget/rc.cpp:33 rc.cpp:33
msgid ""
"$dd - uptime days\n"
"$d - uptime days without zero\n"
"$hh - uptime hours\n"
"$h - uptime hours without zero\n"
"$mm - uptime minutes\n"
"$m - uptime minutes without zero"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:248
#. i18n: ectx: property (text), widget (QLabel, label_tempDevice)
#: translations/awesome-widget/rc.cpp:44 rc.cpp:44
msgid "Temperature devices"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:255
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_tempDevice)
#. i18n: file: awesome-widget-kde4/advanced.ui:279
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_fanDevice)
#. i18n: file: awesome-widget-kde4/advanced.ui:303
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_mount)
#. i18n: file: awesome-widget-kde4/advanced.ui:327
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_hddSpeedDevice)
#. i18n: file: awesome-widget-kde4/advanced.ui:351
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_hddDevice)
#. i18n: file: awesome-widget-kde4/advanced.ui:255
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_tempDevice)
#. i18n: file: awesome-widget-kde4/advanced.ui:279
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_fanDevice)
#. i18n: file: awesome-widget-kde4/advanced.ui:303
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_mount)
#. i18n: file: awesome-widget-kde4/advanced.ui:327
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_hddSpeedDevice)
#. i18n: file: awesome-widget-kde4/advanced.ui:351
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_hddDevice)
#: translations/awesome-widget/rc.cpp:47 translations/awesome-widget/rc.cpp:53
#: translations/awesome-widget/rc.cpp:59 translations/awesome-widget/rc.cpp:65
#: translations/awesome-widget/rc.cpp:71 rc.cpp:47 rc.cpp:53 rc.cpp:59
#: rc.cpp:65 rc.cpp:71
msgid "Editable"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:272
#. i18n: ectx: property (text), widget (QLabel, label_fanDevice)
#: translations/awesome-widget/rc.cpp:50 rc.cpp:50
msgid "Fan devices"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:296
#. i18n: ectx: property (text), widget (QLabel, label_mount)
#: translations/awesome-widget/rc.cpp:56 rc.cpp:56
msgid "Mount points"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:320
#. i18n: ectx: property (text), widget (QLabel, label_hddSpeedDevice)
#: translations/awesome-widget/rc.cpp:62 rc.cpp:62
msgid "HDD devices (speed)"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:344
#. i18n: ectx: property (text), widget (QLabel, label_hddDevice)
#: translations/awesome-widget/rc.cpp:68 rc.cpp:68
msgid "HDD devices (temp)"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:362
#. i18n: ectx: property (toolTip), widget (QCheckBox, checkBox_netdev)
#: translations/awesome-widget/rc.cpp:74 rc.cpp:74
msgid "Disable auto select device and set specified device"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:368
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_netdev)
#: translations/awesome-widget/rc.cpp:77 rc.cpp:77
msgid "Set network device"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:402
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_acOnline)
#: translations/awesome-widget/rc.cpp:83 rc.cpp:83
msgid "Line, which returns when AC is online"
msgstr ""
#. i18n: file: awesome-widget-kde4/advanced.ui:432
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_acOffline)
#: translations/awesome-widget/rc.cpp:89 rc.cpp:89
msgid "Line, which returns when AC is offline"
msgstr ""
#. i18n: file: awesome-widget-kde4/deconfig.ui:255
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_acpi)
#: translations/awesome-widget/rc.cpp:140 rc.cpp:140
msgid "\"/sys/class/power_supply/\" by default"
msgstr ""
#. i18n: file: awesome-widget-kde4/deconfig.ui:266
#. i18n: ectx: property (text), widget (QLabel, label_mprisInfo)
#: translations/awesome-widget/rc.cpp:143 rc.cpp:143
msgid "<b>NOTE:</b> Player DBus interface should be an active"
msgstr ""
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:14
#. i18n: ectx: property (windowTitle), widget (QDialog, GraphicalItem)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:14
#. i18n: ectx: property (windowTitle), widget (QDialog, GraphicalItem)
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:14
#. i18n: ectx: property (windowTitle), widget (QDialog, GraphicalItem)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:14
#. i18n: ectx: property (windowTitle), widget (QDialog, GraphicalItem)
#: translations/awesome-widget/rc.cpp:161
#: translations/awesome-widget/rc.cpp:242 rc.cpp:161 rc.cpp:242
msgid "Configuration"
msgstr ""
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:22
#. i18n: ectx: property (text), widget (QLabel, label_name)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:22
#. i18n: ectx: property (text), widget (QLabel, label_name)
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:22
#. i18n: ectx: property (text), widget (QLabel, label_name)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:22
#. i18n: ectx: property (text), widget (QLabel, label_name)
#: translations/awesome-widget/rc.cpp:164
#: translations/awesome-widget/rc.cpp:245 rc.cpp:164 rc.cpp:245
msgid "Name"
msgstr ""
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:49
#. i18n: ectx: property (text), widget (QLabel, label_comment)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:49
#. i18n: ectx: property (text), widget (QLabel, label_comment)
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:49
#. i18n: ectx: property (text), widget (QLabel, label_comment)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:49
#. i18n: ectx: property (text), widget (QLabel, label_comment)
#: translations/awesome-widget/rc.cpp:167
#: translations/awesome-widget/rc.cpp:248 rc.cpp:167 rc.cpp:248
msgid "Comment"
msgstr ""
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:66
#. i18n: ectx: property (text), widget (QLabel, label_value)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:66
#. i18n: ectx: property (text), widget (QLabel, label_value)
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:66
#. i18n: ectx: property (text), widget (QLabel, label_value)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:66
#. i18n: ectx: property (text), widget (QLabel, label_value)
#: translations/awesome-widget/rc.cpp:170
#: translations/awesome-widget/rc.cpp:251 rc.cpp:170 rc.cpp:251
msgid "Value"
msgstr ""
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:87
#. i18n: ectx: property (text), widget (QLabel, label_activeColor)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:87
#. i18n: ectx: property (text), widget (QLabel, label_activeColor)
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:87
#. i18n: ectx: property (text), widget (QLabel, label_activeColor)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:87
#. i18n: ectx: property (text), widget (QLabel, label_activeColor)
#: translations/awesome-widget/rc.cpp:173
#: translations/awesome-widget/rc.cpp:254 rc.cpp:173 rc.cpp:254
msgid "Active color"
msgstr ""
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:108
#. i18n: ectx: property (text), widget (QLabel, label_inactiveColor)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:108
#. i18n: ectx: property (text), widget (QLabel, label_inactiveColor)
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:108
#. i18n: ectx: property (text), widget (QLabel, label_inactiveColor)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:108
#. i18n: ectx: property (text), widget (QLabel, label_inactiveColor)
#: translations/awesome-widget/rc.cpp:176
#: translations/awesome-widget/rc.cpp:257 rc.cpp:176 rc.cpp:257
msgid "Inactive color"
msgstr ""
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:129
#. i18n: ectx: property (text), widget (QLabel, label_type)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:129
#. i18n: ectx: property (text), widget (QLabel, label_type)
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:129
#. i18n: ectx: property (text), widget (QLabel, label_type)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:129
#. i18n: ectx: property (text), widget (QLabel, label_type)
#: translations/awesome-widget/rc.cpp:179
#: translations/awesome-widget/rc.cpp:260 rc.cpp:179 rc.cpp:260
msgid "Type"
msgstr ""
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:162
#. i18n: ectx: property (text), widget (QLabel, label_direction)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:162
#. i18n: ectx: property (text), widget (QLabel, label_direction)
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:162
#. i18n: ectx: property (text), widget (QLabel, label_direction)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:162
#. i18n: ectx: property (text), widget (QLabel, label_direction)
#: translations/awesome-widget/rc.cpp:182
#: translations/awesome-widget/rc.cpp:263 rc.cpp:182 rc.cpp:263
msgid "Direction"
msgstr ""
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:190
#. i18n: ectx: property (text), widget (QLabel, label_height)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:190
#. i18n: ectx: property (text), widget (QLabel, label_height)
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:190
#. i18n: ectx: property (text), widget (QLabel, label_height)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:190
#. i18n: ectx: property (text), widget (QLabel, label_height)
#: translations/awesome-widget/rc.cpp:185
#: translations/awesome-widget/rc.cpp:266 rc.cpp:185 rc.cpp:266
msgid "Height"
msgstr ""
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:214
#. i18n: ectx: property (text), widget (QLabel, label_width)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:214
#. i18n: ectx: property (text), widget (QLabel, label_width)
#. i18n: file: awesome-widget-kde4/graphicalitem.ui:214
#. i18n: ectx: property (text), widget (QLabel, label_width)
#. i18n: file: awesome-widget-kf5/plugin/graphicalitem.ui:214
#. i18n: ectx: property (text), widget (QLabel, label_width)
#: translations/awesome-widget/rc.cpp:188
#: translations/awesome-widget/rc.cpp:269 rc.cpp:188 rc.cpp:269
msgid "Width"
msgstr ""
#. i18n: file: awesome-widget-kde4/widget.ui:90
#. i18n: ectx: property (shortcut), widget (QPushButton, pushButton_bold)
#: translations/awesome-widget/rc.cpp:230 rc.cpp:230
msgid "Ctrl+B"
msgstr ""
#. i18n: file: awesome-widget-kde4/widget.ui:102
#. i18n: ectx: property (shortcut), widget (QPushButton, pushButton_italic)
#: translations/awesome-widget/rc.cpp:233 rc.cpp:233
msgid "Ctrl+I"
msgstr ""
#. i18n: file: awesome-widget-kde4/widget.ui:114
#. i18n: ectx: property (shortcut), widget (QPushButton, pushButton_underline)
#: translations/awesome-widget/rc.cpp:236 rc.cpp:236
msgid "Ctrl+U"
msgstr ""
#: translations/awesome-widget/rc.cpp:270 rc.cpp:270
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr ""
#: translations/awesome-widget/rc.cpp:271 rc.cpp:271
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr ""

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,18 @@
set (MO_NAME plasma_applet_desktop-panel.mo)
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 (dp_pofiles ALL DEPENDS ${_gmoFiles})

View File

@ -0,0 +1,456 @@
# Copyright (C) 2014
# This file is distributed under the same license as the PyTextMonitor package.
#
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014, 2015.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-02-11 05:00+0300\n"
"PO-Revision-Date: 2015-02-11 05:01+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: English <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"
#: desktop-panel-kde4/desktop-panel.cpp:193
#: desktop-panel-kf5/plugin/dpadds.cpp:479
msgid "Top Edge"
msgstr "Top Edge"
#: desktop-panel-kde4/desktop-panel.cpp:195
#: desktop-panel-kf5/plugin/dpadds.cpp:481
msgid "Bottom Edge"
msgstr "Bottom Edge"
#: desktop-panel-kde4/desktop-panel.cpp:197
#: desktop-panel-kf5/plugin/dpadds.cpp:483
msgid "Left Edge"
msgstr "Left Edge"
#: desktop-panel-kde4/desktop-panel.cpp:199
#: desktop-panel-kf5/plugin/dpadds.cpp:485
msgid "Right Edge"
msgstr "Right Edge"
#: desktop-panel-kde4/desktop-panel.cpp:201
msgid "Unknown Position (%1)"
msgstr "Unknown Position (%1)"
#: desktop-panel-kde4/desktop-panel.cpp:473
#: desktop-panel-kf5/package/contents/config/config.qml:25
msgid "Widget"
msgstr "Widget"
#: desktop-panel-kde4/desktop-panel.cpp:474
msgid "Appearance"
msgstr "Appearance"
#: desktop-panel-kde4/desktop-panel.cpp:475
msgid "Toggle panels"
msgstr "Toggle panels"
#: desktop-panel-kde4/desktop-panel.cpp:596
#: desktop-panel-kf5/plugin/dpadds.cpp:354
msgid "Select font"
msgstr "Select font"
#: desktop-panel-kf5/package/contents/config/config.qml:31
msgid "Advanced"
msgstr "Advanced"
#. i18n: file: desktop-panel-kde4/appearance.ui:30
#. i18n: ectx: attribute (title), widget (QWidget, tab_active)
#: desktop-panel-kf5/package/contents/config/config.qml:37
#: translations/desktop-panel/rc.cpp:3 rc.cpp:3
msgid "Active desktop"
msgstr "Active desktop"
#. i18n: file: desktop-panel-kde4/appearance.ui:188
#. i18n: ectx: attribute (title), widget (QWidget, tab_inactive)
#: desktop-panel-kf5/package/contents/config/config.qml:43
#: translations/desktop-panel/rc.cpp:21 rc.cpp:21
msgid "Inactive desktop"
msgstr "Inactive desktop"
#: desktop-panel-kf5/package/contents/config/config.qml:49
#: desktop-panel-kf5/package/contents/ui/about.qml:42
msgid "About"
msgstr "About"
#: desktop-panel-kf5/package/contents/ui/about.qml:75
msgid "Acknowledgment"
msgstr "Acknowledgment"
#. i18n: file: desktop-panel-kde4/appearance.ui:53
#. i18n: ectx: property (text), widget (QLabel, label_fontActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:211
#. i18n: ectx: property (text), widget (QLabel, label_fontInactive)
#. i18n: file: desktop-panel-kde4/widget.ui:122
#. i18n: ectx: property (text), widget (QPushButton, pushButton_font)
#. i18n: file: desktop-panel-kde4/appearance.ui:53
#. i18n: ectx: property (text), widget (QLabel, label_fontActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:211
#. i18n: ectx: property (text), widget (QLabel, label_fontInactive)
#. i18n: file: desktop-panel-kde4/widget.ui:122
#. i18n: ectx: property (text), widget (QPushButton, pushButton_font)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:61
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:60
#: desktop-panel-kf5/package/contents/ui/widget.qml:51
#: translations/desktop-panel/rc.cpp:6 translations/desktop-panel/rc.cpp:24
#: translations/desktop-panel/rc.cpp:48 rc.cpp:6 rc.cpp:24 rc.cpp:48
msgid "Font"
msgstr "Font"
#. i18n: file: desktop-panel-kde4/appearance.ui:70
#. i18n: ectx: property (text), widget (QLabel, label_fontSizeActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:228
#. i18n: ectx: property (text), widget (QLabel, label_fontSizeInactive)
#. i18n: file: desktop-panel-kde4/appearance.ui:70
#. i18n: ectx: property (text), widget (QLabel, label_fontSizeActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:228
#. i18n: ectx: property (text), widget (QLabel, label_fontSizeInactive)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:79
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:78
#: translations/desktop-panel/rc.cpp:9 translations/desktop-panel/rc.cpp:27
#: rc.cpp:9 rc.cpp:27
msgid "Font size"
msgstr "Font size"
#. i18n: file: desktop-panel-kde4/appearance.ui:114
#. i18n: ectx: property (text), widget (QLabel, label_fontWeightActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:272
#. i18n: ectx: property (text), widget (QLabel, label_fontWeightInactive)
#. i18n: file: desktop-panel-kde4/appearance.ui:114
#. i18n: ectx: property (text), widget (QLabel, label_fontWeightActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:272
#. i18n: ectx: property (text), widget (QLabel, label_fontWeightInactive)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:99
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:98
#: translations/desktop-panel/rc.cpp:15 translations/desktop-panel/rc.cpp:33
#: rc.cpp:15 rc.cpp:33
msgid "Font weight"
msgstr "Font weight"
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:107
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:106
msgid "light"
msgstr "light"
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:111
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:154
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:110
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:153
msgid "normal"
msgstr "normal"
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:115
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:114
msgid "demi bold"
msgstr "demi bold"
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:119
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:118
msgid "bold"
msgstr "bold"
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:123
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:122
msgid "black"
msgstr "black"
#. i18n: file: desktop-panel-kde4/appearance.ui:144
#. i18n: ectx: property (text), widget (QLabel, label_fontStyleActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:302
#. i18n: ectx: property (text), widget (QLabel, label_fontStyleInactive)
#. i18n: file: desktop-panel-kde4/appearance.ui:144
#. i18n: ectx: property (text), widget (QLabel, label_fontStyleActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:302
#. i18n: ectx: property (text), widget (QLabel, label_fontStyleInactive)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:146
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:145
#: translations/desktop-panel/rc.cpp:18 translations/desktop-panel/rc.cpp:36
#: rc.cpp:18 rc.cpp:36
msgid "Font style"
msgstr "Font style"
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:158
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:157
msgid "italic"
msgstr "italic"
#. i18n: file: desktop-panel-kde4/appearance.ui:97
#. i18n: ectx: property (text), widget (QLabel, label_fontColorActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:255
#. i18n: ectx: property (text), widget (QLabel, label_fontColorInactive)
#. i18n: file: desktop-panel-kde4/appearance.ui:97
#. i18n: ectx: property (text), widget (QLabel, label_fontColorActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:255
#. i18n: ectx: property (text), widget (QLabel, label_fontColorInactive)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:181
#: desktop-panel-kf5/package/contents/ui/advanced.qml:121
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:180
#: translations/desktop-panel/rc.cpp:12 translations/desktop-panel/rc.cpp:30
#: rc.cpp:12 rc.cpp:30
msgid "Font color"
msgstr "Font color"
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:199
#: desktop-panel-kf5/package/contents/ui/advanced.qml:205
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:198
msgid "Select a color"
msgstr "Select a color"
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:206
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:205
msgid "Select a font"
msgstr "Select a font"
#: desktop-panel-kf5/package/contents/ui/advanced.qml:54
msgid "Tooltip type"
msgstr "Tooltip type"
#: desktop-panel-kf5/package/contents/ui/advanced.qml:62
msgid "contours"
msgstr "contours"
#: desktop-panel-kf5/package/contents/ui/advanced.qml:66
msgid "windows"
msgstr "windows"
#: desktop-panel-kf5/package/contents/ui/advanced.qml:70
msgid "clean desktop"
msgstr "clean desktop"
#: desktop-panel-kf5/package/contents/ui/advanced.qml:74
msgid "names"
msgstr "names"
#: desktop-panel-kf5/package/contents/ui/advanced.qml:78
msgid "none"
msgstr "none"
#. i18n: file: desktop-panel-kde4/widget.ui:314
#. i18n: ectx: property (text), widget (QLabel, label_tooltip)
#: desktop-panel-kf5/package/contents/ui/advanced.qml:101
#: translations/desktop-panel/rc.cpp:63 rc.cpp:63
msgid "Tooltip width"
msgstr "Tooltip width"
#. i18n: file: desktop-panel-kde4/widget.ui:380
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_background)
#: desktop-panel-kf5/package/contents/ui/advanced.qml:146
#: translations/desktop-panel/rc.cpp:72 rc.cpp:72
msgid "Enable background"
msgstr "Enable background"
#. i18n: file: desktop-panel-kde4/widget.ui:410
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_layout)
#: desktop-panel-kf5/package/contents/ui/advanced.qml:160
#: translations/desktop-panel/rc.cpp:75 rc.cpp:75
msgid "Vertical layout"
msgstr "Vertical layout"
#. i18n: file: desktop-panel-kde4/widget.ui:28
#. i18n: ectx: property (text), widget (QLabel, label_mark)
#: desktop-panel-kf5/package/contents/ui/advanced.qml:172
#: translations/desktop-panel/rc.cpp:42 rc.cpp:42
msgid "Mark"
msgstr "Mark"
#: desktop-panel-kf5/package/contents/ui/widget.qml:44
msgid ""
"Detailed information may be found on <a href=\"http://arcanis.name/projects/"
"awesome-widgets/\">project homepage</a>"
msgstr ""
"Detailed information may be found on <a href=\"http://arcanis.name/projects/"
"awesome-widgets/\">project homepage</a>"
#. i18n: file: desktop-panel-kde4/widget.ui:293
#. i18n: ectx: property (text), widget (QPushButton, pushButton_tags)
#: desktop-panel-kf5/package/contents/ui/widget.qml:194
#: translations/desktop-panel/rc.cpp:60 rc.cpp:60
msgid "Add"
msgstr "Add"
#: desktop-panel-kf5/package/contents/ui/widget.qml:207
msgid "Show value"
msgstr "Show value"
#: desktop-panel-kf5/package/contents/ui/widget.qml:212
msgid "Tag: %1"
msgstr "Tag: %1"
#: desktop-panel-kf5/package/contents/ui/widget.qml:214
msgid "Value: %1"
msgstr "Value: %1"
#: desktop-panel-kf5/plugin/dpadds.cpp:318
msgid "A set of minimalistic plasmoid widgets"
msgstr "A set of minimalistic plasmoid widgets"
#: desktop-panel-kf5/plugin/dpadds.cpp:320
msgid "Links:"
msgstr "Links:"
#: desktop-panel-kf5/plugin/dpadds.cpp:321
msgid "Homepage"
msgstr "Homepage"
#: desktop-panel-kf5/plugin/dpadds.cpp:322
msgid "Repository"
msgstr "Repository"
#: desktop-panel-kf5/plugin/dpadds.cpp:323
msgid "Bugtracker"
msgstr "Bugtracker"
#: desktop-panel-kf5/plugin/dpadds.cpp:324
msgid "Translation issue"
msgstr "Translation issue"
#: desktop-panel-kf5/plugin/dpadds.cpp:325
msgid "AUR packages"
msgstr "AUR packages"
#: desktop-panel-kf5/plugin/dpadds.cpp:326
msgid "openSUSE packages"
msgstr "openSUSE packages"
#: desktop-panel-kf5/plugin/dpadds.cpp:329
msgid "This software is licensed under %1"
msgstr "This software is licensed under %1"
#: desktop-panel-kf5/plugin/dpadds.cpp:331
msgid "Translators: %1"
msgstr "Translators: %1"
#: desktop-panel-kf5/plugin/dpadds.cpp:339
msgid "This software uses: %1"
msgstr "This software uses: %1"
#: desktop-panel-kf5/plugin/dpadds.cpp:487
msgid "Unknown location (%1)"
msgstr "Unknown location (%1)"
#. i18n: file: desktop-panel-kde4/toggle.ui:41
#. i18n: ectx: property (text), widget (QLabel, label_info)
#: translations/desktop-panel/rc.cpp:39 rc.cpp:39
msgid "To control panels please set widget shortcut."
msgstr "To control panels please set widget shortcut."
#. i18n: file: desktop-panel-kde4/widget.ui:38
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_mark)
#: translations/desktop-panel/rc.cpp:45 rc.cpp:45
msgid "A mark which will be shown if this desktop is active"
msgstr "A mark which will be shown if this desktop is active"
#. i18n: file: desktop-panel-kde4/widget.ui:157
#. i18n: ectx: property (shortcut), widget (QPushButton, pushButton_bold)
#: translations/desktop-panel/rc.cpp:51 rc.cpp:51
msgid "Ctrl+B"
msgstr "Ctrl+B"
#. i18n: file: desktop-panel-kde4/widget.ui:168
#. i18n: ectx: property (shortcut), widget (QPushButton, pushButton_italic)
#: translations/desktop-panel/rc.cpp:54 rc.cpp:54
msgid "Ctrl+I"
msgstr "Ctrl+I"
#. i18n: file: desktop-panel-kde4/widget.ui:179
#. i18n: ectx: property (shortcut), widget (QPushButton, pushButton_underline)
#: translations/desktop-panel/rc.cpp:57 rc.cpp:57
msgid "Ctrl+U"
msgstr "Ctrl+U"
#. i18n: file: desktop-panel-kde4/widget.ui:324
#. i18n: ectx: property (suffix), widget (QSpinBox, spinBox_tooltip)
#: translations/desktop-panel/rc.cpp:66 rc.cpp:66
msgid "px"
msgstr "px"
#. i18n: file: desktop-panel-kde4/widget.ui:344
#. i18n: ectx: property (text), widget (QLabel, label_tooltipColor)
#: translations/desktop-panel/rc.cpp:69 rc.cpp:69
msgid "Window border color on tooltip"
msgstr "Window border color on tooltip"
#. i18n: file: desktop-panel-kde4/widget.ui:430
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_tooltip)
#: translations/desktop-panel/rc.cpp:78 rc.cpp:78
msgid "Enable tooltip"
msgstr "Enable tooltip"
#. i18n: file: desktop-panel-kde4/widget.ui:444
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_tooltipType)
#: translations/desktop-panel/rc.cpp:81 rc.cpp:81
msgid "Windows"
msgstr "Windows"
#. i18n: file: desktop-panel-kde4/widget.ui:449
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_tooltipType)
#: translations/desktop-panel/rc.cpp:84 rc.cpp:84
msgid "Contours"
msgstr "Contours"
#. i18n: file: desktop-panel-kde4/widget.ui:454
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_tooltipType)
#: translations/desktop-panel/rc.cpp:87 rc.cpp:87
msgid "Clean desktop"
msgstr "Clean desktop"
#: translations/desktop-panel/rc.cpp:88 rc.cpp:88
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Evgeniy Alekseev"
#: translations/desktop-panel/rc.cpp:89 rc.cpp:89
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "esalexeev@gmail.com"
#~ msgid "Show windows instead of contours"
#~ msgstr "Show windows instead of contours"
#~ msgid "Time interval"
#~ msgstr "Time interval"
#~ msgid "Command to change desktop"
#~ msgstr "Command to change desktop"
#~ msgid "Command which will change the current desktop"
#~ msgstr "Command which will change the current desktop"
#~ msgid "Add stretch to left/top of the layout"
#~ msgstr "Add stretch to left/top of the layout"
#~ msgid "Add stretch to right/bottom of the layout"
#~ msgstr "Add stretch to right/bottom of the layout"
#~ msgid "Pattern"
#~ msgstr "Pattern"
#~ msgid ""
#~ "$mark - show mark if the current desktop is active\n"
#~ "$name - desktop name\n"
#~ "$number - desktop number\n"
#~ "$total - total number of desktops"
#~ msgstr ""
#~ "$mark - show mark if the current desktop is active\n"
#~ "$name - desktop name\n"
#~ "$number - desktop number\n"
#~ "$total - total number of desktops"
#~ msgid "Set font family"
#~ msgstr "Set font family"
#~ msgid "Set font weight"
#~ msgstr "Set font weight"
#~ msgid "Set font style"
#~ msgstr "Set font style"

View File

@ -0,0 +1,431 @@
# Copyright (C) 2014
# This file is distributed under the same license as the PyTextMonitor package.
#
# Ernesto Avilés Vzqz <whippiii@gmail.com>, 2014.
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-02-11 05:00+0300\n"
"PO-Revision-Date: 2014-12-15 19:56-0500\n"
"Last-Translator: Ernesto Avilés Vázquez\n"
"Language-Team: Spanish <kde-i18n-doc@kde.org>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 1.5\n"
#: desktop-panel-kde4/desktop-panel.cpp:193
#: desktop-panel-kf5/plugin/dpadds.cpp:479
msgid "Top Edge"
msgstr "Borde superior"
#: desktop-panel-kde4/desktop-panel.cpp:195
#: desktop-panel-kf5/plugin/dpadds.cpp:481
msgid "Bottom Edge"
msgstr "Borde inferior"
#: desktop-panel-kde4/desktop-panel.cpp:197
#: desktop-panel-kf5/plugin/dpadds.cpp:483
msgid "Left Edge"
msgstr "Borde izquierdo"
#: desktop-panel-kde4/desktop-panel.cpp:199
#: desktop-panel-kf5/plugin/dpadds.cpp:485
msgid "Right Edge"
msgstr "Borde derecho"
#: desktop-panel-kde4/desktop-panel.cpp:201
msgid "Unknown Position (%1)"
msgstr "Posición desconocida (%1)"
#: desktop-panel-kde4/desktop-panel.cpp:473
#: desktop-panel-kf5/package/contents/config/config.qml:25
msgid "Widget"
msgstr "Widget"
#: desktop-panel-kde4/desktop-panel.cpp:474
msgid "Appearance"
msgstr "Apariencia"
#: desktop-panel-kde4/desktop-panel.cpp:475
msgid "Toggle panels"
msgstr "Conmutar paneles"
#: desktop-panel-kde4/desktop-panel.cpp:596
#: desktop-panel-kf5/plugin/dpadds.cpp:354
msgid "Select font"
msgstr "Elegir tipo de letra"
#: desktop-panel-kf5/package/contents/config/config.qml:31
msgid "Advanced"
msgstr ""
#. i18n: file: desktop-panel-kde4/appearance.ui:30
#. i18n: ectx: attribute (title), widget (QWidget, tab_active)
#: desktop-panel-kf5/package/contents/config/config.qml:37
#: translations/desktop-panel/rc.cpp:3 rc.cpp:3
msgid "Active desktop"
msgstr "Escritorio activo"
#. i18n: file: desktop-panel-kde4/appearance.ui:188
#. i18n: ectx: attribute (title), widget (QWidget, tab_inactive)
#: desktop-panel-kf5/package/contents/config/config.qml:43
#: translations/desktop-panel/rc.cpp:21 rc.cpp:21
msgid "Inactive desktop"
msgstr "Escritorio inactivo"
#: desktop-panel-kf5/package/contents/config/config.qml:49
#: desktop-panel-kf5/package/contents/ui/about.qml:42
msgid "About"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/about.qml:75
msgid "Acknowledgment"
msgstr ""
#. i18n: file: desktop-panel-kde4/appearance.ui:53
#. i18n: ectx: property (text), widget (QLabel, label_fontActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:211
#. i18n: ectx: property (text), widget (QLabel, label_fontInactive)
#. i18n: file: desktop-panel-kde4/widget.ui:122
#. i18n: ectx: property (text), widget (QPushButton, pushButton_font)
#. i18n: file: desktop-panel-kde4/appearance.ui:53
#. i18n: ectx: property (text), widget (QLabel, label_fontActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:211
#. i18n: ectx: property (text), widget (QLabel, label_fontInactive)
#. i18n: file: desktop-panel-kde4/widget.ui:122
#. i18n: ectx: property (text), widget (QPushButton, pushButton_font)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:61
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:60
#: desktop-panel-kf5/package/contents/ui/widget.qml:51
#: translations/desktop-panel/rc.cpp:6 translations/desktop-panel/rc.cpp:24
#: translations/desktop-panel/rc.cpp:48 rc.cpp:6 rc.cpp:24 rc.cpp:48
msgid "Font"
msgstr "Tipo de letra"
#. i18n: file: desktop-panel-kde4/appearance.ui:70
#. i18n: ectx: property (text), widget (QLabel, label_fontSizeActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:228
#. i18n: ectx: property (text), widget (QLabel, label_fontSizeInactive)
#. i18n: file: desktop-panel-kde4/appearance.ui:70
#. i18n: ectx: property (text), widget (QLabel, label_fontSizeActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:228
#. i18n: ectx: property (text), widget (QLabel, label_fontSizeInactive)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:79
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:78
#: translations/desktop-panel/rc.cpp:9 translations/desktop-panel/rc.cpp:27
#: rc.cpp:9 rc.cpp:27
msgid "Font size"
msgstr "Tamaño de letra"
#. i18n: file: desktop-panel-kde4/appearance.ui:114
#. i18n: ectx: property (text), widget (QLabel, label_fontWeightActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:272
#. i18n: ectx: property (text), widget (QLabel, label_fontWeightInactive)
#. i18n: file: desktop-panel-kde4/appearance.ui:114
#. i18n: ectx: property (text), widget (QLabel, label_fontWeightActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:272
#. i18n: ectx: property (text), widget (QLabel, label_fontWeightInactive)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:99
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:98
#: translations/desktop-panel/rc.cpp:15 translations/desktop-panel/rc.cpp:33
#: rc.cpp:15 rc.cpp:33
msgid "Font weight"
msgstr "Grosor de letra"
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:107
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:106
msgid "light"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:111
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:154
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:110
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:153
msgid "normal"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:115
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:114
msgid "demi bold"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:119
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:118
msgid "bold"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:123
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:122
msgid "black"
msgstr ""
#. i18n: file: desktop-panel-kde4/appearance.ui:144
#. i18n: ectx: property (text), widget (QLabel, label_fontStyleActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:302
#. i18n: ectx: property (text), widget (QLabel, label_fontStyleInactive)
#. i18n: file: desktop-panel-kde4/appearance.ui:144
#. i18n: ectx: property (text), widget (QLabel, label_fontStyleActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:302
#. i18n: ectx: property (text), widget (QLabel, label_fontStyleInactive)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:146
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:145
#: translations/desktop-panel/rc.cpp:18 translations/desktop-panel/rc.cpp:36
#: rc.cpp:18 rc.cpp:36
msgid "Font style"
msgstr "Estilo de letra"
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:158
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:157
msgid "italic"
msgstr ""
#. i18n: file: desktop-panel-kde4/appearance.ui:97
#. i18n: ectx: property (text), widget (QLabel, label_fontColorActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:255
#. i18n: ectx: property (text), widget (QLabel, label_fontColorInactive)
#. i18n: file: desktop-panel-kde4/appearance.ui:97
#. i18n: ectx: property (text), widget (QLabel, label_fontColorActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:255
#. i18n: ectx: property (text), widget (QLabel, label_fontColorInactive)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:181
#: desktop-panel-kf5/package/contents/ui/advanced.qml:121
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:180
#: translations/desktop-panel/rc.cpp:12 translations/desktop-panel/rc.cpp:30
#: rc.cpp:12 rc.cpp:30
msgid "Font color"
msgstr "Color de letra"
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:199
#: desktop-panel-kf5/package/contents/ui/advanced.qml:205
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:198
#, fuzzy
msgid "Select a color"
msgstr "Elegir tipo de letra"
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:206
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:205
#, fuzzy
msgid "Select a font"
msgstr "Elegir tipo de letra"
#: desktop-panel-kf5/package/contents/ui/advanced.qml:54
#, fuzzy
msgid "Tooltip type"
msgstr "Ancho de la ventana emergente"
#: desktop-panel-kf5/package/contents/ui/advanced.qml:62
#, fuzzy
msgid "contours"
msgstr "Contornos"
#: desktop-panel-kf5/package/contents/ui/advanced.qml:66
#, fuzzy
msgid "windows"
msgstr "Ventanas"
#: desktop-panel-kf5/package/contents/ui/advanced.qml:70
#, fuzzy
msgid "clean desktop"
msgstr "Limpiar escritorio"
#: desktop-panel-kf5/package/contents/ui/advanced.qml:74
#, fuzzy
msgid "names"
msgstr "Tu nombre"
#: desktop-panel-kf5/package/contents/ui/advanced.qml:78
msgid "none"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:314
#. i18n: ectx: property (text), widget (QLabel, label_tooltip)
#: desktop-panel-kf5/package/contents/ui/advanced.qml:101
#: translations/desktop-panel/rc.cpp:63 rc.cpp:63
msgid "Tooltip width"
msgstr "Ancho de la ventana emergente"
#. i18n: file: desktop-panel-kde4/widget.ui:380
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_background)
#: desktop-panel-kf5/package/contents/ui/advanced.qml:146
#: translations/desktop-panel/rc.cpp:72 rc.cpp:72
msgid "Enable background"
msgstr "Habilitar fondo"
#. i18n: file: desktop-panel-kde4/widget.ui:410
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_layout)
#: desktop-panel-kf5/package/contents/ui/advanced.qml:160
#: translations/desktop-panel/rc.cpp:75 rc.cpp:75
msgid "Vertical layout"
msgstr "Orientación vertical"
#. i18n: file: desktop-panel-kde4/widget.ui:28
#. i18n: ectx: property (text), widget (QLabel, label_mark)
#: desktop-panel-kf5/package/contents/ui/advanced.qml:172
#: translations/desktop-panel/rc.cpp:42 rc.cpp:42
msgid "Mark"
msgstr "Marca"
#: desktop-panel-kf5/package/contents/ui/widget.qml:44
msgid ""
"Detailed information may be found on <a href=\"http://arcanis.name/projects/"
"awesome-widgets/\">project homepage</a>"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:293
#. i18n: ectx: property (text), widget (QPushButton, pushButton_tags)
#: desktop-panel-kf5/package/contents/ui/widget.qml:194
#: translations/desktop-panel/rc.cpp:60 rc.cpp:60
msgid "Add"
msgstr "Añadir"
#: desktop-panel-kf5/package/contents/ui/widget.qml:207
msgid "Show value"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/widget.qml:212
msgid "Tag: %1"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/widget.qml:214
msgid "Value: %1"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:318
msgid "A set of minimalistic plasmoid widgets"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:320
msgid "Links:"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:321
msgid "Homepage"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:322
msgid "Repository"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:323
msgid "Bugtracker"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:324
msgid "Translation issue"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:325
msgid "AUR packages"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:326
msgid "openSUSE packages"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:329
msgid "This software is licensed under %1"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:331
msgid "Translators: %1"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:339
msgid "This software uses: %1"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:487
#, fuzzy
msgid "Unknown location (%1)"
msgstr "Posición desconocida (%1)"
#. i18n: file: desktop-panel-kde4/toggle.ui:41
#. i18n: ectx: property (text), widget (QLabel, label_info)
#: translations/desktop-panel/rc.cpp:39 rc.cpp:39
msgid "To control panels please set widget shortcut."
msgstr ""
"Para controlar los paneles establece el atajo del teclado para el widget."
#. i18n: file: desktop-panel-kde4/widget.ui:38
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_mark)
#: translations/desktop-panel/rc.cpp:45 rc.cpp:45
msgid "A mark which will be shown if this desktop is active"
msgstr "Una marca será mostrada si este escritorio está activo"
#. i18n: file: desktop-panel-kde4/widget.ui:157
#. i18n: ectx: property (shortcut), widget (QPushButton, pushButton_bold)
#: translations/desktop-panel/rc.cpp:51 rc.cpp:51
msgid "Ctrl+B"
msgstr "Ctrl+B"
#. i18n: file: desktop-panel-kde4/widget.ui:168
#. i18n: ectx: property (shortcut), widget (QPushButton, pushButton_italic)
#: translations/desktop-panel/rc.cpp:54 rc.cpp:54
msgid "Ctrl+I"
msgstr "Ctrl+I"
#. i18n: file: desktop-panel-kde4/widget.ui:179
#. i18n: ectx: property (shortcut), widget (QPushButton, pushButton_underline)
#: translations/desktop-panel/rc.cpp:57 rc.cpp:57
msgid "Ctrl+U"
msgstr "Ctrl+U"
#. i18n: file: desktop-panel-kde4/widget.ui:324
#. i18n: ectx: property (suffix), widget (QSpinBox, spinBox_tooltip)
#: translations/desktop-panel/rc.cpp:66 rc.cpp:66
msgid "px"
msgstr "px"
#. i18n: file: desktop-panel-kde4/widget.ui:344
#. i18n: ectx: property (text), widget (QLabel, label_tooltipColor)
#: translations/desktop-panel/rc.cpp:69 rc.cpp:69
msgid "Window border color on tooltip"
msgstr "Color del borde de la ventana emergente"
#. i18n: file: desktop-panel-kde4/widget.ui:430
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_tooltip)
#: translations/desktop-panel/rc.cpp:78 rc.cpp:78
msgid "Enable tooltip"
msgstr "Habilitar ventana emergente"
#. i18n: file: desktop-panel-kde4/widget.ui:444
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_tooltipType)
#: translations/desktop-panel/rc.cpp:81 rc.cpp:81
msgid "Windows"
msgstr "Ventanas"
#. i18n: file: desktop-panel-kde4/widget.ui:449
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_tooltipType)
#: translations/desktop-panel/rc.cpp:84 rc.cpp:84
msgid "Contours"
msgstr "Contornos"
#. i18n: file: desktop-panel-kde4/widget.ui:454
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_tooltipType)
#: translations/desktop-panel/rc.cpp:87 rc.cpp:87
msgid "Clean desktop"
msgstr "Limpiar escritorio"
#: translations/desktop-panel/rc.cpp:88 rc.cpp:88
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Tu nombre"
#: translations/desktop-panel/rc.cpp:89 rc.cpp:89
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "Tu email"
#~ msgid "Time interval"
#~ msgstr "Intervalo de tiempo"
#~ msgid "Add stretch to left/top of the layout"
#~ msgstr "Añadir extensión a la izquierda/superior de la distribución"
#~ msgid "Add stretch to right/bottom of the layout"
#~ msgstr "Añadir extensión a la derecha/inferior de la distribución"

View File

@ -0,0 +1,48 @@
#!/bin/sh
# root of translatable sources
BASEDIR="../../"
PATHS="desktop-panel"
PROJECT="plasma_applet_desktop-panel" # project name
BUGADDR="https://github.com/arcan1s/awesome-widgets/issues" # MSGID-Bugs
# working dir
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' | 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
echo 'i18nc("EMAIL OF TRANSLATORS","Your emails");' >> ${WDIR}/rc.cpp
cd ${WDIR}
echo "Done preparing rc files"
echo "Extracting messages"
cd ${BASEDIR}
# see above on sorting
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 \
-kI18N_NOOP:1 -kI18N_NOOP2:1c,2 -kaliasLocale -kki18n:1 -kki18nc:1c,2 -kki18np:1,2 -kki18ncp:1c,2,3 \
--msgid-bugs-address="${BUGADDR}" \
--files-from=infiles.list -D ${BASEDIR} -D ${WDIR} -o ${PROJECT}.pot || { echo "Error while calling xgettext, aborting."; exit 1; }
echo "Done extracting messages"
echo "Merging translations"
catalogs=`find . -name '*.po'`
for cat in $catalogs; do
echo $cat
msgmerge -o $cat.new $cat ${PROJECT}.pot
mv $cat.new $cat
done
echo "Done merging translations"
echo "Cleaning up"
cd ${WDIR}
rm -f rcfiles.list infiles.list rc.cpp
echo "Done"

View File

@ -0,0 +1,424 @@
# Copyright (C) 2014
# This file is distributed under the same license as the PyTextMonitor package.
#
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
# Mermouy <mermouy@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-02-11 05:00+0300\n"
"PO-Revision-Date: 2014-06-05 19:24+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: French <kde-french@lists.kde.ru>\n"
"Language: fr\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"
#: desktop-panel-kde4/desktop-panel.cpp:193
#: desktop-panel-kf5/plugin/dpadds.cpp:479
msgid "Top Edge"
msgstr ""
#: desktop-panel-kde4/desktop-panel.cpp:195
#: desktop-panel-kf5/plugin/dpadds.cpp:481
msgid "Bottom Edge"
msgstr ""
#: desktop-panel-kde4/desktop-panel.cpp:197
#: desktop-panel-kf5/plugin/dpadds.cpp:483
msgid "Left Edge"
msgstr ""
#: desktop-panel-kde4/desktop-panel.cpp:199
#: desktop-panel-kf5/plugin/dpadds.cpp:485
msgid "Right Edge"
msgstr ""
#: desktop-panel-kde4/desktop-panel.cpp:201
msgid "Unknown Position (%1)"
msgstr ""
#: desktop-panel-kde4/desktop-panel.cpp:473
#: desktop-panel-kf5/package/contents/config/config.qml:25
msgid "Widget"
msgstr "Widget"
#: desktop-panel-kde4/desktop-panel.cpp:474
msgid "Appearance"
msgstr "Apparence"
#: desktop-panel-kde4/desktop-panel.cpp:475
msgid "Toggle panels"
msgstr ""
#: desktop-panel-kde4/desktop-panel.cpp:596
#: desktop-panel-kf5/plugin/dpadds.cpp:354
msgid "Select font"
msgstr ""
#: desktop-panel-kf5/package/contents/config/config.qml:31
msgid "Advanced"
msgstr ""
#. i18n: file: desktop-panel-kde4/appearance.ui:30
#. i18n: ectx: attribute (title), widget (QWidget, tab_active)
#: desktop-panel-kf5/package/contents/config/config.qml:37
#: translations/desktop-panel/rc.cpp:3 rc.cpp:3
msgid "Active desktop"
msgstr ""
#. i18n: file: desktop-panel-kde4/appearance.ui:188
#. i18n: ectx: attribute (title), widget (QWidget, tab_inactive)
#: desktop-panel-kf5/package/contents/config/config.qml:43
#: translations/desktop-panel/rc.cpp:21 rc.cpp:21
msgid "Inactive desktop"
msgstr ""
#: desktop-panel-kf5/package/contents/config/config.qml:49
#: desktop-panel-kf5/package/contents/ui/about.qml:42
msgid "About"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/about.qml:75
msgid "Acknowledgment"
msgstr ""
#. i18n: file: desktop-panel-kde4/appearance.ui:53
#. i18n: ectx: property (text), widget (QLabel, label_fontActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:211
#. i18n: ectx: property (text), widget (QLabel, label_fontInactive)
#. i18n: file: desktop-panel-kde4/widget.ui:122
#. i18n: ectx: property (text), widget (QPushButton, pushButton_font)
#. i18n: file: desktop-panel-kde4/appearance.ui:53
#. i18n: ectx: property (text), widget (QLabel, label_fontActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:211
#. i18n: ectx: property (text), widget (QLabel, label_fontInactive)
#. i18n: file: desktop-panel-kde4/widget.ui:122
#. i18n: ectx: property (text), widget (QPushButton, pushButton_font)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:61
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:60
#: desktop-panel-kf5/package/contents/ui/widget.qml:51
#: translations/desktop-panel/rc.cpp:6 translations/desktop-panel/rc.cpp:24
#: translations/desktop-panel/rc.cpp:48 rc.cpp:6 rc.cpp:24 rc.cpp:48
msgid "Font"
msgstr "Police"
#. i18n: file: desktop-panel-kde4/appearance.ui:70
#. i18n: ectx: property (text), widget (QLabel, label_fontSizeActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:228
#. i18n: ectx: property (text), widget (QLabel, label_fontSizeInactive)
#. i18n: file: desktop-panel-kde4/appearance.ui:70
#. i18n: ectx: property (text), widget (QLabel, label_fontSizeActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:228
#. i18n: ectx: property (text), widget (QLabel, label_fontSizeInactive)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:79
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:78
#: translations/desktop-panel/rc.cpp:9 translations/desktop-panel/rc.cpp:27
#: rc.cpp:9 rc.cpp:27
msgid "Font size"
msgstr "Taille de la police"
#. i18n: file: desktop-panel-kde4/appearance.ui:114
#. i18n: ectx: property (text), widget (QLabel, label_fontWeightActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:272
#. i18n: ectx: property (text), widget (QLabel, label_fontWeightInactive)
#. i18n: file: desktop-panel-kde4/appearance.ui:114
#. i18n: ectx: property (text), widget (QLabel, label_fontWeightActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:272
#. i18n: ectx: property (text), widget (QLabel, label_fontWeightInactive)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:99
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:98
#: translations/desktop-panel/rc.cpp:15 translations/desktop-panel/rc.cpp:33
#: rc.cpp:15 rc.cpp:33
msgid "Font weight"
msgstr "Épaisseur de la police"
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:107
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:106
msgid "light"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:111
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:154
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:110
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:153
msgid "normal"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:115
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:114
msgid "demi bold"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:119
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:118
msgid "bold"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:123
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:122
msgid "black"
msgstr ""
#. i18n: file: desktop-panel-kde4/appearance.ui:144
#. i18n: ectx: property (text), widget (QLabel, label_fontStyleActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:302
#. i18n: ectx: property (text), widget (QLabel, label_fontStyleInactive)
#. i18n: file: desktop-panel-kde4/appearance.ui:144
#. i18n: ectx: property (text), widget (QLabel, label_fontStyleActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:302
#. i18n: ectx: property (text), widget (QLabel, label_fontStyleInactive)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:146
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:145
#: translations/desktop-panel/rc.cpp:18 translations/desktop-panel/rc.cpp:36
#: rc.cpp:18 rc.cpp:36
msgid "Font style"
msgstr "Style de la police"
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:158
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:157
msgid "italic"
msgstr ""
#. i18n: file: desktop-panel-kde4/appearance.ui:97
#. i18n: ectx: property (text), widget (QLabel, label_fontColorActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:255
#. i18n: ectx: property (text), widget (QLabel, label_fontColorInactive)
#. i18n: file: desktop-panel-kde4/appearance.ui:97
#. i18n: ectx: property (text), widget (QLabel, label_fontColorActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:255
#. i18n: ectx: property (text), widget (QLabel, label_fontColorInactive)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:181
#: desktop-panel-kf5/package/contents/ui/advanced.qml:121
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:180
#: translations/desktop-panel/rc.cpp:12 translations/desktop-panel/rc.cpp:30
#: rc.cpp:12 rc.cpp:30
msgid "Font color"
msgstr "Couleur de la police"
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:199
#: desktop-panel-kf5/package/contents/ui/advanced.qml:205
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:198
msgid "Select a color"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:206
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:205
msgid "Select a font"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/advanced.qml:54
msgid "Tooltip type"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/advanced.qml:62
msgid "contours"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/advanced.qml:66
msgid "windows"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/advanced.qml:70
msgid "clean desktop"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/advanced.qml:74
#, fuzzy
msgid "names"
msgstr "Evgeniy Alekseev"
#: desktop-panel-kf5/package/contents/ui/advanced.qml:78
msgid "none"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:314
#. i18n: ectx: property (text), widget (QLabel, label_tooltip)
#: desktop-panel-kf5/package/contents/ui/advanced.qml:101
#: translations/desktop-panel/rc.cpp:63 rc.cpp:63
msgid "Tooltip width"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:380
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_background)
#: desktop-panel-kf5/package/contents/ui/advanced.qml:146
#: translations/desktop-panel/rc.cpp:72 rc.cpp:72
msgid "Enable background"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:410
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_layout)
#: desktop-panel-kf5/package/contents/ui/advanced.qml:160
#: translations/desktop-panel/rc.cpp:75 rc.cpp:75
msgid "Vertical layout"
msgstr "Positionnement vertical"
#. i18n: file: desktop-panel-kde4/widget.ui:28
#. i18n: ectx: property (text), widget (QLabel, label_mark)
#: desktop-panel-kf5/package/contents/ui/advanced.qml:172
#: translations/desktop-panel/rc.cpp:42 rc.cpp:42
msgid "Mark"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/widget.qml:44
msgid ""
"Detailed information may be found on <a href=\"http://arcanis.name/projects/"
"awesome-widgets/\">project homepage</a>"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:293
#. i18n: ectx: property (text), widget (QPushButton, pushButton_tags)
#: desktop-panel-kf5/package/contents/ui/widget.qml:194
#: translations/desktop-panel/rc.cpp:60 rc.cpp:60
msgid "Add"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/widget.qml:207
msgid "Show value"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/widget.qml:212
msgid "Tag: %1"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/widget.qml:214
msgid "Value: %1"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:318
msgid "A set of minimalistic plasmoid widgets"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:320
msgid "Links:"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:321
msgid "Homepage"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:322
msgid "Repository"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:323
msgid "Bugtracker"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:324
msgid "Translation issue"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:325
msgid "AUR packages"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:326
msgid "openSUSE packages"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:329
msgid "This software is licensed under %1"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:331
msgid "Translators: %1"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:339
msgid "This software uses: %1"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:487
msgid "Unknown location (%1)"
msgstr ""
#. i18n: file: desktop-panel-kde4/toggle.ui:41
#. i18n: ectx: property (text), widget (QLabel, label_info)
#: translations/desktop-panel/rc.cpp:39 rc.cpp:39
msgid "To control panels please set widget shortcut."
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:38
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_mark)
#: translations/desktop-panel/rc.cpp:45 rc.cpp:45
msgid "A mark which will be shown if this desktop is active"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:157
#. i18n: ectx: property (shortcut), widget (QPushButton, pushButton_bold)
#: translations/desktop-panel/rc.cpp:51 rc.cpp:51
msgid "Ctrl+B"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:168
#. i18n: ectx: property (shortcut), widget (QPushButton, pushButton_italic)
#: translations/desktop-panel/rc.cpp:54 rc.cpp:54
msgid "Ctrl+I"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:179
#. i18n: ectx: property (shortcut), widget (QPushButton, pushButton_underline)
#: translations/desktop-panel/rc.cpp:57 rc.cpp:57
msgid "Ctrl+U"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:324
#. i18n: ectx: property (suffix), widget (QSpinBox, spinBox_tooltip)
#: translations/desktop-panel/rc.cpp:66 rc.cpp:66
msgid "px"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:344
#. i18n: ectx: property (text), widget (QLabel, label_tooltipColor)
#: translations/desktop-panel/rc.cpp:69 rc.cpp:69
msgid "Window border color on tooltip"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:430
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_tooltip)
#: translations/desktop-panel/rc.cpp:78 rc.cpp:78
msgid "Enable tooltip"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:444
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_tooltipType)
#: translations/desktop-panel/rc.cpp:81 rc.cpp:81
msgid "Windows"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:449
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_tooltipType)
#: translations/desktop-panel/rc.cpp:84 rc.cpp:84
msgid "Contours"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:454
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_tooltipType)
#: translations/desktop-panel/rc.cpp:87 rc.cpp:87
msgid "Clean desktop"
msgstr ""
#: translations/desktop-panel/rc.cpp:88 rc.cpp:88
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Evgeniy Alekseev"
#: translations/desktop-panel/rc.cpp:89 rc.cpp:89
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "esalexeev@gmail.com"
#~ msgid "Time interval"
#~ msgstr "Intervalle"
#~ msgid "Add stretch to left/top of the layout"
#~ msgstr "Étirer le positionnement vers haut/gauche"
#~ msgid "Add stretch to right/bottom of the layout"
#~ msgstr "Étirer le positionnement vers bas/droite"

View File

@ -0,0 +1,412 @@
# 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/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-02-11 05:00+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"
#: desktop-panel-kde4/desktop-panel.cpp:193
#: desktop-panel-kf5/plugin/dpadds.cpp:479
msgid "Top Edge"
msgstr ""
#: desktop-panel-kde4/desktop-panel.cpp:195
#: desktop-panel-kf5/plugin/dpadds.cpp:481
msgid "Bottom Edge"
msgstr ""
#: desktop-panel-kde4/desktop-panel.cpp:197
#: desktop-panel-kf5/plugin/dpadds.cpp:483
msgid "Left Edge"
msgstr ""
#: desktop-panel-kde4/desktop-panel.cpp:199
#: desktop-panel-kf5/plugin/dpadds.cpp:485
msgid "Right Edge"
msgstr ""
#: desktop-panel-kde4/desktop-panel.cpp:201
msgid "Unknown Position (%1)"
msgstr ""
#: desktop-panel-kde4/desktop-panel.cpp:473
#: desktop-panel-kf5/package/contents/config/config.qml:25
msgid "Widget"
msgstr ""
#: desktop-panel-kde4/desktop-panel.cpp:474
msgid "Appearance"
msgstr ""
#: desktop-panel-kde4/desktop-panel.cpp:475
msgid "Toggle panels"
msgstr ""
#: desktop-panel-kde4/desktop-panel.cpp:596
#: desktop-panel-kf5/plugin/dpadds.cpp:354
msgid "Select font"
msgstr ""
#: desktop-panel-kf5/package/contents/config/config.qml:31
msgid "Advanced"
msgstr ""
#. i18n: file: desktop-panel-kde4/appearance.ui:30
#. i18n: ectx: attribute (title), widget (QWidget, tab_active)
#: desktop-panel-kf5/package/contents/config/config.qml:37
#: translations/desktop-panel/rc.cpp:3 rc.cpp:3
msgid "Active desktop"
msgstr ""
#. i18n: file: desktop-panel-kde4/appearance.ui:188
#. i18n: ectx: attribute (title), widget (QWidget, tab_inactive)
#: desktop-panel-kf5/package/contents/config/config.qml:43
#: translations/desktop-panel/rc.cpp:21 rc.cpp:21
msgid "Inactive desktop"
msgstr ""
#: desktop-panel-kf5/package/contents/config/config.qml:49
#: desktop-panel-kf5/package/contents/ui/about.qml:42
msgid "About"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/about.qml:75
msgid "Acknowledgment"
msgstr ""
#. i18n: file: desktop-panel-kde4/appearance.ui:53
#. i18n: ectx: property (text), widget (QLabel, label_fontActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:211
#. i18n: ectx: property (text), widget (QLabel, label_fontInactive)
#. i18n: file: desktop-panel-kde4/widget.ui:122
#. i18n: ectx: property (text), widget (QPushButton, pushButton_font)
#. i18n: file: desktop-panel-kde4/appearance.ui:53
#. i18n: ectx: property (text), widget (QLabel, label_fontActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:211
#. i18n: ectx: property (text), widget (QLabel, label_fontInactive)
#. i18n: file: desktop-panel-kde4/widget.ui:122
#. i18n: ectx: property (text), widget (QPushButton, pushButton_font)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:61
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:60
#: desktop-panel-kf5/package/contents/ui/widget.qml:51
#: translations/desktop-panel/rc.cpp:6 translations/desktop-panel/rc.cpp:24
#: translations/desktop-panel/rc.cpp:48 rc.cpp:6 rc.cpp:24 rc.cpp:48
msgid "Font"
msgstr ""
#. i18n: file: desktop-panel-kde4/appearance.ui:70
#. i18n: ectx: property (text), widget (QLabel, label_fontSizeActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:228
#. i18n: ectx: property (text), widget (QLabel, label_fontSizeInactive)
#. i18n: file: desktop-panel-kde4/appearance.ui:70
#. i18n: ectx: property (text), widget (QLabel, label_fontSizeActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:228
#. i18n: ectx: property (text), widget (QLabel, label_fontSizeInactive)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:79
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:78
#: translations/desktop-panel/rc.cpp:9 translations/desktop-panel/rc.cpp:27
#: rc.cpp:9 rc.cpp:27
msgid "Font size"
msgstr ""
#. i18n: file: desktop-panel-kde4/appearance.ui:114
#. i18n: ectx: property (text), widget (QLabel, label_fontWeightActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:272
#. i18n: ectx: property (text), widget (QLabel, label_fontWeightInactive)
#. i18n: file: desktop-panel-kde4/appearance.ui:114
#. i18n: ectx: property (text), widget (QLabel, label_fontWeightActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:272
#. i18n: ectx: property (text), widget (QLabel, label_fontWeightInactive)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:99
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:98
#: translations/desktop-panel/rc.cpp:15 translations/desktop-panel/rc.cpp:33
#: rc.cpp:15 rc.cpp:33
msgid "Font weight"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:107
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:106
msgid "light"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:111
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:154
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:110
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:153
msgid "normal"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:115
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:114
msgid "demi bold"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:119
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:118
msgid "bold"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:123
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:122
msgid "black"
msgstr ""
#. i18n: file: desktop-panel-kde4/appearance.ui:144
#. i18n: ectx: property (text), widget (QLabel, label_fontStyleActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:302
#. i18n: ectx: property (text), widget (QLabel, label_fontStyleInactive)
#. i18n: file: desktop-panel-kde4/appearance.ui:144
#. i18n: ectx: property (text), widget (QLabel, label_fontStyleActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:302
#. i18n: ectx: property (text), widget (QLabel, label_fontStyleInactive)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:146
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:145
#: translations/desktop-panel/rc.cpp:18 translations/desktop-panel/rc.cpp:36
#: rc.cpp:18 rc.cpp:36
msgid "Font style"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:158
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:157
msgid "italic"
msgstr ""
#. i18n: file: desktop-panel-kde4/appearance.ui:97
#. i18n: ectx: property (text), widget (QLabel, label_fontColorActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:255
#. i18n: ectx: property (text), widget (QLabel, label_fontColorInactive)
#. i18n: file: desktop-panel-kde4/appearance.ui:97
#. i18n: ectx: property (text), widget (QLabel, label_fontColorActive)
#. i18n: file: desktop-panel-kde4/appearance.ui:255
#. i18n: ectx: property (text), widget (QLabel, label_fontColorInactive)
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:181
#: desktop-panel-kf5/package/contents/ui/advanced.qml:121
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:180
#: translations/desktop-panel/rc.cpp:12 translations/desktop-panel/rc.cpp:30
#: rc.cpp:12 rc.cpp:30
msgid "Font color"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:199
#: desktop-panel-kf5/package/contents/ui/advanced.qml:205
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:198
msgid "Select a color"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/activeapp.qml:206
#: desktop-panel-kf5/package/contents/ui/inactiveapp.qml:205
msgid "Select a font"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/advanced.qml:54
msgid "Tooltip type"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/advanced.qml:62
msgid "contours"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/advanced.qml:66
msgid "windows"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/advanced.qml:70
msgid "clean desktop"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/advanced.qml:74
msgid "names"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/advanced.qml:78
msgid "none"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:314
#. i18n: ectx: property (text), widget (QLabel, label_tooltip)
#: desktop-panel-kf5/package/contents/ui/advanced.qml:101
#: translations/desktop-panel/rc.cpp:63 rc.cpp:63
msgid "Tooltip width"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:380
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_background)
#: desktop-panel-kf5/package/contents/ui/advanced.qml:146
#: translations/desktop-panel/rc.cpp:72 rc.cpp:72
msgid "Enable background"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:410
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_layout)
#: desktop-panel-kf5/package/contents/ui/advanced.qml:160
#: translations/desktop-panel/rc.cpp:75 rc.cpp:75
msgid "Vertical layout"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:28
#. i18n: ectx: property (text), widget (QLabel, label_mark)
#: desktop-panel-kf5/package/contents/ui/advanced.qml:172
#: translations/desktop-panel/rc.cpp:42 rc.cpp:42
msgid "Mark"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/widget.qml:44
msgid ""
"Detailed information may be found on <a href=\"http://arcanis.name/projects/"
"awesome-widgets/\">project homepage</a>"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:293
#. i18n: ectx: property (text), widget (QPushButton, pushButton_tags)
#: desktop-panel-kf5/package/contents/ui/widget.qml:194
#: translations/desktop-panel/rc.cpp:60 rc.cpp:60
msgid "Add"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/widget.qml:207
msgid "Show value"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/widget.qml:212
msgid "Tag: %1"
msgstr ""
#: desktop-panel-kf5/package/contents/ui/widget.qml:214
msgid "Value: %1"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:318
msgid "A set of minimalistic plasmoid widgets"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:320
msgid "Links:"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:321
msgid "Homepage"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:322
msgid "Repository"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:323
msgid "Bugtracker"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:324
msgid "Translation issue"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:325
msgid "AUR packages"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:326
msgid "openSUSE packages"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:329
msgid "This software is licensed under %1"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:331
msgid "Translators: %1"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:339
msgid "This software uses: %1"
msgstr ""
#: desktop-panel-kf5/plugin/dpadds.cpp:487
msgid "Unknown location (%1)"
msgstr ""
#. i18n: file: desktop-panel-kde4/toggle.ui:41
#. i18n: ectx: property (text), widget (QLabel, label_info)
#: translations/desktop-panel/rc.cpp:39 rc.cpp:39
msgid "To control panels please set widget shortcut."
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:38
#. i18n: ectx: property (toolTip), widget (QComboBox, comboBox_mark)
#: translations/desktop-panel/rc.cpp:45 rc.cpp:45
msgid "A mark which will be shown if this desktop is active"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:157
#. i18n: ectx: property (shortcut), widget (QPushButton, pushButton_bold)
#: translations/desktop-panel/rc.cpp:51 rc.cpp:51
msgid "Ctrl+B"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:168
#. i18n: ectx: property (shortcut), widget (QPushButton, pushButton_italic)
#: translations/desktop-panel/rc.cpp:54 rc.cpp:54
msgid "Ctrl+I"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:179
#. i18n: ectx: property (shortcut), widget (QPushButton, pushButton_underline)
#: translations/desktop-panel/rc.cpp:57 rc.cpp:57
msgid "Ctrl+U"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:324
#. i18n: ectx: property (suffix), widget (QSpinBox, spinBox_tooltip)
#: translations/desktop-panel/rc.cpp:66 rc.cpp:66
msgid "px"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:344
#. i18n: ectx: property (text), widget (QLabel, label_tooltipColor)
#: translations/desktop-panel/rc.cpp:69 rc.cpp:69
msgid "Window border color on tooltip"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:430
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_tooltip)
#: translations/desktop-panel/rc.cpp:78 rc.cpp:78
msgid "Enable tooltip"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:444
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_tooltipType)
#: translations/desktop-panel/rc.cpp:81 rc.cpp:81
msgid "Windows"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:449
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_tooltipType)
#: translations/desktop-panel/rc.cpp:84 rc.cpp:84
msgid "Contours"
msgstr ""
#. i18n: file: desktop-panel-kde4/widget.ui:454
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_tooltipType)
#: translations/desktop-panel/rc.cpp:87 rc.cpp:87
msgid "Clean desktop"
msgstr ""
#: translations/desktop-panel/rc.cpp:88 rc.cpp:88
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr ""
#: translations/desktop-panel/rc.cpp:89 rc.cpp:89
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr ""

Some files were not shown because too many files have changed in this diff Show More