From f97e5ee9c22cccfb27a3634e814ad9b01edc3195 Mon Sep 17 00:00:00 2001
From: Stefan Dombrowski <stefan@uni-bonn.de>
Date: Tue, 2 Nov 2010 10:42:39 +0100
Subject: Adding double-click to server dialog and world select dialog

This resolves http://bugs.manasource.org/view.php?id=259

Reviewed-by: Thorbjorn
---
 src/gui/serverdialog.cpp      | 10 ++++++++++
 src/gui/serverdialog.h        |  2 ++
 src/gui/worldselectdialog.cpp | 10 ++++++++++
 src/gui/worldselectdialog.h   |  2 ++
 4 files changed, 24 insertions(+)

(limited to 'src/gui')

diff --git a/src/gui/serverdialog.cpp b/src/gui/serverdialog.cpp
index e377042a..d1eece56 100644
--- a/src/gui/serverdialog.cpp
+++ b/src/gui/serverdialog.cpp
@@ -430,6 +430,16 @@ void ServerDialog::valueChanged(const gcn::SelectionEvent &)
     mDeleteButton->setEnabled(myServer.save);
 }
 
+void ServerDialog::mouseClicked(gcn::MouseEvent &mouseEvent)
+{
+    if (mouseEvent.getSource() == mServersList &&
+        isDoubleClick(mServersList->getSelected()))
+    {
+        action(gcn::ActionEvent(mConnectButton,
+                                mConnectButton->getActionEventId()));
+    }
+}
+
 void ServerDialog::logic()
 {
     {
diff --git a/src/gui/serverdialog.h b/src/gui/serverdialog.h
index aae8b2e0..1eea6c92 100644
--- a/src/gui/serverdialog.h
+++ b/src/gui/serverdialog.h
@@ -135,6 +135,8 @@ class ServerDialog : public Window,
          */
         void valueChanged(const gcn::SelectionEvent &event);
 
+        void mouseClicked(gcn::MouseEvent &mouseEvent);
+
         void logic();
 
     protected:
diff --git a/src/gui/worldselectdialog.cpp b/src/gui/worldselectdialog.cpp
index 3219b83d..3207f394 100644
--- a/src/gui/worldselectdialog.cpp
+++ b/src/gui/worldselectdialog.cpp
@@ -137,3 +137,13 @@ void WorldSelectDialog::keyPressed(gcn::KeyEvent &keyEvent)
         action(gcn::ActionEvent(NULL, mChooseWorld->getActionEventId()));
     }
 }
+
+void WorldSelectDialog::mouseClicked(gcn::MouseEvent &mouseEvent)
+{
+    if (mouseEvent.getSource() == mWorldList &&
+        isDoubleClick(mWorldList->getSelected()))
+    {
+        action(gcn::ActionEvent(mChooseWorld,
+                                mChooseWorld->getActionEventId()));
+    }
+}
diff --git a/src/gui/worldselectdialog.h b/src/gui/worldselectdialog.h
index 2d4f0189..b51110b4 100644
--- a/src/gui/worldselectdialog.h
+++ b/src/gui/worldselectdialog.h
@@ -62,6 +62,8 @@ class WorldSelectDialog : public Window, public gcn::ActionListener,
 
         void keyPressed(gcn::KeyEvent &keyEvent);
 
+        void mouseClicked(gcn::MouseEvent &mouseEvent);
+
     private:
         WorldListModel *mWorldListModel;
         gcn::ListBox *mWorldList;
-- 
cgit v1.2.3-70-g09d2