{"action":"created","issue":{"url":"https://api.github.com/repos/spyder-ide/spyder/issues/2367","labels_url":"https://api.github.com/repos/spyder-ide/spyder/issues/2367/labels{/name}","comments_url":"https://api.github.com/repos/spyder-ide/spyder/issues/2367/comments","events_url":"https://api.github.com/repos/spyder-ide/spyder/issues/2367/events","html_url":"https://github.com/spyder-ide/spyder/pull/2367","id":71078732,"number":2367,"title":"KeySequence Editor for Keyboard Shortcut Preferences","user":{"login":"blink1073","id":2096628,"avatar_url":"https://avatars.githubusercontent.com/u/2096628?v=3","gravatar_id":"","url":"https://api.github.com/users/blink1073","html_url":"https://github.com/blink1073","followers_url":"https://api.github.com/users/blink1073/followers","following_url":"https://api.github.com/users/blink1073/following{/other_user}","gists_url":"https://api.github.com/users/blink1073/gists{/gist_id}","starred_url":"https://api.github.com/users/blink1073/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blink1073/subscriptions","organizations_url":"https://api.github.com/users/blink1073/orgs","repos_url":"https://api.github.com/users/blink1073/repos","events_url":"https://api.github.com/users/blink1073/events{/privacy}","received_events_url":"https://api.github.com/users/blink1073/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/spyder-ide/spyder/labels/Settings","name":"Settings","color":"d4c5f9"}],"state":"open","locked":false,"assignee":{"login":"blink1073","id":2096628,"avatar_url":"https://avatars.githubusercontent.com/u/2096628?v=3","gravatar_id":"","url":"https://api.github.com/users/blink1073","html_url":"https://github.com/blink1073","followers_url":"https://api.github.com/users/blink1073/followers","following_url":"https://api.github.com/users/blink1073/following{/other_user}","gists_url":"https://api.github.com/users/blink1073/gists{/gist_id}","starred_url":"https://api.github.com/users/blink1073/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blink1073/subscriptions","organizations_url":"https://api.github.com/users/blink1073/orgs","repos_url":"https://api.github.com/users/blink1073/repos","events_url":"https://api.github.com/users/blink1073/events{/privacy}","received_events_url":"https://api.github.com/users/blink1073/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/spyder-ide/spyder/milestones/5","html_url":"https://github.com/spyder-ide/spyder/milestones/v3.0","labels_url":"https://api.github.com/repos/spyder-ide/spyder/milestones/5/labels","id":982077,"number":5,"title":"v3.0","description":"","creator":{"login":"spyder-issues-migrator","id":11021581,"avatar_url":"https://avatars.githubusercontent.com/u/11021581?v=3","gravatar_id":"","url":"https://api.github.com/users/spyder-issues-migrator","html_url":"https://github.com/spyder-issues-migrator","followers_url":"https://api.github.com/users/spyder-issues-migrator/followers","following_url":"https://api.github.com/users/spyder-issues-migrator/following{/other_user}","gists_url":"https://api.github.com/users/spyder-issues-migrator/gists{/gist_id}","starred_url":"https://api.github.com/users/spyder-issues-migrator/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spyder-issues-migrator/subscriptions","organizations_url":"https://api.github.com/users/spyder-issues-migrator/orgs","repos_url":"https://api.github.com/users/spyder-issues-migrator/repos","events_url":"https://api.github.com/users/spyder-issues-migrator/events{/privacy}","received_events_url":"https://api.github.com/users/spyder-issues-migrator/received_events","type":"User","site_admin":false},"open_issues":269,"closed_issues":73,"state":"open","created_at":"2015-02-16T23:17:23Z","updated_at":"2015-05-04T23:23:01Z","due_on":null,"closed_at":null},"comments":22,"created_at":"2015-04-26T14:52:44Z","updated_at":"2015-05-05T13:57:15Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/spyder-ide/spyder/pulls/2367","html_url":"https://github.com/spyder-ide/spyder/pull/2367","diff_url":"https://github.com/spyder-ide/spyder/pull/2367.diff","patch_url":"https://github.com/spyder-ide/spyder/pull/2367.patch"},"body":"Allows the user to enter keyboard shortcut preferences by typing them in.\r\n\r\nFixes #2125.  Fixes #494.  Fixes #478."},"comment":{"url":"https://api.github.com/repos/spyder-ide/spyder/issues/comments/99085071","html_url":"https://github.com/spyder-ide/spyder/pull/2367#issuecomment-99085071","issue_url":"https://api.github.com/repos/spyder-ide/spyder/issues/2367","id":99085071,"user":{"login":"goanpeca","id":3627835,"avatar_url":"https://avatars.githubusercontent.com/u/3627835?v=3","gravatar_id":"","url":"https://api.github.com/users/goanpeca","html_url":"https://github.com/goanpeca","followers_url":"https://api.github.com/users/goanpeca/followers","following_url":"https://api.github.com/users/goanpeca/following{/other_user}","gists_url":"https://api.github.com/users/goanpeca/gists{/gist_id}","starred_url":"https://api.github.com/users/goanpeca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/goanpeca/subscriptions","organizations_url":"https://api.github.com/users/goanpeca/orgs","repos_url":"https://api.github.com/users/goanpeca/repos","events_url":"https://api.github.com/users/goanpeca/events{/privacy}","received_events_url":"https://api.github.com/users/goanpeca/received_events","type":"User","site_admin":false},"created_at":"2015-05-05T13:57:15Z","updated_at":"2015-05-05T13:57:15Z","body":"@blink1073 this is the \"fix\" I found for the moment, but I am not sure if it results in the desired behavior... \r\n```python\r\n    def keyReleaseEvent(self, e):\r\n        if self.currentIndex().column() != SEQUENCE:\r\n            debug_print('keyReleaseEvent before clear first if: keys: %s' % self.keys)\r\n            self.keys = set()\r\n            self.npressed = 0\r\n            return\r\n\r\n        self.npressed -= 1\r\n        debug_print(self.npressed)\r\n\r\n        if self.npressed <= 0:\r\n            if self.keys:\r\n                keySequence = QKeySequence(*self.keys)\r\n                self.model.setData(self.currentIndex(),\r\n                                   keySequence.toString())\r\n            debug_print('keyReleaseEvent before clear second if: %s' % self.keys)\r\n            self.keys = set()\r\n            self.npressed = 0\r\n```\r\n\r\n"}}