Hello community,

here is the log from the commit of package knetwalk for openSUSE:Factory 
checked in at 2013-07-08 07:29:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/knetwalk (Old)
 and      /work/SRC/openSUSE:Factory/.knetwalk.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "knetwalk"

Changes:
--------
--- /work/SRC/openSUSE:Factory/knetwalk/knetwalk.changes        2013-06-11 
09:32:33.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.knetwalk.new/knetwalk.changes   2013-07-08 
07:29:11.000000000 +0200
@@ -1,0 +2,14 @@
+Thu Jun 27 18:49:13 UTC 2013 - tittiatc...@gmail.com
+
+- Update to 4.10.90
+   * KDE 4.11 Beta 1 release
+   * See http://www.kde.org/announcements/announce-4.11-beta2.php
+
+-------------------------------------------------------------------
+Thu Jun 13 20:51:20 UTC 2013 - tittiatc...@gmail.com
+
+- Update to 4.10.80
+   * KDE 4.11 Beta 1 release
+   * See http://www.kde.org/announcements/announce-4.11-beta1.php
+
+-------------------------------------------------------------------

Old:
----
  knetwalk-4.10.4.tar.xz

New:
----
  knetwalk-4.10.90.tar.xz

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

Other differences:
------------------
++++++ knetwalk.spec ++++++
--- /var/tmp/diff_new_pack.tunUXu/_old  2013-07-08 07:29:11.000000000 +0200
+++ /var/tmp/diff_new_pack.tunUXu/_new  2013-07-08 07:29:11.000000000 +0200
@@ -23,7 +23,7 @@
 License:        GPL-2.0+
 Group:          Amusements/Games/Board/Puzzle
 Url:            http://www.kde.org
-Version:        4.10.4
+Version:        4.10.90
 Release:        0
 Source0:        knetwalk-%{version}.tar.xz
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ knetwalk-4.10.4.tar.xz -> knetwalk-4.10.90.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knetwalk-4.10.4/CMakeLists.txt 
new/knetwalk-4.10.90/CMakeLists.txt
--- old/knetwalk-4.10.4/CMakeLists.txt  2013-05-28 21:38:47.000000000 +0200
+++ new/knetwalk-4.10.90/CMakeLists.txt 2013-06-10 20:54:55.000000000 +0200
@@ -14,4 +14,5 @@
 add_subdirectory(src) 
 add_subdirectory(themes) 
 add_subdirectory(doc)
+add_subdirectory(tests)
 
Files old/knetwalk-4.10.4/doc/index.cache.bz2 and 
new/knetwalk-4.10.90/doc/index.cache.bz2 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knetwalk-4.10.4/doc/index.docbook 
new/knetwalk-4.10.90/doc/index.docbook
--- old/knetwalk-4.10.4/doc/index.docbook       2013-05-28 21:38:47.000000000 
+0200
+++ new/knetwalk-4.10.90/doc/index.docbook      2013-06-10 20:54:54.000000000 
+0200
@@ -31,8 +31,8 @@
     
 <legalnotice>&FDLNotice;</legalnotice>
 
-<date>2007-11-13</date>
-<releaseinfo>3.0.0</releaseinfo>
+<date>2013-05-05</date>
+<releaseinfo>3.1.0 (&kde; 4.11)</releaseinfo>
 
 <abstract>
 <para>
@@ -103,8 +103,8 @@
 <chapter id="interface-overview">
 <title>Interface Overview</title>
 
-<sect1 id="game-menu">
-<title><guimenu>Game</guimenu> Menu</title>
+<sect1 id="menu">
+<title>Menu Items</title>
 
 <variablelist>
 <varlistentry>
@@ -124,14 +124,12 @@
 
 <varlistentry>
 <term><menuchoice>
-<shortcut>
-<keycombo action="simul">&Ctrl;<keycap>H</keycap></keycombo>
-</shortcut>
+<shortcut><keycap>P</keycap></shortcut>
 <guimenu>Game</guimenu>
-<guimenuitem>Show High Scores</guimenuitem></menuchoice></term>
+<guimenuitem>Pause</guimenuitem></menuchoice></term>
 <listitem>
 <para>
-Shows a dialog containing the High Scores for the various difficulty levels.
+Pauses the game time. Click on the menu item again to make the game resume. 
Note that the board disappears when the game is paused as it would be unfair if 
you could search for good moves without the time pressure.
 </para>
 </listitem>
 </varlistentry>
@@ -139,50 +137,28 @@
 <varlistentry>
 <term><menuchoice>
 <shortcut>
-<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
+<keycombo action="simul">&Ctrl;<keycap>H</keycap></keycombo>
 </shortcut>
 <guimenu>Game</guimenu>
-<guimenuitem>Quit</guimenuitem>
-</menuchoice></term>
-<listitem>
-<para>
-Quits the program.
-</para>
-</listitem>
-</varlistentry>
-</variablelist>
-
-</sect1>
-
-
-
-
-<sect1 id="settings-menu">
-<title><guimenu>Settings</guimenu> Menu</title>
-
-<variablelist>
-
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Settings</guimenu>
-<guimenuitem>Show Toolbar</guimenuitem>
-</menuchoice></term>
+<guimenuitem>Show High Scores</guimenuitem></menuchoice></term>
 <listitem>
 <para>
-Toggles on and off the display of the toolbar.
+Shows a dialog containing the High Scores for the various difficulty levels.
 </para>
 </listitem>
 </varlistentry>
 
 <varlistentry>
 <term><menuchoice>
-<guimenu>Settings</guimenu>
-<guimenuitem>Show Statusbar</guimenuitem>
+<shortcut>
+<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
+</shortcut>
+<guimenu>Game</guimenu>
+<guimenuitem>Quit</guimenuitem>
 </menuchoice></term>
 <listitem>
 <para>
-Toggles on and off the display of the statusbar.
+Quits the program.
 </para>
 </listitem>
 </varlistentry>
@@ -206,12 +182,13 @@
 </menuchoice></term>
 <listitem>
 <para>Lets you set the difficulty level from a sub-menu.</para>
-<para>There are four levels of difficulty:
+<para>There are five levels of difficulty:
 <itemizedlist>
 <listitem><para><guimenuitem>Easy</guimenuitem>: 5 rows, 5 columns, without 
wrapping.</para></listitem>
 <listitem><para><guimenuitem>Medium</guimenuitem>: 7 rows, 7 columns, without 
wrapping.</para></listitem>
 <listitem><para><guimenuitem>Hard</guimenuitem>: 9 rows, 9 columns, without 
wrapping.</para></listitem>
 <listitem><para><guimenuitem>Very hard</guimenuitem>: 9 rows, 9 columns, with 
wrapping.</para></listitem>
+<listitem><para><guimenuitem>Custom</guimenuitem>: The settings you have 
configured in the Configure KNetWalk dialog will be used.</para></listitem>
 </itemizedlist>
 </para></listitem>
 </varlistentry>
@@ -219,36 +196,20 @@
 <varlistentry>
 <term><menuchoice>
 <guimenu>Settings</guimenu>
