{"action":"created","issue":{"url":"https://api.github.com/repos/qbittorrent/qBittorrent/issues/2433","labels_url":"https://api.github.com/repos/qbittorrent/qBittorrent/issues/2433/labels{/name}","comments_url":"https://api.github.com/repos/qbittorrent/qBittorrent/issues/2433/comments","events_url":"https://api.github.com/repos/qbittorrent/qBittorrent/issues/2433/events","html_url":"https://github.com/qbittorrent/qBittorrent/issues/2433","id":54671258,"number":2433,"title":"Improving application architecture (Redesign).","user":{"login":"glassez","id":5063477,"avatar_url":"https://avatars.githubusercontent.com/u/5063477?v=3","gravatar_id":"","url":"https://api.github.com/users/glassez","html_url":"https://github.com/glassez","followers_url":"https://api.github.com/users/glassez/followers","following_url":"https://api.github.com/users/glassez/following{/other_user}","gists_url":"https://api.github.com/users/glassez/gists{/gist_id}","starred_url":"https://api.github.com/users/glassez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/glassez/subscriptions","organizations_url":"https://api.github.com/users/glassez/orgs","repos_url":"https://api.github.com/users/glassez/repos","events_url":"https://api.github.com/users/glassez/events{/privacy}","received_events_url":"https://api.github.com/users/glassez/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":37,"created_at":"2015-01-17T18:57:41Z","updated_at":"2015-02-17T09:10:49Z","closed_at":null,"body":"Lately I've been increasingly involved in the development of qBittorrent. In this regard, I dive into the source code more and more. And the more I do it, the more I cultivate the desire to restore order there.\r\nqBittorrent needs overhaul - that is my conclusion.\r\nI will not give here the details, so as not to waste my time. Let me just say that there are a lot of problems here, starting with excessively long functions, various inconsistencies and cross-dependencies of different classes and subsystems, and to the lack of a clear architecture.\r\nOne of the important problems is the widespread dependence of our code from *libtorrent* code.\r\n(Those who now consider me a fool and say \"qBittorrent is based on libtorrent\", I will answer immediately - no comments about this, if you do not understand what I mean - you can continue to regard me as a fool.)\r\nTo @sledgehammer999 mostly:\r\nThe circumstances are so that I can over the next few months to do this job.\r\nI would like to discuss issues of cooperation.\r\nThis work is long and extensive code changes will be made. It is clear that I'm going to target it at a later release (after 3.2). As soon the lack of support for Qt4, I would prefer not to support Qt4. And still it is necessary to strictly set the minimum supported version of Qt5.\r\nFor the same reasons (major changes) some time after the beginning of my work (a very short time, I think) I will not be able more to rebase my code. And this is a problem because there will be concurrent commits.\r\nAny ideas or comments?\r\n\r\nSmaller issues.\r\nI also have the idea to use our modification of QtSingleApplication in all qBittorrent builds. I want to take as a basis QtSingleApplication from QtCreator, which is more powerful than the one that is now represented in QtSolutions (and which we use).\r\nUsing libtorrent 0.16.x also questionable, but in any case, I initially will support both branches in order to better design the abstraction layer.\r\n\r\nNext, I'll publish materials related to this (plans, ideas, models, and so on)."},"comment":{"url":"https://api.github.com/repos/qbittorrent/qBittorrent/issues/comments/74637230","html_url":"https://github.com/qbittorrent/qBittorrent/issues/2433#issuecomment-74637230","issue_url":"https://api.github.com/repos/qbittorrent/qBittorrent/issues/2433","id":74637230,"user":{"login":"glassez","id":5063477,"avatar_url":"https://avatars.githubusercontent.com/u/5063477?v=3","gravatar_id":"","url":"https://api.github.com/users/glassez","html_url":"https://github.com/glassez","followers_url":"https://api.github.com/users/glassez/followers","following_url":"https://api.github.com/users/glassez/following{/other_user}","gists_url":"https://api.github.com/users/glassez/gists{/gist_id}","starred_url":"https://api.github.com/users/glassez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/glassez/subscriptions","organizations_url":"https://api.github.com/users/glassez/orgs","repos_url":"https://api.github.com/users/glassez/repos","events_url":"https://api.github.com/users/glassez/events{/privacy}","received_events_url":"https://api.github.com/users/glassez/received_events","type":"User","site_admin":false},"created_at":"2015-02-17T09:10:49Z","updated_at":"2015-02-17T09:10:49Z","body":"I haven't come to RSS... as for the search, its basic components must belong to the Core that you can use them not only from the GUI. Already have a request to access them from WebUI."}}