{"action":"created","issue":{"url":"https://api.github.com/repos/elieserdejesus/JamTaba/issues/345","repository_url":"https://api.github.com/repos/elieserdejesus/JamTaba","labels_url":"https://api.github.com/repos/elieserdejesus/JamTaba/issues/345/labels{/name}","comments_url":"https://api.github.com/repos/elieserdejesus/JamTaba/issues/345/comments","events_url":"https://api.github.com/repos/elieserdejesus/JamTaba/issues/345/events","html_url":"https://github.com/elieserdejesus/JamTaba/issues/345","id":150689979,"number":345,"title":"Test the 2.0.14 pre-release","user":{"login":"elieserdejesus","id":1012741,"avatar_url":"https://avatars.githubusercontent.com/u/1012741?v=3","gravatar_id":"","url":"https://api.github.com/users/elieserdejesus","html_url":"https://github.com/elieserdejesus","followers_url":"https://api.github.com/users/elieserdejesus/followers","following_url":"https://api.github.com/users/elieserdejesus/following{/other_user}","gists_url":"https://api.github.com/users/elieserdejesus/gists{/gist_id}","starred_url":"https://api.github.com/users/elieserdejesus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elieserdejesus/subscriptions","organizations_url":"https://api.github.com/users/elieserdejesus/orgs","repos_url":"https://api.github.com/users/elieserdejesus/repos","events_url":"https://api.github.com/users/elieserdejesus/events{/privacy}","received_events_url":"https://api.github.com/users/elieserdejesus/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/elieserdejesus/JamTaba/milestones/13","html_url":"https://github.com/elieserdejesus/JamTaba/milestones/2.0.14","labels_url":"https://api.github.com/repos/elieserdejesus/JamTaba/milestones/13/labels","id":1580498,"number":13,"title":"2.0.14","description":"","creator":{"login":"elieserdejesus","id":1012741,"avatar_url":"https://avatars.githubusercontent.com/u/1012741?v=3","gravatar_id":"","url":"https://api.github.com/users/elieserdejesus","html_url":"https://github.com/elieserdejesus","followers_url":"https://api.github.com/users/elieserdejesus/followers","following_url":"https://api.github.com/users/elieserdejesus/following{/other_user}","gists_url":"https://api.github.com/users/elieserdejesus/gists{/gist_id}","starred_url":"https://api.github.com/users/elieserdejesus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elieserdejesus/subscriptions","organizations_url":"https://api.github.com/users/elieserdejesus/orgs","repos_url":"https://api.github.com/users/elieserdejesus/repos","events_url":"https://api.github.com/users/elieserdejesus/events{/privacy}","received_events_url":"https://api.github.com/users/elieserdejesus/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":46,"state":"open","created_at":"2016-02-12T20:47:20Z","updated_at":"2016-04-25T21:25:00Z","due_on":null,"closed_at":null},"comments":12,"created_at":"2016-04-24T18:46:35Z","updated_at":"2016-04-27T12:48:58Z","closed_at":null,"body":"@jonjamcam and @teamikl , please check the releases, I uploaded the 32 and 64 bits pre-releases.\r\n\r\nLet's test these releases before launch the new version officialy!\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/elieserdejesus/JamTaba/issues/comments/215071303","html_url":"https://github.com/elieserdejesus/JamTaba/issues/345#issuecomment-215071303","issue_url":"https://api.github.com/repos/elieserdejesus/JamTaba/issues/345","id":215071303,"user":{"login":"elieserdejesus","id":1012741,"avatar_url":"https://avatars.githubusercontent.com/u/1012741?v=3","gravatar_id":"","url":"https://api.github.com/users/elieserdejesus","html_url":"https://github.com/elieserdejesus","followers_url":"https://api.github.com/users/elieserdejesus/followers","following_url":"https://api.github.com/users/elieserdejesus/following{/other_user}","gists_url":"https://api.github.com/users/elieserdejesus/gists{/gist_id}","starred_url":"https://api.github.com/users/elieserdejesus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elieserdejesus/subscriptions","organizations_url":"https://api.github.com/users/elieserdejesus/orgs","repos_url":"https://api.github.com/users/elieserdejesus/repos","events_url":"https://api.github.com/users/elieserdejesus/events{/privacy}","received_events_url":"https://api.github.com/users/elieserdejesus/received_events","type":"User","site_admin":false},"created_at":"2016-04-27T12:48:58Z","updated_at":"2016-04-27T12:48:58Z","body":"@teamikl \r\n> my point is\r\n1. channel name can be empty \r\n2. user name can't (except the first time running)\r\n\r\nExactly!\r\n\r\n***\r\n> when focus was out restore name automatically is not a common user experience.\r\n\r\nI agree, it's not intuitive. I think this is another bad idea I had :) The simple solution is just change the class **UserNameLineEdit** to allow empty names. Allowing empty names the placeholder text will appear. If user keep the name empty and try to connect in a server the input dialog will appear asking the name.\r\n\r\n***\r\n\r\n> I was going to say that on \"show info message on status bar (or somewhere user notable info field)\"\r\n\r\nI'm not a huge fan of status bar, I think (almost 100% shure) people don't read these stuff. And in my opinion people are right. We need design \"text explanation free\" UIs. It's not easy, but is possible. \r\n\r\n***\r\n\r\n> I'm using the simple approach: modal dialog blocking the events (if I remember correctly).\r\nside effect of block main event loop ... it's safe? it's up to how program designed\r\ne.g. timer event may be blocked etc.\r\n\r\nTea, the side effect is small. Two things in my mind here. Let's consider the user name is empty and the input modal dialog will appear in these scenarios:\r\n\r\n**1 - User is listening a public server and try to connect.** \r\n      \r\n1.  The waveform animation will stop, it's ok, expected behavior.\r\n2.   the public servers list will not be updated anymore because the event loop is blocked, no more requests to jamtaba server asking a new public rooms list. It's ok too. Buttttttt, if user wait a very long time to type the user name the jamtaba server will not receive the periodic \"I'm alive\" message, and will disconnect the user. Jamtaba client will not close, but the public rooms list will not be updated from this point.\r\n\r\n**2 - User is playing in a server and try connect/jump in another server.**\r\n     *Side effects*: If user is playing in a server so the user name is not empty, and the input modal dialog will not appear. No side effects in this scenario. \r\n\r\n***\r\n\r\n> another point in implementation, I worried two place to inputs make maintenance cost twice. this sometime make the situation like, it's ok in name field directly, but not from input dialog.\r\n\r\nTea, all user name validations and rules are coded in the class **UserNameLineEdit**, inheriting from **QLineEdit**. The same class is used in user name input (main window) **AND** in user name dialog. The code is not duplicated, we are using 2 instances of **UserNameLineEdit**.\r\n\r\n\r\n***\r\n\r\n> about the name input dialog, it was confuse for me\r\n... if name was empty then got name input ... but how to make name field empty.\r\n\r\nI agree, it's important allow empty user name. I propose the solution described in my first response in this message. Just change the class **UserNameLineEdit** to allow empty user name, it's a 5 min solution."}}