[aseprite] 20/134: Move button to delete shortcuts from SelectAccelerator to KeyItem

Tobias Hansen thansen at moszumanska.debian.org
Sat Mar 14 17:09:56 UTC 2015


This is an automated email from the git hooks/post-receive script.

thansen pushed a commit to branch master
in repository aseprite.

commit d90150fed9fbafad077dbbff29a2927f2aa1e1f1
Author: David Capello <davidcapello at gmail.com>
Date:   Wed Oct 29 22:06:25 2014 -0300

    Move button to delete shortcuts from SelectAccelerator to KeyItem
---
 data/widgets/select_accelerator.xml         |  1 -
 src/app/commands/cmd_keyboard_shortcuts.cpp | 49 +++++++++++++++++++++++------
 src/app/ui/select_accelerator.cpp           | 19 +----------
 src/app/ui/select_accelerator.h             |  5 +--
 4 files changed, 42 insertions(+), 32 deletions(-)

diff --git a/data/widgets/select_accelerator.xml b/data/widgets/select_accelerator.xml
index 7640c38..551ea73 100644
--- a/data/widgets/select_accelerator.xml
+++ b/data/widgets/select_accelerator.xml
@@ -27,7 +27,6 @@
         <box horizontal="true" homogeneous="true">
           <button text="OK" id="ok_button" magnet="true" width="60" />
           <button text="Cancel" id="cancel_button" />
-          <button text="Delete" id="delete_button" />
         </box>
       </box>
 
diff --git a/src/app/commands/cmd_keyboard_shortcuts.cpp b/src/app/commands/cmd_keyboard_shortcuts.cpp
index 254cf80..1b365d6 100644
--- a/src/app/commands/cmd_keyboard_shortcuts.cpp
+++ b/src/app/commands/cmd_keyboard_shortcuts.cpp
@@ -60,6 +60,7 @@ public:
     , m_menuitem(menuitem)
     , m_level(level)
     , m_changeButton(NULL)
+    , m_deleteButton(NULL)
     , m_addButton(NULL)
     , m_hotAccel(-1) {
     this->border_width.t = this->border_width.b = 0;
@@ -80,25 +81,33 @@ public:
 
 private:
 
-  void onChangeAccel() {
-    Accelerator origAccel = m_key->accels()[m_hotAccel];
-    SelectAccelerator window(origAccel, true);
+  void onChangeAccel(int index) {
+    Accelerator origAccel = m_key->accels()[index];
+    SelectAccelerator window(origAccel);
     window.openWindowInForeground();
 
     if (window.isModified()) {
       m_key->disableAccel(origAccel);
       m_key->add(window.accel(), KeySource::UserDefined);
     }
-    else if (window.isDeleted()) {
-      m_key->disableAccel(origAccel);
-    }
 
     getRoot()->layout();
   }
 
+  void onDeleteAccel(int index)
+  {
+    if (Alert::show("Warning"
+        "<<Do you really want to delete this keyboard shortcut?"
+        "||&Yes||&No") != 1)
+      return;
+
+    m_key->disableAccel(m_key->accels()[index]);
+    getRoot()->layout();
+  }
+
   void onAddAccel() {
     ui::Accelerator accel;
-    SelectAccelerator window(accel, false);
+    SelectAccelerator window(accel);
     window.openWindowInForeground();
 
     if (window.isModified()) {
@@ -216,19 +225,38 @@ private:
                 6*jguiscale(), 1*jguiscale()));
 
             if (accels && i < (int)accels->size() &&
-                itemBounds.contains(mouseMsg->position())) {
+                mouseMsg->position().y >= itemBounds.y &&
+                mouseMsg->position().y < itemBounds.y+itemBounds.h) {
               hotAccel = i;
 
               if (!m_changeButton) {
                 m_changeButton = new Button("");
-                m_changeButton->Click.connect(Bind<void>(&KeyItem::onChangeAccel, this));
+                m_changeButton->Click.connect(Bind<void>(&KeyItem::onChangeAccel, this, i));
                 setup_mini_look(m_changeButton);
                 addChild(m_changeButton);
               }
 
+              if (!m_deleteButton) {
+                m_deleteButton = new Button("");
+                m_deleteButton->Click.connect(Bind<void>(&KeyItem::onDeleteAccel, this, i));
+                setup_mini_look(m_deleteButton);
+                addChild(m_deleteButton);
+              }
+
               m_changeButton->setBgColor(gfx::ColorNone);
               m_changeButton->setBounds(itemBounds);
               m_changeButton->setText((*accels)[i].toString());
+
+              const char* label = "x";
+              m_deleteButton->setBgColor(gfx::ColorNone);
+              m_deleteButton->setBounds(gfx::Rect(
+                  itemBounds.x + itemBounds.w + 2*jguiscale(),
+                  itemBounds.y,
+                  Graphics::measureUIStringLength(
+                    label, getFont()) + 4*jguiscale(),
+                  itemBounds.h));
+              m_deleteButton->setText(label);
+
               invalidate();
             }
 
@@ -266,8 +294,10 @@ private:
 
   void destroyButtons() {
     delete m_changeButton;
+    delete m_deleteButton;
     delete m_addButton;
     m_changeButton = NULL;
+    m_deleteButton = NULL;
     m_addButton = NULL;
   }
 
@@ -277,6 +307,7 @@ private:
   int m_level;
   ui::Accelerators m_newAccels;
   ui::Button* m_changeButton;
+  ui::Button* m_deleteButton;
   ui::Button* m_addButton;
   int m_hotAccel;
 };
diff --git a/src/app/ui/select_accelerator.cpp b/src/app/ui/select_accelerator.cpp
index b46460a..1ccf33b 100644
--- a/src/app/ui/select_accelerator.cpp
+++ b/src/app/ui/select_accelerator.cpp
@@ -76,10 +76,9 @@ protected:
   Accelerator m_accel;
 };
 
