Hello community,

here is the log from the commit of package kteatime for openSUSE:Factory 
checked in at 2015-05-11 18:30:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kteatime (Old)
 and      /work/SRC/openSUSE:Factory/.kteatime.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kteatime"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kteatime/kteatime.changes        2015-03-05 
18:17:36.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kteatime.new/kteatime.changes   2015-05-11 
18:30:32.000000000 +0200
@@ -1,0 +2,22 @@
+Sat Apr 11 13:22:39 UTC 2015 - tittiatc...@gmail.com
+
+- Update to KDE Applications 15.04.0
+   * KDE Applications 15.04.0
+   * https://www.kde.org/announcements/announce-applications-15.04.0.php
+
+
+-------------------------------------------------------------------
+Sat Mar 21 18:19:21 UTC 2015 - tittiatc...@gmail.com
+
+- Update to KDE Applications 15.03.95
+   * KDE Applications 15.04 RC
+
+
+-------------------------------------------------------------------
+Sun Mar  8 12:49:40 UTC 2015 - tittiatc...@gmail.com
+
+- Update to KDE Applications 15.03.80
+   * KDE Applications 15.04 Beta
+
+
+-------------------------------------------------------------------

Old:
----
  kteatime-14.12.3.tar.xz

New:
----
  kteatime-15.04.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kteatime.spec ++++++
--- /var/tmp/diff_new_pack.Wpzx99/_old  2015-05-11 18:30:32.000000000 +0200
+++ /var/tmp/diff_new_pack.Wpzx99/_new  2015-05-11 18:30:32.000000000 +0200
@@ -17,19 +17,32 @@
 
 
 Name:           kteatime
-BuildRequires:  libkde4-devel
 BuildRequires:  libqimageblitz-devel
+BuildRequires:  update-desktop-files
+BuildRequires:  extra-cmake-modules
+BuildRequires:  pkgconfig(Qt5Core)
+BuildRequires:  pkgconfig(Qt5Widgets)
+BuildRequires:  pkgconfig(Qt5DBus)
+BuildRequires:  kconfig-devel
+BuildRequires:  kcrash-devel
+BuildRequires:  kdoctools-devel
+BuildRequires:  ki18n-devel
+BuildRequires:  kiconthemes-devel
+BuildRequires:  knotifyconfig-devel
+BuildRequires:  knotifications-devel
+BuildRequires:  kwidgetsaddons-devel
+BuildRequires:  ktextwidgets-devel
+BuildRequires:  kxmlgui-devel
 Summary:        Tea Cooker
 License:        GPL-2.0+
 Group:          Amusements/Toys/Other
 Url:            http://www.kde.org
-Version:        14.12.3
+Version:        15.04.0
 Release:        0
 Source0:        %{name}-%{version}.tar.xz
+Obsoletes:      %{name}5 < %{version}
+Provides:       %{name}5 = %{version}
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-Provides:       kde4-kteatime = 4.3.0
-Obsoletes:      kde4-kteatime < 4.3.0
-%kde4_runtime_requires
 
 %description
 KDE time utility for making a fine cup of tea
@@ -38,15 +51,12 @@
 %setup -q -n %{name}-%{version}
 
 %build
-  %cmake_kde4 -d build
+  %cmake_kf5 -d build
   %make_jobs
 
 %install
-  cd build
-  %makeinstall
-  cd ..
-  %suse_update_desktop_file -r kteatime    Applet
-  %kde_post_install
+  %kf5_makeinstall -C build
+  %suse_update_desktop_file -r org.kde.kteatime    Applet
 
 %clean
   rm -rf $RPM_BUILD_ROOT
@@ -54,10 +64,11 @@
 %files
 %defattr(-,root,root)
 %doc COPYING COPYING.DOC
-%{_kde4_bindir}/kteatime
-%{_kde4_htmldir}/en/kteatime
-%{_kde4_applicationsdir}/kteatime.desktop
-%{_kde4_iconsdir}/hicolor/*/apps/kteatime.*
-%{_kde4_appsdir}/kteatime
+%{_kf5_bindir}/kteatime
+%{_kf5_htmldir}/en/kteatime/
+%{_kf5_applicationsdir}/org.kde.kteatime.desktop
+%{_kf5_iconsdir}/hicolor/*/apps/kteatime.*
+%_datadir/appdata/
+%_datadir/knotifications5/kteatime.notifyrc
 
 %changelog

++++++ kteatime-14.12.3.tar.xz -> kteatime-15.04.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/CMakeLists.txt 
new/kteatime-15.04.0/CMakeLists.txt
--- old/kteatime-14.12.3/CMakeLists.txt 2014-09-11 17:25:13.000000000 +0200
+++ new/kteatime-15.04.0/CMakeLists.txt 2015-03-22 10:32:55.000000000 +0100
@@ -1,21 +1,43 @@
+cmake_minimum_required(VERSION 2.8.12)
 project(kteatime)
 
+find_package(ECM 1.3.0 REQUIRED NO_MODULE)
+set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
+include(ECMInstallIcons)
+
 # Search KDE installation
-find_package( KDE4 REQUIRED )
-include( KDE4Defaults )
-include( MacroLibrary )
+find_package(Qt5 5.2.0 CONFIG REQUIRED
+  Core
+  Widgets
+  DBus
+)
+
+find_package(KF5 5.0.0 REQUIRED
+  Config
+  Crash
+  DocTools
+  I18n
+  IconThemes
+  NotifyConfig
+  Notifications
+  WidgetsAddons
+  TextWidgets
+  XmlGui
+)
+
+include(KDEInstallDirs)
+include(KDECMakeSettings)
+include(KDECompilerSettings)
+include(FeatureSummary)
 
-add_definitions( ${QT_DEFINITIONS} ${QT_QTDBUS_DEFINITIONS} 
${KDE4_DEFINITIONS} )
 add_definitions( -DQT_NO_CAST_FROM_ASCII )
 add_definitions( -DQT_NO_CAST_TO_ASCII )
 add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)
-include_directories( ${KDE4_INCLUDES} )
-
-# The FindKDE4.cmake module sets _KDE4_PLATFORM_DEFINITIONS with
-# definitions like _GNU_SOURCE that are needed on each platform.
-# Put configure checks below this line.
-set( CMAKE_REQUIRED_DEFINITIONS ${_KDE4_PLATFORM_DEFINITIONS} )
 
 ADD_SUBDIRECTORY(doc)
 ADD_SUBDIRECTORY(data)
 ADD_SUBDIRECTORY(src)
+
+install(FILES org.kde.kteatime.appdata.xml DESTINATION 
${SHARE_INSTALL_PREFIX}/appdata/)
+
+feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
Files old/kteatime-14.12.3/data/icons/16-apps-kteatime.png and 
new/kteatime-15.04.0/data/icons/16-apps-kteatime.png differ
Files old/kteatime-14.12.3/data/icons/22-apps-kteatime.png and 
new/kteatime-15.04.0/data/icons/22-apps-kteatime.png differ
Files old/kteatime-14.12.3/data/icons/32-apps-kteatime.png and 
new/kteatime-15.04.0/data/icons/32-apps-kteatime.png differ
Files old/kteatime-14.12.3/data/icons/48-apps-kteatime.png and 
new/kteatime-15.04.0/data/icons/48-apps-kteatime.png differ
Files old/kteatime-14.12.3/data/icons/64-apps-kteatime.png and 
new/kteatime-15.04.0/data/icons/64-apps-kteatime.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/data/icons/CMakeLists.txt 
new/kteatime-15.04.0/data/icons/CMakeLists.txt
--- old/kteatime-14.12.3/data/icons/CMakeLists.txt      2014-09-11 
17:25:13.000000000 +0200
+++ new/kteatime-15.04.0/data/icons/CMakeLists.txt      2015-03-22 
10:32:55.000000000 +0100
@@ -1,2 +1,11 @@
-kde4_install_icons(${ICON_INSTALL_DIR})
+ecm_install_icons(ICONS
+    16-apps-kteatime.png
+    22-apps-kteatime.png
+    32-apps-kteatime.png
+    48-apps-kteatime.png
+    64-apps-kteatime.png
+    sc-apps-kteatime.svgz
+    DESTINATION ${ICON_INSTALL_DIR}
+    THEME hicolor
+)
 
Files old/kteatime-14.12.3/data/icons/hi16-app-kteatime.png and 
new/kteatime-15.04.0/data/icons/hi16-app-kteatime.png differ
Files old/kteatime-14.12.3/data/icons/hi22-app-kteatime.png and 
new/kteatime-15.04.0/data/icons/hi22-app-kteatime.png differ
Files old/kteatime-14.12.3/data/icons/hi32-app-kteatime.png and 
new/kteatime-15.04.0/data/icons/hi32-app-kteatime.png differ
Files old/kteatime-14.12.3/data/icons/hi48-app-kteatime.png and 
new/kteatime-15.04.0/data/icons/hi48-app-kteatime.png differ
Files old/kteatime-14.12.3/data/icons/hi64-app-kteatime.png and 
new/kteatime-15.04.0/data/icons/hi64-app-kteatime.png differ
Files old/kteatime-14.12.3/data/icons/hisc-app-kteatime.svgz and 
new/kteatime-15.04.0/data/icons/hisc-app-kteatime.svgz differ
Files old/kteatime-14.12.3/data/icons/sc-apps-kteatime.svgz and 
new/kteatime-15.04.0/data/icons/sc-apps-kteatime.svgz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/doc/CMakeLists.txt 
new/kteatime-15.04.0/doc/CMakeLists.txt
--- old/kteatime-14.12.3/doc/CMakeLists.txt     2014-09-11 17:25:13.000000000 
+0200
+++ new/kteatime-15.04.0/doc/CMakeLists.txt     2015-03-22 10:32:55.000000000 
+0100
@@ -1,4 +1,4 @@
 ########### install files ###############
 #
 #
-kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en 
SUBDIR kteatime)
+kdoctools_create_handbook(index.docbook INSTALL_DESTINATION 
${HTML_INSTALL_DIR}/en SUBDIR kteatime)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/doc/index.docbook 
new/kteatime-15.04.0/doc/index.docbook
--- old/kteatime-14.12.3/doc/index.docbook      2014-09-11 17:25:13.000000000 
+0200
+++ new/kteatime-15.04.0/doc/index.docbook      2015-03-22 10:32:55.000000000 
+0100
@@ -1,5 +1,5 @@
 <?xml version="1.0" ?>
-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" 
"dtd/kdex.dtd" [
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" 
"dtd/kdedbx45.dtd" [
  <!ENTITY kappname "&kteatime;">
  <!ENTITY package "kdetoys">
  <!ENTITY % addindex "IGNORE">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/org.kde.kteatime.appdata.xml 
new/kteatime-15.04.0/org.kde.kteatime.appdata.xml
--- old/kteatime-14.12.3/org.kde.kteatime.appdata.xml   1970-01-01 
01:00:00.000000000 +0100
+++ new/kteatime-15.04.0/org.kde.kteatime.appdata.xml   2015-03-22 
10:32:55.000000000 +0100
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component type="desktop">
+  <id>org.kde.kteatime.desktop</id>
+  <metadata_license>CC0-1.0</metadata_license>
+  <project_license>GPL-2.0+</project_license>
+  <name>KTeaTime</name>
+  <name xml:lang="ast">KTeaTime</name>
+  <name xml:lang="bs">KTeaTime</name>
+  <name xml:lang="ca">KTeaTime</name>
+  <name xml:lang="cs">KTeaTime</name>
+  <name xml:lang="de">KTeaTime</name>
+  <name xml:lang="en-GB">KTeaTime</name>
+  <name xml:lang="es">KTeaTime</name>
+  <name xml:lang="fi">KTeaTime</name>
+  <name xml:lang="gl">KTeaTime</name>
+  <name xml:lang="it">KTeaTime</name>
+  <name xml:lang="ko">KTeaTime</name>
+  <name xml:lang="lt">KTeaTime</name>
+  <name xml:lang="nl">KTeaTime</name>
+  <name xml:lang="pl">KTeaTime</name>
+  <name xml:lang="pt">KTeaTime</name>
+  <name xml:lang="pt-BR">KTeaTime</name>
+  <name xml:lang="ru">KTeaTime</name>
+  <name xml:lang="sk">KTeaTime</name>
+  <name xml:lang="sl">KTeaTime</name>
+  <name xml:lang="sr">К‑чајанка</name>
+  <name xml:lang="sr-Latn">K‑čajanka</name>
+  <name xml:lang="sr-ijekavian">К‑чајанка</name>
+  <name xml:lang="sr-ijekavianlatin">K‑čajanka</name>
+  <name xml:lang="sv">Tekokaren</name>
+  <name xml:lang="tr">KTeaTime</name>
+  <name xml:lang="uk">KTeaTime</name>
+  <name xml:lang="x-test">xxKTeaTimexx</name>
+  <name xml:lang="zh-CN">KTeaTime</name>
+  <name xml:lang="zh-TW">KTeaTime</name>
+  <summary>Tea Cooker</summary>
+  <summary xml:lang="ast">Tetera</summary>
+  <summary xml:lang="bs">Kuhač čaja</summary>
+  <summary xml:lang="ca">El cuiner de te</summary>
+  <summary xml:lang="cs">Vařič čaje</summary>
+  <summary xml:lang="de">Teekocher</summary>
+  <summary xml:lang="en-GB">Tea Cooker</summary>
+  <summary xml:lang="es">Calentador de té</summary>
+  <summary xml:lang="fi">Teenkeitin</summary>
+  <summary xml:lang="gl">Quece-tés</summary>
+  <summary xml:lang="it">Teiera</summary>
+  <summary xml:lang="ko">차 요리 도구</summary>
+  <summary xml:lang="lt">Arbatos virėjas</summary>
+  <summary xml:lang="nl">Theezetter</summary>
+  <summary xml:lang="pl">Zaparzanie herbaty</summary>
+  <summary xml:lang="pt">Preparação de Chás</summary>
+  <summary xml:lang="pt-BR">Hora do chá</summary>
+  <summary xml:lang="ru">Таймер для заваривания чая</summary>
+  <summary xml:lang="sk">Varič čaju</summary>
+  <summary xml:lang="sl">Kuhalnik čaja</summary>
+  <summary xml:lang="sr">Чајник</summary>
+  <summary xml:lang="sr-Latn">Čajnik</summary>
+  <summary xml:lang="sr-ijekavian">Чајник</summary>
+  <summary xml:lang="sr-ijekavianlatin">Čajnik</summary>
+  <summary xml:lang="sv">Tekokare</summary>
+  <summary xml:lang="tr">Çaycı</summary>
+  <summary xml:lang="uk">Програма для заварювання чаю</summary>
+  <summary xml:lang="x-test">xxTea Cookerxx</summary>
+  <summary xml:lang="zh-CN">煮茶器</summary>
+  <summary xml:lang="zh-TW">煮茶器</summary>
+  <description>
+    <p>KTeaTime is a handy timer for steeping tea. No longer will you have to 
guess at how long it takes for your tea to be ready. Simply select the type of 
tea you have, and it will alert you when the tea is ready to drink.</p>
+    <p xml:lang="ca">El KTeaTime és un temporitzador còmode per a fer el te. 
Ja no haureu d'endevinar quan falta per a que el vostre te estigui llest. 
Simplement seleccioneu el tipus de te que voleu, i l'aplicació us avisarà quan 
està llest.</p>
+    <p xml:lang="de">KTeaTime ist ein praktischer Zeitmesser für ziehenden 
Tee. Sie brauchen nicht länger schätzen, wie lange es dauert, bis Ihr Tee 
fertig ist. Wählen Sie einfach die Teesorte, die Sie haben, und Sie werden 
informiert, sobald Ihr Tee trinkfertig ist.</p>
+    <p xml:lang="en-GB">KTeaTime is a handy timer for steeping tea. No longer 
will you have to guess at how long it takes for your tea to be ready. Simply 
select the type of tea you have, and it will alert you when the tea is ready to 
drink.</p>
+    <p xml:lang="es">KTeaTime es un útil temporizador para tomar té. Usted 
nunca más tendrá que adivinar cuanto tiempo tarda en estar listo el té. 
Sencillamente, seleccione el tipo de té del que disponga y le avisará cuando 
esté listo para beber.</p>
+    <p xml:lang="fi">KTeaTime on kätevä kello teen hautumisajan mittaamiseksi. 
Enää ei tarvitse arvata milloin tee on valmis. Valitse vain teelaji ja KTeaTime 
hälyttää, kun tee on valmista juotavaksi.</p>
+    <p xml:lang="gl">KTeaTime é un temporizador útil para deixar té en 
infusión. Xa non terás que adiviñar o tempo que lle falta ao teu té para estar 
listo. Só tes que seleccionar o tipo de té, e KTeaTime informarate cando o té 
estea listo para tomar.</p>
+    <p xml:lang="it">KTeaTime è un comodo timer per preparare il tè. Non è più 
necessario indovinare quanto tempo ci vuole prima che il tè sia pronto. 
Seleziona il tipo di tè che desideri e il programma ti avviserà quanto è pronto 
da bere.</p>
+    <p xml:lang="ko">KTeaTime은 차를 끓일 때 사용할 수 있는 타이머입니다. 차가 다 우러날 때까지 시간을 기억하지 
않아도 됩니다. 끓일 차 종류를 선택한 다음 다 우러났을 때 알려 줍니다.</p>
+    <p xml:lang="nl">KTeaTime is een handige tijdklok voor het zetten van 
thee. U hoeft niet langer te gokken wanneer uw thee sterk genoeg is. Selecteer 
de theesoort en een waarschuwing verschijnt wanneer de thee klaar is om 
opgedronken te worden.</p>
+    <p xml:lang="pl">KTeaTime jest poręcznym czasomierzem do zaparzania 
herbaty. Nigdy więcej nie będziesz musiał zgadywać ile jeszcze czasu potrzebuje 
twoja herbata. Po prostu wybierz rodzaj herbaty, którą posiadasz, a program 
powiadomi cię kiedy kiedy będzie gotowa do picia.</p>
+    <p xml:lang="pt">O KTeaTime é um cronómetro útil para preparar chás. Nunca 
mais terá de adivinhar quanto tempo leva para o seu chá estar pronto. Basta 
seleccionar o tipo de chá que tem, para que ele o alerte de quando o chá está 
pronto para ser bebido.</p>
+    <p xml:lang="pt-BR">KTeaTime é um temporizador prático para preparar um 
chá. Já não terá mais que adivinhar quanto tempo leva para que o seu chá fique 
pronto. Basta escolher o tipo de chá que deseja, e ele o alertará quando 
estiver pronto para beber.</p>
+    <p xml:lang="ru">KTeaTime — удобный таймер для заваривания чая. Избавляет 
вас от необходимости запоминать, сколько минут готовится каждый сорт чая. 
Просто выберите сорт чая, — и программа сообщит, когда чай будет готов.</p>
+    <p xml:lang="sk">KTeaTime je užitočný časovač pre máčanie čaju. Už nikdy 
nebudete musieť hádať, koľko trvá pripravenie vášho čaju. Jednoducho vyberte 
typ vášho čaju a on vás upozorní, kedy bude pripravený na pitie.</p>
+    <p xml:lang="sl">KTeaTime je priročen časomer za kuhanje čaja. Nič več vam 
ne bo treba ugibati, kako dolgo bo trajalo, preden bo vaš čaj gotov. Enostavno 
izberite vrsto čaja, ki ga imate, in opozorjeni boste, ko bo čaj pripravljen za 
pitje.</p>
+    <p xml:lang="sr">К‑чајанка је згодан одбројавач за преливање чаја. Више не 
морате да памтите колико треба да се чај припреми. Само изаберите врсту чаја, и 
бићете обавештени кад буде спреман за испијање.</p>
+    <p xml:lang="sr-Latn">K‑čajanka je zgodan odbrojavač za prelivanje čaja. 
Više ne morate da pamtite koliko treba da se čaj pripremi. Samo izaberite vrstu 
čaja, i bićete obavešteni kad bude spreman za ispijanje.</p>
+    <p xml:lang="sr-ijekavian">К‑чајанка је згодан одбројавач за преливање 
чаја. Више не морате да памтите колико треба да се чај припреми. Само изаберите 
врсту чаја, и бићете обавештени кад буде спреман за испијање.</p>
+    <p xml:lang="sr-ijekavianlatin">K‑čajanka je zgodan odbrojavač za 
prelivanje čaja. Više ne morate da pamtite koliko treba da se čaj pripremi. 
Samo izaberite vrstu čaja, i bićete obavešteni kad bude spreman za 
ispijanje.</p>
+    <p xml:lang="sv">Tekokaren är ett praktiskt tidur för att brygga te. Du 
behöver inte längre gissa hur länge det tar innan ditt te är klart. Välj helt 
enkelt vilken typ av te du använder, och tekokaren talar om för dig när det är 
klart att dricka.</p>
+    <p xml:lang="tr">KTeaTime çay demlemek için bir araçtır. Artık çayınızın 
ne kadar zaman sonra hazır olacağını tahmin etmenize gerek yok. Basitçe 
çayınızı seçin ve içmeye hazır olduğunda KTeaTime sizi uyarsın.</p>
+    <p xml:lang="uk">KTeaTime — це зручний таймер для заварювання чаю. Вам 
більше не доведеться вгадувати час, коли ваш чай буде готовим. Просто виберіть 
сорт чаю, і програма повідомить вам, коли чай можна буде пити.</p>
+    <p xml:lang="x-test">xxKTeaTime is a handy timer for steeping tea. No 
longer will you have to guess at how long it takes for your tea to be ready. 
Simply select the type of tea you have, and it will alert you when the tea is 
ready to drink.xx</p>
+    <p xml:lang="zh-CN">KTeaTime 
是一个实用的煮茶定时器。您再也不用猜何时茶已完成。只要选择您拥有的茶的类型,它将会提醒您何时茶可以享用。</p>
+    <p xml:lang="zh-TW">KTeaTime 
是煮茶用的計時器。您不再需要猜測您的茶要煮或泡多久。只要選擇茶的種類,時間到它就會提醒你。</p>
+  </description>
+  <url 
type="bugtracker">https://bugs.kde.org/enter_bug.cgi?format=guided&amp;product=kteatime</url>
+  <url 
type="help">http://docs.kde.org/stable/en/kdetoys/kteatime/index.html</url>
+  <screenshots>
+    <screenshot type="default">
+      <image>http://kde.org/images/screenshots/kteatime.png</image>
+    </screenshot>
+  </screenshots>
+  <project_group>KDE</project_group>
+  <provides>
+    <binary>kteatime</binary>
+  </provides>
+</component>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/src/CMakeLists.txt 
new/kteatime-15.04.0/src/CMakeLists.txt
--- old/kteatime-14.12.3/src/CMakeLists.txt     2014-09-11 17:25:13.000000000 
+0200
+++ new/kteatime-15.04.0/src/CMakeLists.txt     2015-03-22 10:32:55.000000000 
+0100
@@ -1,10 +1,23 @@
+add_definitions(-DTRANSLATION_DOMAIN=\"kteatime\")
+
 set(kteatime_SRCS settings.cpp timeedit.cpp toplevel.cpp tealistmodel.cpp 
tea.cpp main.cpp )
 
-kde4_add_ui_files(kteatime_SRCS settings.ui timeedit.ui)
-kde4_add_app_icon(kteatime_SRCS 
"${CMAKE_CURRENT_SOURCE_DIR}/../data/icons/hi*-app-kteatime.png")
-kde4_add_executable(kteatime ${kteatime_SRCS})
-target_link_libraries(kteatime ${KDE4_KNOTIFYCONFIG_LIBS} ${KDE4_KDEUI_LIBS})
+ki18n_wrap_ui(kteatime_SRCS settings.ui timeedit.ui)
+
+add_executable(kteatime ${kteatime_SRCS})
+target_link_libraries(kteatime
+    KF5::ConfigCore
+    KF5::ConfigGui
+    KF5::Crash
+    KF5::I18n
+    KF5::IconThemes
+    KF5::Notifications
+    KF5::NotifyConfig
+    KF5::TextWidgets
+    KF5::WidgetsAddons
+    KF5::XmlGui
+)
 
 install( TARGETS kteatime ${INSTALL_TARGETS_DEFAULT_ARGS} )
-install( PROGRAMS kteatime.desktop  DESTINATION ${XDG_APPS_INSTALL_DIR} )
-install( FILES kteatime.notifyrc  DESTINATION ${DATA_INSTALL_DIR}/kteatime )
+install( PROGRAMS org.kde.kteatime.desktop  DESTINATION 
${XDG_APPS_INSTALL_DIR} )
+install( FILES kteatime.notifyrc  DESTINATION ${KNOTIFYRC_INSTALL_DIR} )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/src/kteatime.desktop 
new/kteatime-15.04.0/src/kteatime.desktop
--- old/kteatime-14.12.3/src/kteatime.desktop   2014-09-11 17:25:13.000000000 
+0200
+++ new/kteatime-15.04.0/src/kteatime.desktop   1970-01-01 01:00:00.000000000 
+0100
@@ -1,142 +0,0 @@
-[Desktop Entry]
-Name=KTeaTime
-Name[ar]=برنامج وقت الشاي KTeaTime
-Name[be]=KTeaTime
-Name[bg]=KTeaTime
-Name[bn]=কে-টী-টাইম
-Name[br]=KTeaTime
-Name[bs]=KTeaTime
-Name[ca]=KTeaTime
-Name[ca@valencia]=KTeaTime
-Name[cs]=KTeaTime
-Name[cy]=KTeaTime
-Name[da]=KTeaTime
-Name[de]=KTeaTime
-Name[el]=KTeaTime
-Name[en_GB]=KTeaTime
-Name[eo]=KTeaTime
-Name[es]=KTeaTime
-Name[et]=KTeaTime
-Name[eu]=KTeaTime
-Name[fi]=KTeaTime
-Name[fr]=KTeaTime
-Name[ga]=KTeaTime
-Name[gl]=KTeaTime
-Name[he]=KTeaTime
-Name[hne]=के-टी-टाइम
-Name[hr]=KTeaTime
-Name[hu]=KTeaTime
-Name[is]=K-Tetími
-Name[it]=KTeaTime
-Name[ja]=KTeaTime
-Name[kk]=KTeaTime
-Name[km]=KTeaTime
-Name[ko]=KTeaTime
-Name[lt]=KTeaTime
-Name[lv]=KTeaTime
-Name[mk]=КЧајник
-Name[ml]=കെടീടൈം
-Name[mr]=के-टी-टाइम
-Name[nb]=KTeaTime
-Name[nds]=KTeaTime
-Name[ne]=केचिया समय
-Name[nl]=KTeaTime
-Name[nn]=KTeaTime
-Name[pa]=ਕੇ-ਚਾਹ ਸਮਾਂ
-Name[pl]=KTeaTime
-Name[pt]=KTeaTime
-Name[pt_BR]=KTeaTime
-Name[ro]=KTeaTime
-Name[ru]=KTeaTime
-Name[sk]=KTeaTime
-Name[sl]=KTeaTime
-Name[sr]=К‑чајанка
-Name[sr@ijekavian]=К‑чајанка
-Name[sr@ijekavianlatin]=K‑čajanka
-Name[sr@latin]=K‑čajanka
-Name[sv]=Teet är klart
-Name[ta]= கேதேநீர் நேரம்
-Name[tg]=Вақти чой
-Name[th]=ตั้งเวลาทำงาน
-Name[tr]=KTeaTime
-Name[ug]=KTeaTime
-Name[uk]=KTeaTime
-Name[wa]=KTeaTime
-Name[x-test]=xxKTeaTimexx
-Name[zh_CN]=KTeaTime
-Name[zh_TW]=KTeaTime
-GenericName=Tea Cooker
-GenericName[ar]=طنجرة الشاي
-GenericName[be]=Прыгатаўленне гарбаты
-GenericName[bg]=Приготвяне на чай
-GenericName[bn]=চায়ের কেটলি
-GenericName[br]=Ar pod te
-GenericName[bs]=Kuhač čaja
-GenericName[ca]=El cuiner de te
-GenericName[ca@valencia]=El cuiner de te
-GenericName[cs]=Vařič čaje
-GenericName[cy]=Tegell Te
-GenericName[da]=Tekoger
-GenericName[de]=Teekocher
-GenericName[el]=Εργαλείο φτιαξίματος τσαγιού
-GenericName[en_GB]=Tea Cooker
-GenericName[eo]=Tea infuzilo
-GenericName[es]=Tetera
-GenericName[et]=Teekann
-GenericName[eu]=Te prestaketa
-GenericName[fa]=چای‌ساز
-GenericName[fi]=Teenkeitin
-GenericName[fr]=Théière
-GenericName[ga]=Cócaire Tae
-GenericName[gl]=Quece-chá
-GenericName[he]=מבשל התה
-GenericName[hne]=चाय केतली
-GenericName[hr]=Pomoćnik za kuhanje čaja
-GenericName[hu]=Teafőző
-GenericName[is]=Teketillinn
-GenericName[it]=Teiera
-GenericName[ja]=ティーメーカー
-GenericName[kk]=Шәй шығару
-GenericName[km]=ចង្ក្រាន​តែ
-GenericName[ko]=차 끓이기
-GenericName[lt]=Arbatos virėjas
-GenericName[lv]=Tējas vārītājs
-GenericName[mk]=Чајник
-GenericName[ml]=ചായപ്പാത്രം
-GenericName[mr]=चहा कूकर
-GenericName[nb]=Tekoker
-GenericName[nds]=Teekaker
-GenericName[ne]=चिया बनाउने
-GenericName[nl]=Theezetter
-GenericName[nn]=Tekokaren
-GenericName[pa]=ਚਾਹ ਬਣਾਓ
-GenericName[pl]=Przyrządzanie herbaty
-GenericName[pt]=Cozinheiro de Chá
-GenericName[pt_BR]=Hora do chá
-GenericName[ro]=Ceainic
-GenericName[ru]=Приготовление чая
-GenericName[sk]=Varič čaju
-GenericName[sl]=Kuhalnik čaja
-GenericName[sr]=Чајник
-GenericName[sr@ijekavian]=Чајник
-GenericName[sr@ijekavianlatin]=Čajnik
-GenericName[sr@latin]=Čajnik
-GenericName[sv]=Tekokaren
-GenericName[ta]= தேநீர் தயாரிப்பான்
-GenericName[tg]=Пухтанин чой
-GenericName[th]=เครื่องมือชงชา
-GenericName[tr]=Çaycı
-GenericName[ug]=چايچى
-GenericName[uk]=Приготування чаю
-GenericName[wa]=Fijheu d' té
-GenericName[x-test]=xxTea Cookerxx
-GenericName[zh_CN]=煮茶器
-GenericName[zh_TW]=煮茶器
-Exec=kteatime
-Icon=kteatime
-Type=Application
-Terminal=false
-X-DocPath=kteatime/index.html
-X-KDE-StartupNotify=true
-X-DBUS-StartupType=Multi
-Categories=Qt;KDE;Utility;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/src/kteatime.notifyrc 
new/kteatime-15.04.0/src/kteatime.notifyrc
--- old/kteatime-14.12.3/src/kteatime.notifyrc  2014-09-11 17:25:13.000000000 
+0200
+++ new/kteatime-15.04.0/src/kteatime.notifyrc  2015-03-22 10:32:55.000000000 
+0100
@@ -2,6 +2,7 @@
 IconName=kteatime
 Comment=Tea Cooker
 Comment[ar]=طنجرة الشاي
+Comment[ast]=Tetera
 Comment[bg]=Приготвяне на чай
 Comment[bs]=Kuhač čaja
 Comment[ca]=El cuiner de te
@@ -122,6 +123,7 @@
 Name[zh_TW]=茶煮好了
 Comment=Tea is ready
 Comment[ar]=الشاي جاهز
+Comment[ast]=El té ta tresnao
 Comment[be]=Гарбата гатова
 Comment[bg]=Чаят е готов
 Comment[bn]=অই চা গরমমম!!!
@@ -251,6 +253,7 @@
 Name[zh_TW]=茶煮好了,怎麼沒人喝
 Comment=Tea is getting lonely.
 Comment[ar]=الشاي يشعر بالوحدة.
+Comment[ast]=El té ta quedándose solo.
 Comment[bg]=Чаят изстива...
 Comment[bs]=Čaj postaje usamljen.
 Comment[ca]=El te està quedant abandonat.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/src/main.cpp 
new/kteatime-15.04.0/src/main.cpp
--- old/kteatime-14.12.3/src/main.cpp   2014-09-11 17:25:13.000000000 +0200
+++ new/kteatime-15.04.0/src/main.cpp   2015-03-22 10:32:55.000000000 +0100
@@ -18,74 +18,82 @@
  */
 #include "toplevel.h"
 
-#include <KApplication>
+#include <QApplication>
+#include <QCommandLineParser>
+
 #include <KAboutData>
-#include <KCmdLineArgs>
+#include <KLocalizedString>
 
 
 int main (int argc, char *argv[])
 {
-    KAboutData aboutData( "kteatime", 0, ki18n( "KTeaTime" ), "1.2.2",
-                          ki18n( "KDE utility for making a fine cup of tea." ),
-                          KAboutData::License_GPL,
-                          ki18n( "(c) 1998-1999, Matthias Hoelzer-Kluepfel\n "
-                                 "(c) 2002-2003, Martin Willers\n "
-                                 "(c) 2007-2010, Stefan Böhmann"
+    /**
+     * Create application first
+     */
+    QApplication app(argc, argv);
+
+    /**
+     * construct about data for KTeaTime
+     */
+    KAboutData aboutData( QStringLiteral("kteatime"), i18n("KTeaTime"), 
QStringLiteral("1.3.0"),
+                          i18n( "KDE utility for making a fine cup of tea." ),
+                          KAboutLicense::GPL,
+                          i18n( "© 1998-1999, Matthias Hoelzer-Kluepfel\n "
+                                "© 2002-2003, Martin Willers\n "
+                                "© 2007-2010, Stefan Böhmann"
                                )
                         );
 
-    aboutData.addAuthor(
-        ki18n( "Stefan Böhmann" ),
-        ki18n( "Current maintainer" ),
-        "k...@hilefoks.org",
-        "http://www.hilefoks.org";,
-        "hilefoks"
-    );
-
-    aboutData.addAuthor(
-        ki18n( "Matthias Hoelzer-Kluepfel" ),
-        KLocalizedString(),
-        "hoel...@kde.org"
-    );
-
-    aboutData.addAuthor(
-        ki18n( "Martin Willers" ),
-        KLocalizedString(),
-        "will...@xm-arts.de"
-    );
-
-    aboutData.addCredit(
-        ki18n( "Daniel Teske" ),
-        ki18n( "Many patches" ),
-        "te...@bigfoot.com"
-    );
-
-    KCmdLineArgs::init( argc, argv, &aboutData );
-
-    KCmdLineOptions options;
-    options.add( "t" );
-    options.add( "time <seconds>", ki18n( "Start a new tea with this time." ) 
);
-    options.add( "n");
-    options.add( "name <name>", ki18n( "Use this name for the tea started with 
%1." ).subs( QLatin1String("--time") ) );
-
-    KCmdLineArgs::addCmdLineOptions( options );
+    aboutData.addAuthor(i18n("Stefan Böhmann"), i18n("Current maintainer"), 
QStringLiteral("k...@hilefoks.org"), QStringLiteral("http://www.hilefoks.org";), 
QStringLiteral("hilefoks"));
+    aboutData.addAuthor(i18n("Matthias Hoelzer-Kluepfel"), QString(), 
QStringLiteral("hoel...@kde.org"));
+    aboutData.addAuthor(i18n("Martin Willers"), QString(), 
QStringLiteral("will...@xm-arts.de"));
+
+    aboutData.addCredit(i18n("Daniel Teske"), i18n("Many patches"), 
QStringLiteral("te...@bigfoot.com"));
+
+    /**
+     * right dbus prefix == org.kde.
+     */
+    aboutData.setOrganizationDomain("kde.org");
+
+    /**
+     * register about data
+     */
+    KAboutData::setApplicationData(aboutData);
+
+    /**
+     * take component name and org. name from KAboutData
+     */
+    app.setApplicationName(aboutData.componentName());
+    app.setApplicationDisplayName(aboutData.displayName());
+    app.setOrganizationDomain(aboutData.organizationDomain());
+    app.setApplicationVersion(aboutData.version());
+    app.setQuitOnLastWindowClosed(false);
+
+    /**
+     * Create command line parser and feed it with known options
+     */
+    QCommandLineParser parser;
+    aboutData.setupCommandLine(&parser);
+    parser.setApplicationDescription(aboutData.shortDescription());
+    parser.addHelpOption();
+    parser.addVersionOption();
+
+    QCommandLineOption timeOption(QStringList() << QStringLiteral("t") << 
QStringLiteral("time"), i18n("Start a new tea with this time."), 
i18n("seconds"));
+    parser.addOption(timeOption);
+    QCommandLineOption nameOption(QStringList() << QStringLiteral("n") << 
QStringLiteral("name"), i18n("Use this name for the tea started with --time."), 
i18n("name"));
+    parser.addOption(nameOption);
 
-    KApplication app;
-    QApplication::setQuitOnLastWindowClosed( false );
-
-    KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+    parser.process(app);
+    aboutData.processCommandLine(&parser);
 
     TopLevel *toplevel=new TopLevel( &aboutData );
 
-    if(args->isSet("time")) {
-        const int time=args->getOption( "time" ).toInt();
-        if( time > 0 ) {
-            const Tea tea( args->isSet("name") ? args->getOption("name") : 
i18n( "Anonymous Tea" ), time );
-
-            toplevel->runTea( tea );
-        }
+    const int time=parser.value(timeOption).toInt();
+    if( time > 0 ) {
+        const QString name = parser.value(nameOption);
+        const Tea tea( name == QString() ? i18n( "Anonymous Tea" ) : name, 
time );
+        toplevel->runTea( tea );
     }
-    args->clear();
 
     int ret = app.exec();
     
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/src/org.kde.kteatime.desktop 
new/kteatime-15.04.0/src/org.kde.kteatime.desktop
--- old/kteatime-14.12.3/src/org.kde.kteatime.desktop   1970-01-01 
01:00:00.000000000 +0100
+++ new/kteatime-15.04.0/src/org.kde.kteatime.desktop   2015-03-22 
10:32:55.000000000 +0100
@@ -0,0 +1,144 @@
+[Desktop Entry]
+Name=KTeaTime
+Name[ar]=برنامج وقت الشاي KTeaTime
+Name[ast]=KTeaTime
+Name[be]=KTeaTime
+Name[bg]=KTeaTime
+Name[bn]=কে-টী-টাইম
+Name[br]=KTeaTime
+Name[bs]=KTeaTime
+Name[ca]=KTeaTime
+Name[ca@valencia]=KTeaTime
+Name[cs]=KTeaTime
+Name[cy]=KTeaTime
+Name[da]=KTeaTime
+Name[de]=KTeaTime
+Name[el]=KTeaTime
+Name[en_GB]=KTeaTime
+Name[eo]=KTeaTime
+Name[es]=KTeaTime
+Name[et]=KTeaTime
+Name[eu]=KTeaTime
+Name[fi]=KTeaTime
+Name[fr]=KTeaTime
+Name[ga]=KTeaTime
+Name[gl]=KTeaTime
+Name[he]=KTeaTime
+Name[hne]=के-टी-टाइम
+Name[hr]=KTeaTime
+Name[hu]=KTeaTime
+Name[is]=K-Tetími
+Name[it]=KTeaTime
+Name[ja]=KTeaTime
+Name[kk]=KTeaTime
+Name[km]=KTeaTime
+Name[ko]=KTeaTime
+Name[lt]=KTeaTime
+Name[lv]=KTeaTime
+Name[mk]=КЧајник
+Name[ml]=കെടീടൈം
+Name[mr]=के-टी-टाइम
+Name[nb]=KTeaTime
+Name[nds]=KTeaTime
+Name[ne]=केचिया समय
+Name[nl]=KTeaTime
+Name[nn]=KTeaTime
+Name[pa]=ਕੇ-ਚਾਹ ਸਮਾਂ
+Name[pl]=KTeaTime
+Name[pt]=KTeaTime
+Name[pt_BR]=KTeaTime
+Name[ro]=KTeaTime
+Name[ru]=KTeaTime
+Name[sk]=KTeaTime
+Name[sl]=KTeaTime
+Name[sr]=К‑чајанка
+Name[sr@ijekavian]=К‑чајанка
+Name[sr@ijekavianlatin]=K‑čajanka
+Name[sr@latin]=K‑čajanka
+Name[sv]=Teet är klart
+Name[ta]= கேதேநீர் நேரம்
+Name[tg]=Вақти чой
+Name[th]=ตั้งเวลาทำงาน
+Name[tr]=KTeaTime
+Name[ug]=KTeaTime
+Name[uk]=KTeaTime
+Name[wa]=KTeaTime
+Name[x-test]=xxKTeaTimexx
+Name[zh_CN]=KTeaTime
+Name[zh_TW]=KTeaTime
+GenericName=Tea Cooker
+GenericName[ar]=طنجرة الشاي
+GenericName[ast]=Tetera
+GenericName[be]=Прыгатаўленне гарбаты
+GenericName[bg]=Приготвяне на чай
+GenericName[bn]=চায়ের কেটলি
+GenericName[br]=Ar pod te
+GenericName[bs]=Kuhač čaja
+GenericName[ca]=El cuiner de te
+GenericName[ca@valencia]=El cuiner de te
+GenericName[cs]=Vařič čaje
+GenericName[cy]=Tegell Te
+GenericName[da]=Tekoger
+GenericName[de]=Teekocher
+GenericName[el]=Εργαλείο φτιαξίματος τσαγιού
+GenericName[en_GB]=Tea Cooker
+GenericName[eo]=Tea infuzilo
+GenericName[es]=Tetera
+GenericName[et]=Teekann
+GenericName[eu]=Te prestaketa
+GenericName[fa]=چای‌ساز
+GenericName[fi]=Teenkeitin
+GenericName[fr]=Théière
+GenericName[ga]=Cócaire Tae
+GenericName[gl]=Quece-chá
+GenericName[he]=מבשל התה
+GenericName[hne]=चाय केतली
+GenericName[hr]=Pomoćnik za kuhanje čaja
+GenericName[hu]=Teafőző
+GenericName[is]=Teketillinn
+GenericName[it]=Teiera
+GenericName[ja]=ティーメーカー
+GenericName[kk]=Шәй шығару
+GenericName[km]=ចង្ក្រាន​តែ
+GenericName[ko]=차 끓이기
+GenericName[lt]=Arbatos virėjas
+GenericName[lv]=Tējas vārītājs
+GenericName[mk]=Чајник
+GenericName[ml]=ചായപ്പാത്രം
+GenericName[mr]=चहा कूकर
+GenericName[nb]=Tekoker
+GenericName[nds]=Teekaker
+GenericName[ne]=चिया बनाउने
+GenericName[nl]=Theezetter
+GenericName[nn]=Tekokaren
+GenericName[pa]=ਚਾਹ ਬਣਾਓ
+GenericName[pl]=Przyrządzanie herbaty
+GenericName[pt]=Cozinheiro de Chá
+GenericName[pt_BR]=Hora do chá
+GenericName[ro]=Ceainic
+GenericName[ru]=Приготовление чая
+GenericName[sk]=Varič čaju
+GenericName[sl]=Kuhalnik čaja
+GenericName[sr]=Чајник
+GenericName[sr@ijekavian]=Чајник
+GenericName[sr@ijekavianlatin]=Čajnik
+GenericName[sr@latin]=Čajnik
+GenericName[sv]=Tekokaren
+GenericName[ta]= தேநீர் தயாரிப்பான்
+GenericName[tg]=Пухтанин чой
+GenericName[th]=เครื่องมือชงชา
+GenericName[tr]=Çaycı
+GenericName[ug]=چايچى
+GenericName[uk]=Приготування чаю
+GenericName[wa]=Fijheu d' té
+GenericName[x-test]=xxTea Cookerxx
+GenericName[zh_CN]=煮茶器
+GenericName[zh_TW]=煮茶器
+Exec=kteatime
+Icon=kteatime
+Type=Application
+Terminal=false
+X-DocPath=kteatime/index.html
+X-KDE-StartupNotify=true
+X-DBUS-StartupType=Multi
+Categories=Qt;KDE;Utility;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/src/settings.cpp 
new/kteatime-15.04.0/src/settings.cpp
--- old/kteatime-14.12.3/src/settings.cpp       2014-09-11 17:25:13.000000000 
+0200
+++ new/kteatime-15.04.0/src/settings.cpp       2015-03-22 10:32:55.000000000 
+0100
@@ -19,13 +19,18 @@
 #include "toplevel.h"
 #include "tealistmodel.h"
 
+#include <QDialogButtonBox>
+#include <QDesktopWidget>
 #include <QHashIterator>
+#include <QPushButton>
 #include <QString>
-#include <QDesktopWidget>
-
-#include <knotifyconfigwidget.h>
-
+#include <QVBoxLayout>
 
+#include <KConfigGroup>
+#include <KHelpClient>
+#include <KLocalizedString>
+#include <KNotifyConfigWidget>
+#include <KSharedConfig>
 
 class SettingsUI : public QWidget, public Ui::SettingsWidget
 {
@@ -39,34 +44,33 @@
         }
 };
 
-
-
-
 SettingsDialog::SettingsDialog(TopLevel *toplevel, const QList<Tea> &teas)
-  : KDialog(),
+  : QDialog(),
     m_toplevel(toplevel)
 {
-    setCaption( i18n( "Configure Tea Cooker" ) );
-
-    setButtons( Ok | Cancel | Help | Reset );
-    setButtonText( KDialog::Reset, i18n( "Configure &amp;Notifications..." ) );
-    setButtonToolTip( KDialog::Reset,  i18n( "Configure notifications" ) );
-    setButtonIcon( KDialog::Reset, KIcon( QLatin1String(  
"preferences-desktop-notification" ) ) );
-
-    setHelp( QLatin1String("configure") );
-
-    setButtonWhatsThis( KDialog::Ok,     i18n( "Save changes and close 
dialog." ) );
-    setButtonWhatsThis( KDialog::Cancel, i18n( "Close dialog without saving 
changes." ) );
-    setButtonWhatsThis( KDialog::Help,   i18n( "Show help page for this 
dialog." ) );
-    setButtonWhatsThis( KDialog::Reset,  i18n( "Configure notifications" ) );
+    setWindowTitle( i18n( "Configure Tea Cooker" ) );
 
+    QDialogButtonBox *buttonBox = new 
QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel|QDialogButtonBox::Help);
+    QVBoxLayout *mainLayout = new QVBoxLayout;
+    setLayout(mainLayout);
     ui = new SettingsUI( this );
-    setMainWidget( ui );
+    mainLayout->addWidget(ui);
+    buttonBox->button(QDialogButtonBox::Ok)->setDefault(true);
+    buttonBox->button(QDialogButtonBox::Ok)->setShortcut(Qt::CTRL | 
Qt::Key_Return);
+    connect(buttonBox, &QDialogButtonBox::accepted, this, 
&SettingsDialog::accept);
+    connect(buttonBox, &QDialogButtonBox::rejected, this, 
&SettingsDialog::reject);
+    mainLayout->addWidget(buttonBox);
+
+    connect(buttonBox, &QDialogButtonBox::helpRequested, this, 
&SettingsDialog::showHelp);
+
+    buttonBox->button(QDialogButtonBox::Ok)->setWhatsThis(i18n( "Save changes 
and close dialog."  ));
+    buttonBox->button(QDialogButtonBox::Cancel)->setWhatsThis(i18n( "Close 
dialog without saving changes."  ));
+    buttonBox->button(QDialogButtonBox::Help)->setWhatsThis(i18n( "Show help 
page for this dialog."  ));
 
     KSharedConfigPtr config = KSharedConfig::openConfig();
     KConfigGroup group( config, "General" );
 
-    restoreDialogSize( group );
+    restoreGeometry(group.readEntry<QByteArray>("Geometry", QByteArray()));
 
     QDesktopWidget desktop;
     int x=group.readEntry( "SettingsDialogXPos", 
desktop.screenGeometry().width()/2 - width()/2 );
@@ -100,38 +104,39 @@
     m_model=new TeaListModel( teas, this );
     ui->tealistTreeView->setModel( m_model );
 
-    connect( ui->tealistTreeView->selectionModel(), 
SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
-             this, SLOT(updateSelection(QItemSelection,QItemSelection)) );
+    connect(ui->tealistTreeView->selectionModel(), 
SIGNAL(selectionChanged(QItemSelection,QItemSelection)), 
this,SLOT(updateSelection(QItemSelection,QItemSelection)) );
 
     ui->removeButton->setEnabled( false );
     ui->upButton->setEnabled( false );
     ui->downButton->setEnabled( false );
 
-    ui->newButton->setIcon( KIcon( QLatin1String(  "list-add" ) ) );
-    ui->removeButton->setIcon( KIcon( QLatin1String(  "edit-delete" ) ) );
-    ui->upButton->setIcon( KIcon( QLatin1String(  "arrow-up" ) ) );
-    ui->downButton->setIcon( KIcon( QLatin1String(  "arrow-down" ) ) );
-
-    connect( ui->popupCheckBox, SIGNAL(toggled(bool)), this, 
SLOT(checkPopupButtonState(bool)) );
-    connect( this, SIGNAL(resetClicked()), this, SLOT(confButtonClicked()) );
-
-    connect( ui->newButton, SIGNAL(clicked()), this, SLOT(newButtonClicked()) 
);
-    connect( ui->removeButton, SIGNAL(clicked()), this, 
SLOT(removeButtonClicked()) );
-    connect( ui->upButton, SIGNAL(clicked()), this, SLOT(upButtonClicked()) );
-    connect( ui->downButton, SIGNAL(clicked()), this, 
SLOT(downButtonClicked()) );
-
-    connect( ui->teaNameEdit, SIGNAL(textChanged(QString)), this, 
SLOT(nameValueChanged(QString)) );
-    connect( ui->minutesSpin, SIGNAL(valueChanged(int)), this, 
SLOT(timeValueChanged()) );
-    connect( ui->secondsSpin, SIGNAL(valueChanged(int)), this, 
SLOT(timeValueChanged()) );
+    ui->newButton->setIcon( QIcon::fromTheme( QLatin1String(  "list-add" ) ) );
+    ui->removeButton->setIcon( QIcon::fromTheme( QLatin1String(  "edit-delete" 
) ) );
+    ui->upButton->setIcon( QIcon::fromTheme( QLatin1String(  "arrow-up" ) ) );
+    ui->downButton->setIcon( QIcon::fromTheme( QLatin1String(  "arrow-down" ) 
) );
+
+    connect(ui->popupCheckBox, &QCheckBox::toggled, this, 
&SettingsDialog::checkPopupButtonState);
+
+    connect(ui->newButton, &QToolButton::clicked, this, 
&SettingsDialog::newButtonClicked);
+    connect(ui->removeButton, &QToolButton::clicked, this, 
&SettingsDialog::removeButtonClicked);
+    connect(ui->upButton, &QToolButton::clicked, this, 
&SettingsDialog::upButtonClicked);
+    connect(ui->downButton, &QToolButton::clicked, this, 
&SettingsDialog::downButtonClicked);
+
+    connect(ui->teaNameEdit, &QLineEdit::textChanged, this, 
&SettingsDialog::nameValueChanged);
+    connect(ui->minutesSpin, static_cast<void 
(QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, 
&SettingsDialog::timeValueChanged);
+    connect(ui->secondsSpin, static_cast<void 
(QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, 
&SettingsDialog::timeValueChanged);
 }
 
-
 SettingsDialog::~SettingsDialog()
 {
     delete m_model;
     delete ui;
 }
 
+void SettingsDialog::showHelp()
+{
+    KHelpClient::invokeHelp();
+}
 
 void SettingsDialog::accept()
 {
@@ -141,7 +146,7 @@
     group.writeEntry( "SettingsDialogYPos", y() );
 
     hide();
-    saveDialogSize(group);
+    group.writeEntry("Geometry", saveGeometry());
 
     group.writeEntry( "UsePopup",          ui->popupCheckBox->checkState() == 
Qt::Checked );
     group.writeEntry( "PopupAutoHide",     ui->autohideCheckBox->checkState() 
== Qt::Checked );
@@ -166,13 +171,6 @@
     }
 }
 
-
-void SettingsDialog::confButtonClicked()
-{
-    KNotifyConfigWidget::configure( this );
-}
-
-
 void SettingsDialog::newButtonClicked()
 {
     int count = m_model->rowCount();
@@ -295,8 +293,8 @@
 }
 
 
-// kate: word-wrap off; encoding utf-8; indent-width 4; tab-width 4; 
line-numbers on; mixed-indent off; remove-trailing-space-save on; 
replace-tabs-save on; replace-tabs on; space-indent on;
-// vim:set spell et sw=4 ts=4 nowrap cino=l1,cs,U1:
-
 #include "settings.moc"
 #include "moc_settings.cpp"
+
+// kate: word-wrap off; encoding utf-8; indent-width 4; tab-width 4; 
line-numbers on; mixed-indent off; remove-trailing-space-save on; 
replace-tabs-save on; replace-tabs on; space-indent on;
+// vim:set spell et sw=4 ts=4 nowrap cino=l1,cs,U1:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/src/settings.h 
new/kteatime-15.04.0/src/settings.h
--- old/kteatime-14.12.3/src/settings.h 2014-09-11 17:25:13.000000000 +0200
+++ new/kteatime-15.04.0/src/settings.h 2015-03-22 10:32:55.000000000 +0100
@@ -19,6 +19,7 @@
 
 #include "ui_settings.h"
 
+#include <QDialog>
 
 class TopLevel;
 class TeaListModel;
@@ -31,7 +32,7 @@
  *
  * @author Stefan Böhmann <k...@hilefoks.org>
  */
-class SettingsDialog : public KDialog
+class SettingsDialog : public QDialog
 {
     Q_OBJECT
     public:
@@ -40,9 +41,11 @@
 
     private slots:
         void updateSelection(const QItemSelection &selected, const 
QItemSelection &deselected);
+
+    private:
         void accept();
         void checkPopupButtonState(bool b);
-        void confButtonClicked();
+        void showHelp();
 
         void newButtonClicked();
         void removeButtonClicked();
@@ -52,7 +55,6 @@
         void nameValueChanged(const QString &text);
         void timeValueChanged();
 
-    private:
         void moveSelectedItem(bool moveup);
 
     private:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/src/settings.ui 
new/kteatime-15.04.0/src/settings.ui
--- old/kteatime-14.12.3/src/settings.ui        2014-09-11 17:25:13.000000000 
+0200
+++ new/kteatime-15.04.0/src/settings.ui        2015-03-22 10:32:55.000000000 
+0100
@@ -13,7 +13,7 @@
   </property>
   <layout class="QGridLayout">
    <item row="0" column="0" rowspan="2">
-    <widget class="KButtonGroup" name="kbuttongroup1">
+    <widget class="QGroupBox" name="kbuttongroup1">
      <property name="title">
       <string>Tea List</string>
      </property>
@@ -130,7 +130,7 @@
        </widget>
       </item>
       <item row="0" column="1" colspan="4">
-       <widget class="KLineEdit" name="teaNameEdit">
+       <widget class="QLineEdit" name="teaNameEdit">
         <property name="enabled">
          <bool>false</bool>
         </property>
@@ -144,7 +144,7 @@
        </widget>
       </item>
       <item row="1" column="1">
-       <widget class="KIntSpinBox" name="minutesSpin">
+       <widget class="QSpinBox" name="minutesSpin">
         <property name="enabled">
          <bool>false</bool>
         </property>
@@ -161,7 +161,7 @@
        </widget>
       </item>
       <item row="1" column="3">
-       <widget class="KIntSpinBox" name="secondsSpin">
+       <widget class="QSpinBox" name="secondsSpin">
         <property name="enabled">
          <bool>false</bool>
         </property>
@@ -194,7 +194,7 @@
     </spacer>
    </item>
    <item row="2" column="0" colspan="2">
-    <widget class="KButtonGroup" name="kbuttongroup2">
+    <widget class="QGroupBox" name="kbuttongroup2">
      <property name="title">
       <string>Action</string>
      </property>
@@ -241,7 +241,7 @@
          </widget>
         </item>
         <item>
-         <widget class="KIntSpinBox" name="autohideSpinBox">
+         <widget class="KPluralHandlingSpinBox" name="autohideSpinBox">
           <property name="enabled">
            <bool>false</bool>
           </property>
@@ -287,7 +287,7 @@
          </widget>
         </item>
         <item>
-         <widget class="KIntSpinBox" name="reminderSpinBox">
+         <widget class="KPluralHandlingSpinBox" name="reminderSpinBox">
           <property name="enabled">
            <bool>false</bool>
           </property>
@@ -338,24 +338,6 @@
    </item>
   </layout>
  </widget>
- <customwidgets>
-  <customwidget>
-   <class>KIntSpinBox</class>
-   <extends>QSpinBox</extends>
-   <header>knuminput.h</header>
-  </customwidget>
-  <customwidget>
-   <class>KButtonGroup</class>
-   <extends>QGroupBox</extends>
-   <header>kbuttongroup.h</header>
-   <container>1</container>
-  </customwidget>
-  <customwidget>
-   <class>KLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>klineedit.h</header>
-  </customwidget>
- </customwidgets>
  <resources/>
  <connections>
   <connection>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/src/tea.cpp 
new/kteatime-15.04.0/src/tea.cpp
--- old/kteatime-14.12.3/src/tea.cpp    2014-09-11 17:25:13.000000000 +0200
+++ new/kteatime-15.04.0/src/tea.cpp    2015-03-22 10:32:55.000000000 +0100
@@ -16,8 +16,7 @@
  */
 #include "tea.h"
 
-#include <klocalizedstring.h>
-
+#include <KLocalizedString>
 
 
 Tea::Tea(const QString &name, const unsigned time)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/src/tealistmodel.cpp 
new/kteatime-15.04.0/src/tealistmodel.cpp
--- old/kteatime-14.12.3/src/tealistmodel.cpp   2014-09-11 17:25:13.000000000 
+0200
+++ new/kteatime-15.04.0/src/tealistmodel.cpp   2015-03-22 10:32:55.000000000 
+0100
@@ -18,8 +18,7 @@
 #include "tealistmodel.h"
 #include "tea.h"
 
-#include <klocalizedstring.h>
-
+#include <KLocalizedString>
 
 
 TeaListModel::TeaListModel(const QList<Tea> &tealist, QObject *parent)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/src/tealistmodel.h 
new/kteatime-15.04.0/src/tealistmodel.h
--- old/kteatime-14.12.3/src/tealistmodel.h     2014-09-11 17:25:13.000000000 
+0200
+++ new/kteatime-15.04.0/src/tealistmodel.h     2015-03-22 10:32:55.000000000 
+0100
@@ -22,7 +22,6 @@
 class Tea;
 
 
-
 /**
  * @short provides an model used by SettingsDialog
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/src/timeedit.cpp 
new/kteatime-15.04.0/src/timeedit.cpp
--- old/kteatime-14.12.3/src/timeedit.cpp       2014-09-11 17:25:13.000000000 
+0200
+++ new/kteatime-15.04.0/src/timeedit.cpp       2015-03-22 10:32:55.000000000 
+0100
@@ -22,11 +22,15 @@
 #include "tea.h"
 
 #include <QDesktopWidget>
+#include <QDialogButtonBox>
+#include <QPushButton>
+
+#include <KConfigGroup>
+#include <KSharedConfig>
 
 
 class TimeEditUI : public QWidget, public Ui::TimeEditWidget
 {
-    Q_OBJECT
     public:
         TimeEditUI(QWidget *parent = 0)
           : QWidget( parent )
@@ -36,31 +40,38 @@
 };
 
 
-
-
 TimeEditDialog::TimeEditDialog(TopLevel *toplevel)
-  : KDialog(),
+  : QDialog(),
     m_toplevel( toplevel )
 {
-    setCaption( i18n( "Anonymous Tea" ) );
+    setWindowTitle( i18n( "Anonymous Tea" ) );
 
-    setButtonWhatsThis( KDialog::Ok, i18n( "Start a new anonymous tea with the 
time configured in this dialog." ) );
-    setButtonWhatsThis( KDialog::Cancel, i18n( "Close this dialog without 
starting a new tea." ) );
+    buttonBox = new 
QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel);
+    buttonBox->button(QDialogButtonBox::Ok)->setWhatsThis(i18n( "Start a new 
anonymous tea with the time configured in this dialog."  ));
+    buttonBox->button(QDialogButtonBox::Ok)->setDefault(true);
+    buttonBox->button(QDialogButtonBox::Ok)->setShortcut(Qt::CTRL | 
Qt::Key_Return);
+    buttonBox->button(QDialogButtonBox::Cancel)->setWhatsThis(i18n( "Close 
this dialog without starting a new tea."  ));
 
+    QVBoxLayout *mainLayout = new QVBoxLayout;
+    setLayout(mainLayout);
     ui = new TimeEditUI( this );
-    setMainWidget( ui );
+    mainLayout->addWidget(ui);
+    mainLayout->addWidget(buttonBox);
 
     KSharedConfigPtr config = KSharedConfig::openConfig();
     KConfigGroup group( config, "AnonymousTeaDialog" );
 
     int time=group.readEntry( "AnonymousTeaTime", 180 );
 
+    ui->minutes->setSuffix( ki18np( " minute", " minutes") );
+    ui->seconds->setSuffix( ki18np( " second", " seconds") );
+
     ui->minutes->setValue( time / 60 );
     ui->seconds->setValue( time % 60 );
 
     ui->minutes->setFocus( Qt::ShortcutFocusReason );
 
-    restoreDialogSize( group );
+    restoreGeometry(group.readEntry<QByteArray>("Geometry", QByteArray()));
 
     QDesktopWidget desktop;
     int x = group.readEntry( "AnonymousTeaDialogXPos", 
desktop.screenGeometry().width()/2 - width()/2 );
@@ -70,8 +81,11 @@
     x = qMin( qMax( 0, y ), desktop.screenGeometry().height() - height() );
     move( QPoint( x, y ) );
 
-    connect( ui->minutes, SIGNAL(valueChanged(int)), this, 
SLOT(checkOkButtonState()) );
-    connect( ui->seconds, SIGNAL(valueChanged(int)), this, 
SLOT(checkOkButtonState()) );
+    connect(ui->minutes, static_cast<void 
(KPluralHandlingSpinBox::*)(int)>(&KPluralHandlingSpinBox::valueChanged), this, 
&TimeEditDialog::checkOkButtonState);
+    connect(ui->seconds, static_cast<void 
(KPluralHandlingSpinBox::*)(int)>(&KPluralHandlingSpinBox::valueChanged), this, 
&TimeEditDialog::checkOkButtonState);
+
+    connect(buttonBox, &QDialogButtonBox::accepted, this, 
&TimeEditDialog::accept);
+    connect(buttonBox, &QDialogButtonBox::rejected, this, 
&TimeEditDialog::reject);
 }
 
 
@@ -83,7 +97,7 @@
 
 void TimeEditDialog::checkOkButtonState()
 {
-    enableButtonOk( ui->minutes->value() || ui->seconds->value() );
+    buttonBox->button(QDialogButtonBox::Ok)->setEnabled( ui->minutes->value() 
|| ui->seconds->value() );
 }
 
 
@@ -97,7 +111,7 @@
     KSharedConfigPtr config = KSharedConfig::openConfig();
     KConfigGroup group( config, "AnonymousTeaDialog" );
     group.writeEntry( "AnonymousTeaTime", time );
-    saveDialogSize( group );
+    group.writeEntry("Geometry", saveGeometry());
 
     group.writeEntry( "AnonymousTeaDialogXPos", x() );
     group.writeEntry( "AnonymousTeaDialogYPos", y() );
@@ -108,7 +122,3 @@
 
 // kate: word-wrap off; encoding utf-8; indent-width 4; tab-width 4; 
line-numbers on; mixed-indent off; remove-trailing-space-save on; 
replace-tabs-save on; replace-tabs on; space-indent on;
 // vim:set spell et sw=4 ts=4 nowrap cino=l1,cs,U1:
-
-#include "timeedit.moc"
-#include "moc_timeedit.cpp"
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/src/timeedit.h 
new/kteatime-15.04.0/src/timeedit.h
--- old/kteatime-14.12.3/src/timeedit.h 2014-09-11 17:25:13.000000000 +0200
+++ new/kteatime-15.04.0/src/timeedit.h 2015-03-22 10:32:55.000000000 +0100
@@ -22,6 +22,9 @@
 
 #include "ui_timeedit.h"
 
+#include <QDialog>
+
+class QDialogButtonBox;
 class TopLevel;
 class TimeEditUI;
 
@@ -31,21 +34,19 @@
  *
  * @author Stefan Böhmann <k...@hilefoks.org>
  */
-class TimeEditDialog : public KDialog
+class TimeEditDialog : public QDialog
 {
-    Q_OBJECT
-
     public:
         explicit TimeEditDialog(TopLevel *toplevel);
         ~TimeEditDialog();
 
-    private slots:
+    private:
         void checkOkButtonState();
         void accept();
 
-    private:
         TimeEditUI *ui;
         TopLevel *m_toplevel;
+        QDialogButtonBox *buttonBox;
 };
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/src/timeedit.ui 
new/kteatime-15.04.0/src/timeedit.ui
--- old/kteatime-14.12.3/src/timeedit.ui        2014-09-11 17:25:13.000000000 
+0200
+++ new/kteatime-15.04.0/src/timeedit.ui        2015-03-22 10:32:55.000000000 
+0100
@@ -34,7 +34,7 @@
     </widget>
    </item>
    <item row="0" column="1" >
-    <widget class="QSpinBox" name="minutes" >
+    <widget class="KPluralHandlingSpinBox" name="minutes" >
      <property name="focusPolicy" >
       <enum>Qt::WheelFocus</enum>
      </property>
@@ -46,27 +46,13 @@
      </property>
     </widget>
    </item>
-   <item row="0" column="2" >
-    <widget class="QLabel" name="minutesLabel" >
-     <property name="text" >
-      <string>min</string>
-     </property>
-    </widget>
-   </item>
    <item row="0" column="3" >
-    <widget class="QSpinBox" name="seconds" >
+    <widget class="KPluralHandlingSpinBox" name="seconds" >
      <property name="maximum" >
       <number>59</number>
      </property>
     </widget>
    </item>
-   <item row="0" column="4" >
-    <widget class="QLabel" name="secondsLabel" >
-     <property name="text" >
-      <string>sec</string>
-     </property>
-    </widget>
-   </item>
    <item row="0" column="5" >
     <spacer>
      <property name="orientation" >
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/src/toplevel.cpp 
new/kteatime-15.04.0/src/toplevel.cpp
--- old/kteatime-14.12.3/src/toplevel.cpp       2014-09-11 17:25:13.000000000 
+0200
+++ new/kteatime-15.04.0/src/toplevel.cpp       2015-03-22 10:32:55.000000000 
+0100
@@ -21,20 +21,25 @@
 #include "settings.h"
 #include "tea.h"
 
-#include <QString>
 #include <QAction>
-#include <QTimer>
-#include <QPainter>
-#include <QBrush>
 #include <QActionGroup>
+#include <QApplication>
+#include <QBrush>
+#include <QDebug>
+#include <QDesktopWidget>
+#include <QMenu>
+#include <QString>
+#include <QTimer>
 
-#include <KMenu>
+#include <KAboutData>
 #include <KActionCollection>
+#include <KConfigGroup>
 #include <KHelpMenu>
-#include <KPassivePopup>
-#include <KGlobalSettings>
+#include <KIconLoader>
 #include <KNotification>
-#include <KAboutData>
+#include <KNotifyConfigWidget>
+#include <KPassivePopup>
+#include <KSharedConfig>
 
 
 TopLevel::TopLevel(const KAboutData *aboutData, const QString &icon, QWidget 
*parent)
@@ -68,43 +73,47 @@
 
 
     m_teaActionGroup=new QActionGroup( this );
+    m_actionCollection = new KActionCollection(this);
 
     // build the context menu
-    m_stopAct = new QAction( QLatin1String( "stop" ), this );
-    m_stopAct->setIcon( KIcon( QLatin1String(  "edit-delete" ) ) );
-    m_stopAct->setText( i18n( "&Stop" ) );
-    m_stopAct->setEnabled( false );
-
-    m_confAct = new QAction( QLatin1String( "configure" ), this );
-    m_confAct->setIcon(KIcon( QLatin1String(  "configure" ) ) );
-    m_confAct->setText(i18n( "&Configure..." ) );
-
-    m_anonAct = new QAction( QLatin1String( "anonymous" ), this );
-    m_anonAct->setText(i18n( "&Anonymous..." ) );
-
-    m_exitAct = actionCollection()->action( QLatin1String( 
KStandardAction::name( KStandardAction::Quit ) ));
-    m_exitAct->setShortcut( 0 ); // Not sure if it is correct.
-
-    m_helpMenu = new KHelpMenu( 0, aboutData, false );
+    action = m_actionCollection->addAction( QStringLiteral( "stop" ));
+    action->setIcon(QIcon::fromTheme( QStringLiteral( "edit-delete" ) ) );
+    action->setText( i18n( "&Stop" ) );
+    action->setEnabled( false );
+    connect(action, &QAction::triggered, this, &TopLevel::cancelTea);
+
+    action = m_actionCollection->addAction( QStringLiteral( "configure" ));
+    action->setIcon(QIcon::fromTheme( QStringLiteral( "configure" ) ) );
+    action->setText(i18n( "&Configure..." ) );
+    connect(action, &QAction::triggered, this, &TopLevel::showSettingsDialog);
+
+    action = KStandardAction::configureNotifications(this, 
SLOT(configureNotifications()), m_actionCollection);
+    action = KStandardAction::quit(qApp, SLOT(quit()), m_actionCollection);
+    action->setShortcut(0);
+
+    action = m_actionCollection->addAction( QStringLiteral( "anonymous" ));
+    action->setText(i18n( "&Anonymous..." ) );
+    connect(action, &QAction::triggered, this, &TopLevel::showTimeEditDialog);
 
+    m_helpMenu = new KHelpMenu( 0, *aboutData, false );
 
+    setStandardActionsEnabled(false);
     loadTeaMenuItems();
     contextMenu()->addSeparator();
-    contextMenu()->addAction( m_stopAct );
-    contextMenu()->addAction( m_anonAct );
+    contextMenu()->addAction( 
m_actionCollection->action(QStringLiteral("stop")) );
+    contextMenu()->addAction( 
m_actionCollection->action(QStringLiteral("anonymous")) );
     contextMenu()->addSeparator();
-    contextMenu()->addAction( m_confAct );
+    contextMenu()->addAction( 
m_actionCollection->action(QStringLiteral("configure")) );
+    contextMenu()->addAction( 
m_actionCollection->action(QLatin1String(KStandardAction::name(KStandardAction::ConfigureNotifications)))
 );
     contextMenu()->addMenu( m_helpMenu->menu() );
-    contextMenu()->addAction( m_exitAct );
+    contextMenu()->addSeparator();
+    contextMenu()->addAction( 
m_actionCollection->action(QLatin1String(KStandardAction::name(KStandardAction::Quit)))
 );
 
     m_timer = new QTimer( this );
 
-    connect( m_timer, SIGNAL(timeout()), this, SLOT(teaTimeEvent()) );
-    connect( m_stopAct, SIGNAL(triggered(bool)), this, SLOT(cancelTea()) );
-    connect( m_confAct, SIGNAL(triggered(bool)), this, 
SLOT(showSettingsDialog()) );
-    connect( m_anonAct, SIGNAL(triggered(bool)), this, 
SLOT(showTimeEditDialog()) );
-    connect( contextMenu(), SIGNAL(triggered(QAction*)), this, 
SLOT(runTea(QAction*)) );
-    connect ( this, SIGNAL(activateRequested(bool,QPoint)), this, 
SLOT(showPopup(bool,QPoint)) );
+    connect(m_timer, &QTimer::timeout, this, &TopLevel::teaTimeEvent);
+    connect(contextMenu(), static_cast<void 
(QMenu::*)(QAction*)>(&QMenu::triggered), this, static_cast<void 
(TopLevel::*)(QAction*)>(&TopLevel::runTea));
+    connect(this, &TopLevel::activateRequested, this, &TopLevel::showPopup);
 
     loadConfig();
     checkState();
@@ -124,8 +133,8 @@
     const bool state = m_runningTeaTime != 0;
 
     m_teaActionGroup->setEnabled( !state );
-    m_stopAct->setEnabled( state );
-    m_anonAct->setEnabled( !state );
+    m_actionCollection->action(QStringLiteral("stop"))->setEnabled( state );
+    m_actionCollection->action(QStringLiteral("anonymous"))->setEnabled( 
!state );
 
     if( !state ) {
         setTooltipText( i18n( "No steeping tea." ) );
@@ -143,8 +152,8 @@
     tealistGroup.deleteGroup();
 
     for(int i=0; i<m_tealist.size(); ++i) {
-        tealistGroup.writeEntry(QString( QLatin1String( "Tea%1 Time" ) ).arg( 
i ), m_tealist.at( i ).time() );
-        tealistGroup.writeEntry(QString( QLatin1String( "Tea%1 Name" ) ).arg( 
i ), m_tealist.at( i ).name() );
+        tealistGroup.writeEntry(QStringLiteral( "Tea%1 Time" ).arg( i ), 
m_tealist.at( i ).time() );
+        tealistGroup.writeEntry(QStringLiteral( "Tea%1 Name" ).arg( i ), 
m_tealist.at( i ).name() );
     }
     tealistGroup.config()->sync();
 
@@ -155,16 +164,16 @@
 
     contextMenu()->clear();
 
-    ( static_cast<KMenu*>( contextMenu() ) )->addTitle( qApp->windowIcon(), 
KGlobal::caption() );
-
     loadTeaMenuItems();
     contextMenu()->addSeparator();
-    contextMenu()->addAction( m_stopAct );
-    contextMenu()->addAction( m_anonAct );
+    contextMenu()->addAction( 
m_actionCollection->action(QStringLiteral("stop")) );
+    contextMenu()->addAction( 
m_actionCollection->action(QStringLiteral("anonymous")) );
     contextMenu()->addSeparator();
-    contextMenu()->addAction( m_confAct );
+    contextMenu()->addAction( 
m_actionCollection->action(QStringLiteral("configure")) );
+    contextMenu()->addAction( 
m_actionCollection->action(QLatin1String(KStandardAction::name(KStandardAction::ConfigureNotifications)))
 );
     contextMenu()->addMenu(m_helpMenu->menu() );
-    contextMenu()->addAction( m_exitAct );
+    contextMenu()->addSeparator();
+    contextMenu()->addAction( 
m_actionCollection->action(QLatin1String(KStandardAction::name(KStandardAction::Quit)))
 );
 
     loadConfig();
 }
@@ -229,7 +238,7 @@
 void TopLevel::repaintTrayIcon()
 {
     if( m_runningTeaTime != 0 && m_usevisualize) {
-        setOverlayIconByName ( QLatin1String("task-ongoing") );
+        setOverlayIconByName ( QStringLiteral("task-ongoing") );
     }
     else
     {
@@ -247,12 +256,12 @@
 
         QString content = i18n( "%1 is now ready!", m_runningTea.name() );
 
-        //NOTICE Timeout is set to ~24 days when no auto hide is request. Ok - 
nearly the same...
+        //NOTICE Timeout is set t ~o24 days when no auto hide is request. Ok - 
nearly the same...
         if( m_usepopup ) {
             showMessage( title, content, iconName(), m_autohide ? 
m_autohidetime*1000 : 2100000000 );
         }
 
-        KNotification::event( QLatin1String( "ready" ), content );
+        KNotification::event( QStringLiteral( "ready" ), content );
 
         if( m_usereminder && m_remindertime > 0 ) {
             setTooltipText( content );
@@ -298,6 +307,10 @@
     repaintTrayIcon();
 }
 
+void TopLevel::configureNotifications()
+{
+    KNotifyConfigWidget::configure();
+}
 
 void TopLevel::loadConfig()
 {
@@ -323,7 +336,7 @@
     else
     {
         QPoint p = point;
-        QRect r = KGlobalSettings::desktopGeometry( p );
+        QRect r = QApplication::desktop()->screenGeometry( p );
         QSize popupSize = m_popup->minimumSizeHint();
         if ( p.x() + popupSize.width() > r.right() )
         {
@@ -342,7 +355,7 @@
 {
     const QString title = i18n( "The Tea Cooker" );
     setToolTip( iconName(), title, content );
-    m_popup->setView( title, content, KIcon( iconName() ).pixmap( 22,22 ) );
+    m_popup->setView( title, content, KIconLoader().loadIcon(iconName(), 
KIconLoader::MainToolbar) );
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kteatime-14.12.3/src/toplevel.h 
new/kteatime-15.04.0/src/toplevel.h
--- old/kteatime-14.12.3/src/toplevel.h 2014-09-11 17:25:13.000000000 +0200
+++ new/kteatime-15.04.0/src/toplevel.h 2015-03-22 10:32:55.000000000 +0100
@@ -21,18 +21,16 @@
 
 #include "tea.h"
 
-#include <QIcon>
-#include <QPixmap>
 #include <KStatusNotifierItem>
 
 
 class QAction;
 class QActionGroup;
+class QTimer;
+class KAboutData;
+class KActionCollection;
 class KHelpMenu;
 class KPassivePopup;
-class KAboutData;
-
-
 
 /**
  * @short the main class for KTeatime
@@ -42,32 +40,32 @@
 class TopLevel : public KStatusNotifierItem
 {
     Q_OBJECT
-
     public:
         explicit TopLevel(const KAboutData *aboutData, const QString &icon = 
QLatin1String("kteatime"), QWidget *parent = 0);
         ~TopLevel();
         void setTeaList(const QList<Tea> &tealist);
         void runTea(const Tea &tea);
 
-    private slots:
+    private:
         void runTea(QAction *a);
         void showSettingsDialog();
         void showTimeEditDialog();
         void teaTimeEvent();
         void cancelTea();
         void showPopup(bool active, const QPoint& point);
-
-    private:
         void checkState();
         void loadConfig();
         void loadTeaMenuItems();
         void repaintTrayIcon();
         void setTooltipText(const QString& content);
+    private Q_SLOTS:
+        void configureNotifications();
 
     private:
         QList<Tea> m_tealist;
-        QAction *m_stopAct, *m_confAct, *m_anonAct, *m_exitAct;
+        QAction *action;
         QActionGroup *m_teaActionGroup;
+        KActionCollection *m_actionCollection;
 
         KHelpMenu *m_helpMenu;
         QTimer *m_timer;
@@ -96,7 +94,6 @@
         bool m_usevisualize;
 };
 
-
 #endif
 
 // kate: word-wrap off; encoding utf-8; indent-width 4; tab-width 4; 
line-numbers on; mixed-indent off; remove-trailing-space-save on; 
replace-tabs-save on; replace-tabs on; space-indent on;


Reply via email to