-<guimenuitem>Configure Shortcuts...</guimenuitem>
+<guimenuitem>Play Sounds...</guimenuitem>
 </menuchoice></term>
 <listitem><para>
-<action>Opens a dialog which lets you redefine all the keyboard 
shortcuts.</action>
+  <action>If checked, &knetwalk; game sounds are played.</action>
 </para></listitem>
 </varlistentry>
-
-<varlistentry>
-<term><menuchoice>
-<guimenu>Settings</guimenu>
-<guimenuitem>Configure Toolbars...</guimenuitem>
-</menuchoice></term>
-<listitem><para>Displays a &kde; standard dialog where you can configure the 
toolbar icons.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
-Notifications...</guimenuitem></menuchoice></term>
-<listitem><para>This item displays a standard &kde; notifications configuration
-dialog, where you can change the notifications (sounds, visible messages,
-&etc;) used by &knetwalk;.</para></listitem>
-</varlistentry>
-
 </variablelist>
-</sect1>
 
-<sect1 id="help">
-<title><guimenu>Help</guimenu> Menu</title>
-
-&help.menu.documentation;
+<para>
+Additionally &knetwalk; has the common &kde; <guimenu>Settings</guimenu> and 
<guimenu>Help</guimenu>
+menu items, for more information read the sections about the <ulink 
url="help:/fundamentals/ui.html#menus-settings"
+>Settings Menu</ulink> and <ulink 
url="help:/fundamentals/ui.html#menus-help">Help Menu</ulink>
+of the &kde; Fundamentals.
+</para>
 
 </sect1>
 
@@ -268,6 +229,12 @@
 </entry>
 </row>
 <row>
+<entry>Pause</entry>
+<entry>
+<keycap>P</keycap>
+</entry>
+</row>
+<row>
 <entry>Show High Scores</entry>
 <entry>
 <keycombo action="simul">&Ctrl;<keycap>H</keycap></keycombo>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knetwalk-4.10.4/src/CMakeLists.txt 
new/knetwalk-4.10.90/src/CMakeLists.txt
--- old/knetwalk-4.10.4/src/CMakeLists.txt      2013-05-28 21:38:47.000000000 
+0200
+++ new/knetwalk-4.10.90/src/CMakeLists.txt     2013-06-10 20:54:54.000000000 
+0200
@@ -14,19 +14,20 @@
    mainwindow.cpp
    abstractgrid.cpp)
 
+kde4_add_ui_files( knetwalk_SRCS customgame.ui )
+
 kde4_add_kcfg_files(knetwalk_SRCS settings.kcfgc )
 
 kde4_add_app_icon(knetwalk_SRCS 
"${CMAKE_CURRENT_SOURCE_DIR}/pics/hi*-app-knetwalk.png")
 kde4_add_executable(knetwalk ${knetwalk_SRCS})
 
-target_link_libraries(knetwalk  ${KDE4_KDEUI_LIBS} kdegames 
${KDE4_KNOTIFYCONFIG_LIBS} )
+target_link_libraries(knetwalk  ${KDE4_KDEUI_LIBS} kdegames)
 
 install(TARGETS knetwalk  ${INSTALL_TARGETS_DEFAULT_ARGS} )
 
 
 ########### install files ###############
 
-install( FILES knetwalk.notifyrc  DESTINATION  ${DATA_INSTALL_DIR}/knetwalk )
 install( FILES knetwalkui.rc  DESTINATION  ${DATA_INSTALL_DIR}/knetwalk )
 install( PROGRAMS knetwalk.desktop  DESTINATION  ${XDG_APPS_INSTALL_DIR} )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knetwalk-4.10.4/src/abstractgrid.cpp 