-SelectAccelerator::SelectAccelerator(const ui::Accelerator& accel, bool canDelete)
+SelectAccelerator::SelectAccelerator(const ui::Accelerator& accel)
   : m_keyField(new KeyField(accel))
   , m_accel(accel)
-  , m_deleted(false)
   , m_modified(false)
 {
   updateModifiers();
@@ -97,11 +96,6 @@ SelectAccelerator::SelectAccelerator(const ui::Accelerator& accel, bool canDelet
   clearButton()->Click.connect(Bind<void>(&SelectAccelerator::onClear, this));
   okButton()->Click.connect(Bind<void>(&SelectAccelerator::onOK, this));
   cancelButton()->Click.connect(Bind<void>(&SelectAccelerator::onCancel, this));
-
-  if (canDelete)
-    deleteButton()->Click.connect(Bind<void>(&SelectAccelerator::onDelete, this));
-  else
-    deleteButton()->setVisible(false);
 }
 
 void SelectAccelerator::onModifierChange(KeyModifiers modifier, CheckBox* checkbox)
@@ -146,17 +140,6 @@ void SelectAccelerator::onCancel()
   closeWindow(NULL);
 }
 
-void SelectAccelerator::onDelete()
-{
-  if (Alert::show("Warning"
-      "<<Do you really want to delete this keyboard shortcut?"
-      "||&Yes||&No") != 1)
-    return;
-
-  m_deleted = true;
-  closeWindow(NULL);
-}
-
 void SelectAccelerator::updateModifiers()
 {
   alt()->setSelected(m_accel.modifiers() & kKeyAltModifier ? true: false);
diff --git a/src/app/ui/select_accelerator.h b/src/app/ui/select_accelerator.h
index 55138ba..475d8c2 100644
--- a/src/app/ui/select_accelerator.h
+++ b/src/app/ui/select_accelerator.h
@@ -28,9 +28,8 @@ namespace app {
 
   class SelectAccelerator : public app::gen::SelectAccelerator {
   public:
-    explicit SelectAccelerator(const ui::Accelerator& accelerator, bool canDelete);
+    explicit SelectAccelerator(const ui::Accelerator& accelerator);
 
-    bool isDeleted() const { return m_deleted; }
     bool isModified() const { return m_modified; }
     const ui::Accelerator& accel() const { return m_accel; }
 
@@ -40,7 +39,6 @@ namespace app {
     void onClear();
     void onOK();
     void onCancel();
-    void onDelete();
     void updateModifiers();
     void updateAssignedTo();
 
@@ -49,7 +47,6 @@ namespace app {
     KeyField* m_keyField;
     ui::Accelerator m_origAccel;
     ui::Accelerator m_accel;
-    bool m_deleted;
     bool m_modified;
   };
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git



More information about the Pkg-games-commits mailing list