Author: mir3x
Date: Mon Dec 28 09:45:34 2015
New Revision: 31227

URL: http://svn.gna.org/viewcvs/freeciv?rev=31227&view=rev
Log:
Added close button to unit selection and also 
forced closing when 'escape' pressed.

See patch #6724


Modified:
    trunk/client/gui-qt/dialogs.cpp
    trunk/client/gui-qt/dialogs.h

Modified: trunk/client/gui-qt/dialogs.cpp
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-qt/dialogs.cpp?rev=31227&r1=31226&r2=31227&view=diff
==============================================================================
--- trunk/client/gui-qt/dialogs.cpp     (original)
+++ trunk/client/gui-qt/dialogs.cpp     Mon Dec 28 09:45:34 2015
@@ -2576,6 +2576,7 @@
   h_pix = NULL;
   create_pixmap();
   p = mapFromGlobal(QCursor::pos());
+  cw = new close_widget(this);
   setMouseTracking(true);
   final_p.setX(p.x());
   final_p.setY(p.y());
@@ -2586,6 +2587,7 @@
     final_p.setY(height());
   }
   move(final_p.x(), final_p.y() - height());
+  setFocus();
 }
 /****************************************************************
   Destructor for unit select
@@ -2595,6 +2597,7 @@
     delete h_pix;
     delete pix;
     delete ufont;
+    delete cw;
 }
 
 /****************************************************************
@@ -2806,6 +2809,7 @@
   } else {
     info_font->setPointSize(*f_size);
   }
+  cw->put_to_corner();
 }
 /****************************************************************
   Paint event, redirects to paint(...)
@@ -2825,6 +2829,9 @@
 *****************************************************************/
 void unit_select::update_menu()
 {
+  was_destroyed = true;
+  close();
+  destroy();
 }
 
 /****************************************************************
@@ -2881,6 +2888,19 @@
   event->accept();
 }
 
+/****************************************************************
+  Keyboard handler for unit_select
+*****************************************************************/
+void unit_select::keyPressEvent(QKeyEvent *event)
+{
+  if (event->key() == Qt::Key_Escape) {
+    was_destroyed = true;
+    close();
+    destroy();
+  }
+  QWidget::keyPressEvent(event);
+}
+
 /***************************************************************************
  Set current diplo dialog
 ***************************************************************************/

Modified: trunk/client/gui-qt/dialogs.h
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-qt/dialogs.h?rev=31227&r1=31226&r2=31227&view=diff
==============================================================================
--- trunk/client/gui-qt/dialogs.h       (original)
+++ trunk/client/gui-qt/dialogs.h       Mon Dec 28 09:45:34 2015
@@ -168,6 +168,7 @@
   QFont *ufont;
   QFont *info_font;
   int row_count;
+  close_widget *cw;
 public:
   unit_select(struct tile *ptile, QWidget *parent);
   ~unit_select();
@@ -179,6 +180,7 @@
   void paint(QPainter *painter, QPaintEvent *event);
   void paintEvent(QPaintEvent *event);
   void mousePressEvent(QMouseEvent *event);
+  void keyPressEvent(QKeyEvent *event);
   void mouseMoveEvent(QMouseEvent *event);
   void wheelEvent(QWheelEvent *event);
 private:


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to