new/knetwalk-4.10.90/src/abstractgrid.cpp
--- old/knetwalk-4.10.4/src/abstractgrid.cpp    2013-05-28 21:38:47.000000000 
+0200
+++ new/knetwalk-4.10.90/src/abstractgrid.cpp   2013-06-11 17:09:35.000000000 
+0200
@@ -225,19 +225,20 @@
 
 void AbstractGrid::createGrid()
 {
-    for (int i = 0; i < cellCount(); ++i) {
-        m_cells[i]->makeEmpty();
-    }
-
     // add a random server
     server_index = rand() % (cellCount());
-    m_cells[server_index]->setServer(true);
 
     // number of cells that aren't free
     int notFreeCells = 0;
     const int minimumNumCells = cellCount() * minCellRatio;
     // retries until the minimum number of cells is big enough
     while (notFreeCells < minimumNumCells) {
+
+        for (int i = 0; i < cellCount(); ++i) {
+            m_cells[i]->makeEmpty();
+        }
+        m_cells[server_index]->setServer(true);
+
         QList<uint> list;
         list.append(server_index);
         if (rand() % 2) addRandomCable(list);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knetwalk-4.10.4/src/customgame.ui 
new/knetwalk-4.10.90/src/customgame.ui
--- old/knetwalk-4.10.4/src/customgame.ui       1970-01-01 01:00:00.000000000 
+0100
+++ new/knetwalk-4.10.90/src/customgame.ui      2013-06-10 20:54:54.000000000 
+0200
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>CustomGameConfig</class>
+ <widget class="QWidget" name="CustomGameConfig">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>316</width>
+    <height>241</height>
+   </rect>
+  </property>
+  <layout class="QGridLayout">
+   <item row="0" column="2">
+    <spacer>
+     <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 row="2" column="1">
+    <spacer>
+     <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="1">
+    <widget class="KIntSpinBox" name="kcfg_Size"/>
+   </item>
+   <item row="0" column="0">
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>Size:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="0" colspan="2">
+    <widget class="QCheckBox" name="kcfg_Wrapping">
+     <property name="toolTip">
+      <string>Wrap from left to right and from top to bottom</string>
+     </property>
+     <property name="text">
+      <string>Wrapping</string>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>KIntSpinBox</class>
+   <extends>QSpinBox</extends>
+   <header>knuminput.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knetwalk-4.10.4/src/fielditem.cpp 
new/knetwalk-4.10.90/src/fielditem.cpp
--- old/knetwalk-4.10.4/src/fielditem.cpp       2013-05-28 21:38:47.000000000 
+0200
+++ new/knetwalk-4.10.90/src/fielditem.cpp      2013-06-10 20:54:54.000000000 
+0200
@@ -19,12 +19,20 @@
 #include "fielditem.h"
 #include <QGraphicsSceneMouseEvent>
 #include <QGraphicsSceneHoverEvent>
-#include <KNotification>
+
+#include <KgSound>
+#include <KStandardDirs>
+
+#include "settings.h"
 
 FieldItem::FieldItem()
     : m_terminalsConnectedEmitted(false), m_activeCell(-1)
 {
     setAcceptHoverEvents(true);
+
+    m_soundTurn = new KgSound(KStandardDirs::locate("appdata", 
"sounds/turn.wav"), this);
+    m_soundClick = new KgSound(KStandardDirs::locate("appdata", 
"sounds/click.wav"), this);
+    m_soundConnect = new KgSound(KStandardDirs::locate("appdata", 
"sounds/connect.wav"), this);
 }
 
 void FieldItem::resize(const QSizeF& size)
@@ -173,16 +181,14 @@
     const Directions d = cellAt(index)->cables();
 
     if ((d == None) || m_gameEnded || cellAt(index)->isLocked()) {
-        KNotification::event( QLatin1String( "clicksound" ) );
+        if(Settings::playSounds())
+            m_soundClick->start();
     } else {
-        KNotification::event( QLatin1String( "turnsound" ) );
+        if(Settings::playSounds())
+            m_soundTurn->start();
 
         cellAt(index)->animateRotation(clockWise);
 
-        // FIXME: won't work!!!
-        //if (updateConnections())
-        //    KNotification::event( "connectsound" );
-
         emit rotationPerformed();
     }
 }
@@ -191,6 +197,18 @@
 void FieldItem::updateConnections()
 {
     QList<int> changedCells = AbstractGrid::updateConnections();
+
+    //When a new terminal is connected/disconnected connect.wav is played
+    if (Settings::playSounds())
+    {
+        foreach (int index, changedCells){
+            if (cellAt(index)->isTerminal()){
+                m_soundConnect->start();
+                break;
+            }
+        }
+    }
+
     checkIfGameEnded();
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knetwalk-4.10.4/src/fielditem.h 
new/knetwalk-4.10.90/src/fielditem.h
--- old/knetwalk-4.10.4/src/fielditem.h 2013-05-28 21:38:47.000000000 +0200
+++ new/knetwalk-4.10.90/src/fielditem.h        2013-06-10 20:54:54.000000000 
+0200
@@ -20,6 +20,8 @@
 
 #include "cell.h"
 
+class KgSound;
+
 class FieldItem : public QGraphicsObject, public AbstractGrid
 {
     Q_OBJECT
@@ -84,6 +86,10 @@
 
     // highlighted cell, from mouse or keyboard input
     int m_activeCell;
+
+    KgSound *m_soundTurn;
+    KgSound *m_soundClick;
+    KgSound *m_soundConnect;
 };
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knetwalk-4.10.4/src/knetwalk.desktop 
new/knetwalk-4.10.90/src/knetwalk.desktop
--- old/knetwalk-4.10.4/src/knetwalk.desktop    2013-05-28 21:38:47.000000000 
+0200
+++ new/knetwalk-4.10.90/src/knetwalk.desktop   2013-06-10 20:54:54.000000000 
+0200
@@ -1,6 +1,6 @@
 [Desktop Entry]
 Type=Application
-Exec=knetwalk -caption "%c"
+Exec=knetwalk -caption %c
 X-DocPath=knetwalk/index.html
 Name=KNetWalk
 Name[ast]=KNetWalk
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knetwalk-4.10.4/src/knetwalk.kcfg 
new/knetwalk-4.10.90/src/knetwalk.kcfg
--- old/knetwalk-4.10.4/src/knetwalk.kcfg       2013-05-28 21:38:47.000000000 
+0200
+++ new/knetwalk-4.10.90/src/knetwalk.kcfg      2013-06-10 20:54:54.000000000 
+0200
@@ -9,4 +9,22 @@
       <label>Default user name</label>
     </entry>
   </group>
+  <group name="Sound">
+    <entry name="PlaySounds" type="Bool" key="PlaySounds">
+      <label>Whether game sounds are played.</label>
+      <default>false</default>
+    </entry>
+  </group>
+  <group name="Custom">
+    <entry name="Size" type="Int" key="Size">
+      <label>The size of the board.</label>
+      <min>3</min>
+      <max>11</max>
+      <default>6</default>
+    </entry>
+    <entry name="Wrapping" type="Bool" key="Wrapping">
+      <label>Whether wrap from left to right and from top to bottom is 
enabled.</label>
+      <default>false</default>
+    </entry>
+  </group>
 </kcfg>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knetwalk-4.10.4/src/knetwalk.notifyrc 
new/knetwalk-4.10.90/src/knetwalk.notifyrc
--- old/knetwalk-4.10.4/src/knetwalk.notifyrc   2013-05-28 21:38:47.000000000 
+0200
+++ new/knetwalk-4.10.90/src/knetwalk.notifyrc  1970-01-01 01:00:00.000000000 
+0100
@@ -1,672 +0,0 @@
-[Global]
-IconName=knetwalk
-Comment=KNetWalk Game
-Comment[bs]=KNetWalk igra
-Comment[ca]=Joc KNetWalk
-Comment[ca@valencia]=Joc KNetWalk
-Comment[da]=KNetWalk-spil
-Comment[de]=KNetWalk-Spiel
-Comment[el]=Παιχνίδι KNetWalk
-Comment[en_GB]=KNetWalk Game
-Comment[es]=Juego KNetWalk
-Comment[et]=KNetWalki mäng
-Comment[fi]=KNetWalk-peli
-Comment[fr]=Jeu KNetWalk
-Comment[ga]=Cluiche KNetWalk
-Comment[gl]=Partida de KNetWalk
-Comment[hu]=KNetWalk
-Comment[is]=KNetWalk leikur
-Comment[it]=Gioco del KNetWalk
-Comment[kk]=KNetWalk ойыны
-Comment[km]=ល្បែង KNetWalk 
-Comment[lv]=KNetWalk spēle
-Comment[mr]=के-नेट-वॉक खेळ
-Comment[nb]=KNetWalk-spillet
-Comment[nds]=KNetWalk-Speel
-Comment[nl]=KNetWalk-spel
-Comment[pl]=Gra KNetWalk
-Comment[pt]=Jogo KNetWalk
-Comment[pt_BR]=Jogo KNetWalk
-Comment[ru]=Игра KNetWalk
-Comment[sk]=Hra KNetWalk
-Comment[sl]=Igra KNetWalk
-Comment[sr]=К‑мрежоход
-Comment[sr@ijekavian]=К‑мрежоход
-Comment[sr@ijekavianlatin]=K‑mrežohod
-Comment[sr@latin]=K‑mrežohod
-Comment[sv]=Spelet Knetwalk
-Comment[tr]=KNetWalk Oyunu
-Comment[uk]=Гра KNetWalk
-Comment[x-test]=xxKNetWalk Gamexx
-Comment[zh_CN]=KNetwalk 游戏
-Comment[zh_TW]=KNetWalk 遊戲
-
-[Event/clicksound]
-Name=Click
-Name[ast]=Calcar
-Name[be]=Пстрычка
-Name[bn]=ক্লিক
-Name[br]=Klik
-Name[bs]=Kliknite
-Name[ca]=Clic
-Name[ca@valencia]=Clic
-Name[cs]=Kliknutí
-Name[cy]=Clicio
-Name[da]=Klik
-Name[de]=Klick
-Name[el]=Κλικ
-Name[en_GB]=Click
-Name[eo]=Kliki
-Name[es]=Pulsar
-Name[et]=Klõps
-Name[eu]=Klikatu
-Name[fa]=کلیک
-Name[fi]=Napsauta
-Name[fr]=Clic
-Name[ga]=Cliceáil
-Name[gl]=Premer
-Name[he]=לחיצה
-Name[hne]=किलिक
-Name[hr]=Click
-Name[hu]=Kattintás
-Name[is]=Smella
-Name[it]=Clic
-Name[ja]=クリック
-Name[kk]=Түртім
-Name[km]=ចុច
-Name[ko]=클릭
-Name[lt]=Paspausti
-Name[lv]=Klikšķis
-Name[mai]=क्लिक करू
-Name[mk]=Кликање
-Name[nb]=Klikk
-Name[nds]=Klick
-Name[nl]=Klik
-Name[nn]=Klikk
-Name[oc]=Clic
-Name[pa]=ਦਬਾਓ
-Name[pl]=Dobierz
-Name[pt]=Carregar
-Name[pt_BR]=Clique
-Name[ro]=Clic
-Name[ru]=Щелчок
-Name[sk]=Kliknutie
-Name[sl]=Klik
-Name[sq]=Klikim
-Name[sr]=Клик
-Name[sr@ijekavian]=Клик
-Name[sr@ijekavianlatin]=Klik
-Name[sr@latin]=Klik
-Name[sv]=Klick
-Name[ta]=சொடுக்கு
-Name[te]=క్లిక్
-Name[tg]=Ангуштзанӣ
-Name[tr]=Tık
-Name[ug]=يەككە چەك
-Name[uk]=Клац
-Name[wa]=Clitchî
-Name[x-test]=xxClickxx
-Name[zh_CN]=单击
-Name[zh_TW]=點擊
-Comment=Click
-Comment[ast]=Calcar
-Comment[be]=Пстрычка
-Comment[bn]=ক্লিক
-Comment[br]=Klik
-Comment[bs]=Kliknite
-Comment[ca]=Clic
-Comment[ca@valencia]=Clic
-Comment[cs]=Kliknutí
-Comment[cy]=Clicio
-Comment[da]=Klik
-Comment[de]=Klick
-Comment[el]=Κλικ
-Comment[en_GB]=Click
-Comment[eo]=Kliki
-Comment[es]=Pulsar
-Comment[et]=Klõps
-Comment[eu]=Klikatu
-Comment[fa]=کلیک
-Comment[fi]=Napsauta
-Comment[fr]=Clic
-Comment[ga]=Cliceáil
-Comment[gl]=Premer unha tecla ou botón
-Comment[he]=לחיצה
-Comment[hne]=किलिक
-Comment[hu]=Kattintás
-Comment[is]=Smella
-Comment[it]=Clic
-Comment[ja]=クリック
-Comment[kk]=Түртім
-Comment[km]=ចុច
-Comment[ko]=클릭
-Comment[lt]=Paspausti
-Comment[lv]=Klikšķis
-Comment[mai]=क्लिक करू
-Comment[mk]=Вртење
-Comment[nb]=Klikk
-Comment[nds]=Klick
-Comment[nl]=Klik
-Comment[nn]=Klikk
-Comment[oc]=Clic
-Comment[pa]=ਦਬਾਓ
-Comment[pl]=Kliknięcie
-Comment[pt]=Carregar
-Comment[pt_BR]=Clique
-Comment[ro]=Clic
-Comment[ru]=Щелчок
-Comment[sk]=Kliknutie
-Comment[sl]=Klik
-Comment[sq]=Klikim
-Comment[sr]=Клик
-Comment[sr@ijekavian]=Клик
-Comment[sr@ijekavianlatin]=Klik
-Comment[sr@latin]=Klik
-Comment[sv]=Klick
-Comment[ta]=சொடுக்கு
-Comment[te]=క్లిక్
-Comment[tg]=Ангушт задан
-Comment[tr]=Tık
-Comment[ug]=يەككە چەك
-Comment[uk]=Клац
-Comment[wa]=Clitchî
-Comment[x-test]=xxClickxx
-Comment[zh_CN]=单击
-Comment[zh_TW]=點擊
-Sound=
-Action=None
-
-[Event/connectsound]
-Name=Connect
-Name[ast]=Coneutar
-Name[be]=Злучэнне
-Name[bn]=সংযোগ স্থাপন করো
-Name[br]=Kevreañ
-Name[bs]=Povezivanje
-Name[ca]=Connexió
-Name[ca@valencia]=Connexió
-Name[cs]=Propojení
-Name[cy]=Connect
-Name[da]=Forbind
-Name[de]=Verbinden
-Name[el]=Σύνδεση
-Name[en_GB]=Connect
-Name[eo]=Konekti
-Name[es]=Conectar
-Name[et]=Ühendus
-Name[eu]=Konektatu
-Name[fa]=اتصال
-Name[fi]=Yhdistä
-Name[fr]=Connecter
-Name[ga]=Ceangail
-Name[gl]=Conectar
-Name[he]=התחבר
-Name[hne]=कनेक्ट
-Name[hr]=Connect
-Name[hu]=Csatlakozás
-Name[is]=Tengjast
-Name[it]=Connetti
-Name[ja]=接続
-Name[kk]=Байланыс
-Name[km]=ត​ភ្ជាប់
-Name[ko]=연결
-Name[lt]=Connect
-Name[lv]=Pieslēgties
-Name[mai]=जोड़ू
-Name[mk]=Поврзување
-Name[nb]=Koble til
-Name[nds]=Tokoppeln
-Name[nl]=Verbinden
-Name[nn]=Kopla saman
-Name[oc]=Se connectar
-Name[pa]=ਜੁੜੋ
-Name[pl]=Połącz
-Name[pt]=Ligar
-Name[pt_BR]=Conectar
-Name[ro]=Conectează
-Name[ru]=Подключение
-Name[sk]=Pripojenie
-Name[sl]=Povezava
-Name[sq]=Lidhu
-Name[sr]=Повезан
-Name[sr@ijekavian]=Повезан
-Name[sr@ijekavianlatin]=Povezan
-Name[sr@latin]=Povezan
-Name[sv]=Anslut
-Name[tr]=Bağlan
-Name[ug]=باغلان
-Name[uk]=З'єднати
-Name[wa]=Raloyî
-Name[x-test]=xxConnectxx
-Name[zh_CN]=连接
-Name[zh_TW]=連線
-Comment=Connect
-Comment[ast]=Coneutar
-Comment[bs]=Povezivanje
-Comment[ca]=Connexió
-Comment[ca@valencia]=Connexió
-Comment[cs]=Propojení
-Comment[da]=Forbind
-Comment[de]=Verbinden
-Comment[el]=Σύνδεση
-Comment[en_GB]=Connect
-Comment[eo]=Konekti
-Comment[es]=Conectar
-Comment[et]=Ühendus
-Comment[eu]=Konektatu
-Comment[fa]=اتصال
-Comment[fi]=Yhdistä
-Comment[fr]=Connecter
-Comment[ga]=Ceangail
-Comment[gl]=Conectar
-Comment[hne]=कनेक्ट
-Comment[hu]=Csatlakozás
-Comment[is]=Tengjast
-Comment[it]=Connetti
-Comment[ja]=接続
-Comment[kk]=Байланыс
-Comment[km]=ត​ភ្ជាប់
-Comment[ko]=연결
-Comment[lt]=Sujungti
-Comment[lv]=Pieslēgties
-Comment[mai]=जोड़ू
-Comment[nb]=Koble til
-Comment[nds]=Tokoppeln
-Comment[nl]=Verbinden
-Comment[nn]=Kopla saman
-Comment[oc]=Se connectar
-Comment[pa]=ਕੁਨੈਕਟ
-Comment[pl]=Połącz
-Comment[pt]=Ligar
-Comment[pt_BR]=Conectar
-Comment[ro]=Conectează
-Comment[ru]=Подключение
-Comment[sk]=Pripojenie
-Comment[sl]=Povezava
-Comment[sq]=Lidhu
-Comment[sr]=Повезан
-Comment[sr@ijekavian]=Повезан
-Comment[sr@ijekavianlatin]=Povezan
-Comment[sr@latin]=Povezan
-Comment[sv]=Anslut
-Comment[tr]=Bağlan
-Comment[ug]=باغلان
-Comment[uk]=З'єднати
-Comment[wa]=Raloyî
-Comment[x-test]=xxConnectxx
-Comment[zh_CN]=连接
-Comment[zh_TW]=連線
-Sound=KDE-Window-Move-Stop.ogg
-Action=None
-
-[Event/winsound]
-Name=Game won
-Name[ast]=Partida ganada
-Name[be]=Перамога
-Name[bn]=খেলা জিতেছেন
-Name[br]=Gounezet eo ar c'hoari
-Name[bs]=Pobjedili ste
-Name[ca]=Partida guanyada
-Name[ca@valencia]=Partida guanyada
-Name[cs]=Vyhraná hra
-Name[cy]=Gêm wedi ei ennill
-Name[da]=Spillet vundet
-Name[de]=Spiel gewonnen
-Name[el]=Νίκη στο παιχνίδι
-Name[en_GB]=Game won
-Name[eo]=Ludo venkita
-Name[es]=Partida ganada
-Name[et]=Mäng võidetud
-Name[eu]=Jokoa irabazi da
-Name[fa]=بازی با پیروزی تمام شد
-Name[fi]=Peli voitettu
-Name[fr]=Partie gagnée
-Name[ga]=Cluiche buaite
-Name[gl]=Vitoria
-Name[he]=ניצחת!
-Name[hne]=खेल जीते
-Name[hr]=Igra je dobivena
-Name[hu]=Győzelem
-Name[is]=Leikur unninn
-Name[it]=Partita vinta
-Name[ja]=ゲームに勝ち
-Name[kk]=Ұттыңыз
-Name[km]=បាន​ឈ្នះ​
-Name[ko]=게임에서 이김
-Name[lt]=Žaidimas laimėtas
-Name[lv]=Spēle uzvarēta
-Name[mk]=Играта е добиена
-Name[nb]=Vant spillet
-Name[nds]=Speel wunnen
-Name[nl]=Spel gewonnen
-Name[nn]=Vann spelet
-Name[pa]=ਖੇਡ ਜਿੱਤੀ
-Name[pl]=Gra wygrana
-Name[pt]=Jogo vencido
-Name[pt_BR]=Jogo ganho
-Name[ro]=Joc cîștigat
-Name[ru]=Победа
-Name[sk]=Vyhraná hra
-Name[sl]=Igra je dobljena
-Name[sq]=Loja u Fitua
-Name[sr]=Игра је добијена
-Name[sr@ijekavian]=Игра је добијена
-Name[sr@ijekavianlatin]=Igra je dobijena
-Name[sr@latin]=Igra je dobijena
-Name[sv]=Du vann spelet
-Name[ta]=ஆட்டம் ஜெயிக்கப்பட்டது
-Name[te]=ఆట నెగ్గావు
-Name[tg]=Дар бозӣ ғолиб омадед
-Name[tr]=Oyun kazanıldı
-Name[ug]=ئويۇن ئۇتتى
-Name[uk]=Гру виграно
-Name[wa]=Djeu wangnî
-Name[x-test]=xxGame wonxx
-Name[zh_CN]=赢了游戏
-Name[zh_TW]=您贏了
-Comment=Game won
-Comment[ast]=Partida ganada
-Comment[be]=Перамога
-Comment[bn]=খেল খতম
-Comment[br]=Gounezet eo ar c'hoari
-Comment[bs]=Pobjedili ste
-Comment[ca]=Partida guanyada
-Comment[ca@valencia]=Partida guanyada
-Comment[cs]=Vyhraná hra
-Comment[cy]=Gêm wedi ei ennill
-Comment[da]=Spil vundet
-Comment[de]=Spiel gewonnen
-Comment[el]=Νίκη στο παιχνίδι
-Comment[en_GB]=Game won
-Comment[eo]=Vi gajnis
-Comment[es]=Partida ganada
-Comment[et]=Mäng võidetud
-Comment[eu]=Jokoa irabazi da
-Comment[fa]=بازی با پیروزی تمام شد
-Comment[fi]=Peli voitettu
-Comment[fr]=Partie gagnée
-Comment[ga]=Cluiche buaite
-Comment[gl]=Gañaches a partida
-Comment[he]=ניצחת!
-Comment[hne]=खेल जीते
-Comment[hr]=Igra je dobivena
-Comment[hu]=Győzelem
-Comment[is]=Leikur unninn
-Comment[it]=Partita vinta
-Comment[ja]=ゲームに勝ち
-Comment[kk]=Ойынды ұттыңыз
-Comment[km]=បាន​ឈ្នះ​
-Comment[ko]=게임에서 이김
-Comment[lt]=Žaidimas laimėtas
-Comment[lv]=Spēle ir uzvarēta
-Comment[mk]=Играта е добиена
-Comment[nb]=Vant spillet
-Comment[nds]=Speel wunnen
-Comment[nl]=Spel gewonnen
-Comment[nn]=Vann spelet
-Comment[pa]=ਖੇਡ ਜਿੱਤੀ
-Comment[pl]=Gra wygrana
-Comment[pt]=Jogo vencido
-Comment[pt_BR]=Jogo ganho
-Comment[ro]=Joc cîștigat
-Comment[ru]=Победа
-Comment[sk]=Vyhraná hra
-Comment[sl]=Igra je dobljena
-Comment[sq]=Loja u Fitua
-Comment[sr]=Игра је добијена
-Comment[sr@ijekavian]=Игра је добијена
-Comment[sr@ijekavianlatin]=Igra je dobijena
-Comment[sr@latin]=Igra je dobijena
-Comment[sv]=Du vann spelet
-Comment[ta]=ஆட்டம் ஜெயிக்கப்பட்டது
-Comment[te]=ఆట నెగ్గావు
-Comment[tg]=Дар бозӣ ғолиб омадед
-Comment[tr]=Oyun Kazanıldı
-Comment[ug]=ئويۇن ئۇتتى
-Comment[uk]=Гру виграно
-Comment[x-test]=xxGame wonxx
-Comment[zh_CN]=赢了游戏
-Comment[zh_TW]=您贏了
-Sound=KDE-K3B-Insert-Medium.ogg
-Action=Sound
-
-[Event/startsound]
-Name=Connect
-Name[ast]=Coneutar
-Name[be]=Злучэнне
-Name[bn]=সংযোগ স্থাপন করো
-Name[br]=Kevreañ
-Name[bs]=Povezivanje
-Name[ca]=Connexió
-Name[ca@valencia]=Connexió
-Name[cs]=Propojení
-Name[cy]=Connect
-Name[da]=Forbind
-Name[de]=Verbinden
-Name[el]=Σύνδεση
-Name[en_GB]=Connect
-Name[eo]=Konekti
-Name[es]=Conectar
-Name[et]=Ühendus
-Name[eu]=Konektatu
-Name[fa]=اتصال
-Name[fi]=Yhdistä
-Name[fr]=Connecter
-Name[ga]=Ceangail
-Name[gl]=Conectar
-Name[he]=התחבר
-Name[hne]=कनेक्ट
-Name[hr]=Connect
-Name[hu]=Csatlakozás
-Name[is]=Tengjast
-Name[it]=Connetti
-Name[ja]=接続
-Name[kk]=Байланыс
-Name[km]=ត​ភ្ជាប់
-Name[ko]=연결
-Name[lt]=Connect
-Name[lv]=Pieslēgties
-Name[mai]=जोड़ू
-Name[mk]=Поврзување
-Name[nb]=Koble til
-Name[nds]=Tokoppeln
-Name[nl]=Verbinden
-Name[nn]=Kopla saman
-Name[oc]=Se connectar
-Name[pa]=ਜੁੜੋ
-Name[pl]=Połącz
-Name[pt]=Ligar
-Name[pt_BR]=Conectar
-Name[ro]=Conectează
-Name[ru]=Подключение
-Name[sk]=Pripojenie
-Name[sl]=Povezava
-Name[sq]=Lidhu
-Name[sr]=Повезан
-Name[sr@ijekavian]=Повезан
-Name[sr@ijekavianlatin]=Povezan
-Name[sr@latin]=Povezan
-Name[sv]=Anslut
-Name[tr]=Bağlan
-Name[ug]=باغلان
-Name[uk]=З'єднати
-Name[wa]=Raloyî
-Name[x-test]=xxConnectxx
-Name[zh_CN]=连接
-Name[zh_TW]=連線
-Comment=Connect
-Comment[ast]=Coneutar
-Comment[bs]=Povezivanje
-Comment[ca]=Connexió
-Comment[ca@valencia]=Connexió
-Comment[cs]=Propojení
-Comment[da]=Forbind
-Comment[de]=Verbinden
-Comment[el]=Σύνδεση
-Comment[en_GB]=Connect
-Comment[eo]=Konekti
-Comment[es]=Conectar
-Comment[et]=Ühendus
-Comment[eu]=Konektatu
-Comment[fa]=اتصال
-Comment[fi]=Yhdistä
-Comment[fr]=Connecter
-Comment[ga]=Ceangail
-Comment[gl]=Conectar
-Comment[hne]=कनेक्ट
-Comment[hu]=Csatlakozás
-Comment[is]=Tengjast
-Comment[it]=Connetti
-Comment[ja]=接続
-Comment[kk]=Байланыс
-Comment[km]=ត​ភ្ជាប់
-Comment[ko]=연결
-Comment[lt]=Sujungti
-Comment[lv]=Pieslēgties
-Comment[mai]=जोड़ू
-Comment[nb]=Koble til
-Comment[nds]=Tokoppeln
-Comment[nl]=Verbinden
-Comment[nn]=Kopla saman
-Comment[oc]=Se connectar
-Comment[pa]=ਕੁਨੈਕਟ
-Comment[pl]=Połącz
-Comment[pt]=Ligar
-Comment[pt_BR]=Conectar
-Comment[ro]=Conectează
-Comment[ru]=Подключение
-Comment[sk]=Pripojenie
-Comment[sl]=Povezava
-Comment[sq]=Lidhu
-Comment[sr]=Повезан
-Comment[sr@ijekavian]=Повезан
-Comment[sr@ijekavianlatin]=Povezan
-Comment[sr@latin]=Povezan
-Comment[sv]=Anslut
-Comment[tr]=Bağlan
-Comment[ug]=باغلان
-Comment[uk]=З'єднати
-Comment[wa]=Raloyî
-Comment[x-test]=xxConnectxx
-Comment[zh_CN]=连接
-Comment[zh_TW]=連線
-Sound=KDE-Im-User-Auth.ogg
-Action=Sound
-
-[Event/turnsound]
-Name=Turn
-Name[ast]=Turnu
-Name[be]=Ход
-Name[bn]=ঘোরো
-Name[bs]=Okret
-Name[ca]=Gir
-Name[ca@valencia]=Gir
-Name[cs]=Tah
-Name[cy]=Turn
-Name[da]=Drej
-Name[de]=Zug
-Name[el]=Στροφή
-Name[en_GB]=Turn
-Name[eo]=Turni
-Name[es]=Turno
-Name[et]=Pööre
-Name[eu]=Biratu
-Name[fa]=نوبت
-Name[fi]=Vuoro
-Name[fr]=Tourner
-Name[ga]=Babhta
-Name[gl]=Rolda
-Name[he]=סיבוב
-Name[hne]=बारी
-Name[hr]=Turn
-Name[hu]=Lépés
-Name[is]=Beygja
-Name[it]=Gira
-Name[ja]=回転
-Name[kk]=Жүріс
-Name[km]=វេន
-Name[ko]=회전
-Name[lt]=Ėjimas
-Name[lv]=Gājiens
-Name[mk]=Вртење
-Name[nb]=Trekk
-Name[nds]=Törn
-Name[nl]=Zet
-Name[nn]=Trekk
-Name[pa]=ਵਾਰੀ
-Name[pl]=Tura
-Name[pt]=Vez
-Name[pt_BR]=Gira
-Name[ru]=Ход
-Name[sk]=Ťah
-Name[sl]=Poteza
-Name[sq]=Kthesa
-Name[sr]=Окрет
-Name[sr@ijekavian]=Окрет
-Name[sr@ijekavianlatin]=Okret
-Name[sr@latin]=Okret
-Name[sv]=Omgång
-Name[te]=వంతు
-Name[tr]=Dön
-Name[ug]=چۆرگىلەش
-Name[uk]=Хід
-Name[wa]=Tourner
-Name[x-test]=xxTurnxx
-Name[zh_CN]=旋转
-Name[zh_TW]=Turn
-Comment=Turn
-Comment[ast]=Turnu
-Comment[bs]=Okret
-Comment[ca]=Gir
-Comment[ca@valencia]=Gir
-Comment[cs]=Tah
-Comment[da]=Drej
-Comment[de]=Zug
-Comment[el]=Στροφή
-Comment[en_GB]=Turn
-Comment[eo]=Turni
-Comment[es]=Turno
-Comment[et]=Pööre
-Comment[eu]=Biratu
-Comment[fa]=نوبت
-Comment[fi]=Vuoro
-Comment[fr]=Tourner
-Comment[ga]=Babhta
-Comment[gl]=Rolda
-Comment[hne]=बारी
-Comment[hu]=Lépés
-Comment[is]=Beygja
-Comment[it]=Gira
-Comment[ja]=回転
-Comment[kk]=Жүріс
-Comment[km]=វេន
-Comment[ko]=회전
-Comment[lt]=Ėjimas
-Comment[lv]=Gājiens
-Comment[nb]=Trekk
-Comment[nds]=Törn
-Comment[nl]=Zet
-Comment[nn]=Trekk
-Comment[pl]=Tura
-Comment[pt]=Vez
-Comment[pt_BR]=Gira
-Comment[ru]=Ход
-Comment[sk]=Ťah
-Comment[sl]=Poteza
-Comment[sq]=Kthesa
-Comment[sr]=Окрет
-Comment[sr@ijekavian]=Окрет
-Comment[sr@ijekavianlatin]=Okret
-Comment[sr@latin]=Okret
-Comment[sv]=Omgång
-Comment[te]=వంతు
-Comment[tr]=Dön
-Comment[ug]=چۆرگىلەش
-Comment[uk]=Хід
-Comment[wa]=Tourner
-Comment[x-test]=xxTurnxx
-Comment[zh_CN]=旋转
-Comment[zh_TW]=Turn
-Sound=KDE-Window-Move.ogg
-Action=None
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knetwalk-4.10.4/src/knetwalkui.rc 
new/knetwalk-4.10.90/src/knetwalkui.rc
--- old/knetwalk-4.10.4/src/knetwalkui.rc       2013-05-28 21:38:47.000000000 
+0200
+++ new/knetwalk-4.10.90/src/knetwalkui.rc      2013-06-10 20:54:54.000000000 
+0200
@@ -1,11 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <gui name="knetwalk"
-     version="1"
+     version="2"
      xmlns="http://www.kde.org/standards/kxmlgui/1.0";
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
      xsi:schemaLocation="http://www.kde.org/standards/kxmlgui/1.0
                          http://www.kde.org/standards/kxmlgui/1.0/kxmlgui.xsd";>
-<MenuBar></MenuBar>
+<MenuBar>
+    <Menu name="settings">
+       <Action name="toggle_sound" append="save_merge"/>
+    </Menu>
+</MenuBar>
 <ToolBar name="mainToolBar"><text>Main Toolbar</text>
     <Action name="game_new"/>
     <Action name="game_pause"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knetwalk-4.10.4/src/main.cpp 
new/knetwalk-4.10.90/src/main.cpp
--- old/knetwalk-4.10.4/src/main.cpp    2013-05-28 21:38:47.000000000 +0200
+++ new/knetwalk-4.10.90/src/main.cpp   2013-06-10 20:54:54.000000000 +0200
@@ -28,7 +28,7 @@
 static const char description[] =
 I18N_NOOP("KNetWalk, a game for system administrators.");
 
-static const char version[] = "3.0.1";
+static const char version[] = "3.1.0";
 
 int main(int argc, char ** argv)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knetwalk-4.10.4/src/mainwindow.cpp 
new/knetwalk-4.10.90/src/mainwindow.cpp
--- old/knetwalk-4.10.4/src/mainwindow.cpp      2013-05-28 21:38:47.000000000 
+0200
+++ new/knetwalk-4.10.90/src/mainwindow.cpp     2013-06-10 20:54:54.000000000 
+0200
@@ -26,8 +26,7 @@
 #include <KToggleAction>
 #include <KActionCollection>
 #include <KStandardGameAction>
-#include <KNotification>
-#include <KNotifyConfigWidget>
+#include <KStandardDirs>
 #include <KMessageBox>
 #include <KStatusBar>
 
@@ -36,10 +35,13 @@
 #include <KGameRenderer>
 #include <KScoreDialog>
 #include <KGameClock>
+#include <KgSound>
 
 #include <ctime>
 #include <cmath>
 
+#include "ui_customgame.h"
+
 #include "globals.h"
 #include "settings.h"
 #include "cell.h"
@@ -48,6 +50,18 @@
 #include "view.h"
 #include "fielditem.h"
 
+class CustomGameConfig : public QWidget
+{
+public:
+    CustomGameConfig(QWidget *parent)
+        : QWidget(parent)
+    {
+        ui.setupUi(this);
+    }
+private:
+    Ui::CustomGameConfig ui;
+};
+
 MainWindow::MainWindow(QWidget *parent)
     : KXmlGuiWindow(parent), m_clickCount(0)
 {
@@ -72,6 +86,9 @@
     Kg::difficulty()->addStandardLevelRange(
         KgDifficultyLevel::Easy, KgDifficultyLevel::VeryHard
     );
+    Kg::difficulty()->addLevel(
+                new KgDifficultyLevel(100, QByteArray("Custom"), 
i18n("Custom"))
+    );
     KgDifficultyGUI::init(this);
     connect(Kg::difficulty(), SIGNAL(currentLevelChanged(const 
KgDifficultyLevel*)), SLOT(startNewGame()));
 
@@ -90,6 +107,9 @@
     m_gameClock = new KGameClock(this, KGameClock::MinSecOnly);
     connect(m_gameClock, SIGNAL(timeChanged(QString)), 
SLOT(updateStatusBar()));
 
+    m_soundStart = new KgSound(KStandardDirs::locate("appdata", 
"sounds/start.wav"), this);
+    m_soundWin = new KgSound(KStandardDirs::locate("appdata", 
"sounds/win.wav"), this);
+
     startNewGame();
 }
 
@@ -108,11 +128,12 @@
     KStandardGameAction::quit(this, SLOT(close()), actionCollection());
 
     // Settings
-    KStandardAction::configureNotifications(this,
-                SLOT(configureNotifications()), actionCollection());
+    KStandardAction::preferences(this, SLOT(configureSettings()), 
actionCollection());
 
-    KStandardAction::preferences(m_selector, SLOT(showAsDialog()),
-                                 actionCollection());
+    m_soundAction = new KToggleAction(i18n("&Play Sounds"), this);
+    connect(m_soundAction, SIGNAL(triggered(bool)), this, 
SLOT(setSounds(bool)));
+    actionCollection()->addAction( QLatin1String( "toggle_sound" ), 
m_soundAction);
+    m_soundAction->setChecked(Settings::playSounds());
 
     KAction* action = new KAction(i18n("Keyboard: Field right"), this);
     action->setShortcut(Qt::Key_Right);
@@ -156,6 +177,16 @@
     m_scene->resizeScene(m_scene->sceneRect().size());
 }
 
+void MainWindow::configureSettings()
+{
+    if (KConfigDialog::showDialog(QLatin1String("settings")))
+        return;
+    KConfigDialog *dialog = new KConfigDialog(this, QLatin1String("settings"), 
Settings::self());
+    dialog->addPage(m_selector, i18n("Theme"), 
QLatin1String("games-config-theme"));
+    dialog->addPage(new CustomGameConfig(dialog), i18n("Custom Game"), 
QLatin1String("games-config-custom"));
+    dialog->show();
+}
+
 void MainWindow::showHighscores()
 {
     KScoreDialog scoreDialog(KScoreDialog::Name | KScoreDialog::Time, this);
@@ -164,13 +195,22 @@
     scoreDialog.exec();
 }
 
+void MainWindow::setSounds(bool val)
+{
+    Settings::setPlaySounds(val);
+    Settings::self()->writeConfig();
+}
+
 void MainWindow::startNewGame()
 {
-    KNotification::event( QLatin1String( "startsound" ), i18n("New Game") );
+    if(Settings::playSounds())
+        m_soundStart->start();
 
     const KgDifficultyLevel::StandardLevel l = Kg::difficultyLevel();
 
-    const bool isWrapped = (l == KgDifficultyLevel::VeryHard);
+    bool isWrapped = (l == KgDifficultyLevel::VeryHard);
+    if (Kg::difficultyLevel() == KgDifficultyLevel::Custom)
+        isWrapped = Settings::wrapping();
     const int size = boardSize();
     m_scene->startNewGame(size, size, (Wrapping)isWrapped);
     m_clickCount = -m_scene->fieldItem()->minimumMoves();
@@ -189,7 +229,9 @@
 
 void MainWindow::gameOver()
 {
-    KNotification::event(QLatin1String( "winsound" ));
+    if(Settings::playSounds())
+        m_soundWin->start();
+
     m_gameClock->pause();
     m_pauseAction->setEnabled(false);
     Kg::difficulty()->setGameRunning(false);
@@ -247,17 +289,13 @@
     statusBar()->changeItem(time, StatusBarIndexTime);
 }
 
-void MainWindow::configureNotifications()
-{
-    KNotifyConfigWidget::configure(this);
-}
-
 int MainWindow::boardSize()
 {
     switch (Kg::difficultyLevel()) {
     case KgDifficultyLevel::Easy: return NoviceBoardSize;
     case KgDifficultyLevel::Medium: return NormalBoardSize;
     case KgDifficultyLevel::Hard: return ExpertBoardSize;
+    case KgDifficultyLevel::Custom: return Settings::size();
     default: return MasterBoardSize;
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knetwalk-4.10.4/src/mainwindow.h 
new/knetwalk-4.10.90/src/mainwindow.h
--- old/knetwalk-4.10.4/src/mainwindow.h        2013-05-28 21:38:47.000000000 
+0200
+++ new/knetwalk-4.10.90/src/mainwindow.h       2013-06-10 20:54:54.000000000 
+0200
@@ -28,6 +28,7 @@
 #include "abstractgrid.h"
 #include "cell.h"
 
+class KgSound;
 class KGameClock;
 class KgThemeSelector;
 class KNetWalkScene;
@@ -61,8 +62,9 @@
     void updateStatusBar();
 
     void showHighscores();
-    void configureNotifications();
-    void loadSettings();    
+    void loadSettings();
+    void configureSettings();
+    void setSounds(bool val);
 private:
     void setupActions();
 
@@ -70,10 +72,13 @@
     KGameClock   *m_gameClock;
 
     KToggleAction* m_pauseAction;
+    KToggleAction* m_soundAction;
 
     KNetWalkScene* m_scene;
     KNetWalkView* m_view;
     KgThemeSelector* m_selector;
+    KgSound *m_soundStart;
+    KgSound *m_soundWin;
 };
 
 #endif // MAINWINDOW_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knetwalk-4.10.4/src/settings.kcfgc 
new/knetwalk-4.10.90/src/settings.kcfgc
--- old/knetwalk-4.10.4/src/settings.kcfgc      2013-05-28 21:38:47.000000000 
+0200
+++ new/knetwalk-4.10.90/src/settings.kcfgc     2013-06-10 20:54:54.000000000 
+0200
@@ -2,5 +2,5 @@
 File=knetwalk.kcfg
 ClassName=Settings
 Singleton=true
-Mutators=username,skill
+Mutators=true
 DefaultValueGetters=Theme
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knetwalk-4.10.4/tests/CMakeLists.txt 
new/knetwalk-4.10.90/tests/CMakeLists.txt
--- old/knetwalk-4.10.4/tests/CMakeLists.txt    1970-01-01 01:00:00.000000000 
+0100
+++ new/knetwalk-4.10.90/tests/CMakeLists.txt   2013-06-10 20:54:55.000000000 
+0200
@@ -0,0 +1,4 @@
+set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
+
+kde4_add_unit_test( abstractgridtest abstractgridtest.cpp 
../src/abstractgrid.cpp )
+target_link_libraries( abstractgridtest ${KDE4_KDECORE_LIBS} 
${QT_QTGUI_LIBRARY} ${QT_QTTEST_LIBRARY} )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knetwalk-4.10.4/tests/abstractgridtest.cpp 
new/knetwalk-4.10.90/tests/abstractgridtest.cpp
--- old/knetwalk-4.10.4/tests/abstractgridtest.cpp      1970-01-01 
01:00:00.000000000 +0100
+++ new/knetwalk-4.10.90/tests/abstractgridtest.cpp     2013-06-10 
20:54:55.000000000 +0200
@@ -0,0 +1,55 @@
+/***************************************************************************
+ *   Copyright (C) 2013 by Albert Astals Cid <aa...@kde.org>               *
+ *                                                                         *
+ *   This program 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 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ ***************************************************************************/
+
+#include <qtest_kde.h>
+#include <qdir.h>
+
+#include "../src/abstractgrid.h"
+#include "../src/mainwindow.h"
+
+class AbstractGridTester : public AbstractGrid
+{
+    public:
+        void initializeGrid(uint width, uint height, Wrapping w=NotWrapped)
+        {
+            AbstractGrid::initializeGrid(width, height, w);
+        }
+};
+
+class AbstractGridTest : public QObject
+{
+    Q_OBJECT
+
+    private slots:
+        void testCreateGrid();
+};
+
+void AbstractGridTest::testCreateGrid()
+{
+    srand(1370714025);
+    for (int i = 0; i < 25; ++i) {
+        qDebug() << "Iteration" << i;
+        AbstractGridTester t;
+        t.initializeGrid(5, 5, NotWrapped);
+        AbstractGridTester t2;
+        t2.initializeGrid(5, 5, Wrapped);
+        AbstractGridTester t3;
+        t3.initializeGrid(7, 7, NotWrapped);
+        AbstractGridTester t4;
+        t4.initializeGrid(7, 7, Wrapped);
+        AbstractGridTester t5;
+        t5.initializeGrid(9, 9, NotWrapped);
+        AbstractGridTester t6;
+        t6.initializeGrid(9, 9, Wrapped);
+    }
+}
+
+QTEST_KDEMAIN_CORE( AbstractGridTest )
+
+#include "abstractgridtest.moc"

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to