{"push_id":758676608,"size":7,"distinct_size":6,"ref":"refs/heads/topic/refactor_main_window","head":"243d0fb3060de8a8a96e95d5d7dc93ad17dd90e9","before":"4634686881a55c2a1961a705a8814a428545d7af","commits":[{"sha":"ec7fb1ed3773376464d27dfad26e7734d3b322d0","author":{"email":"9e6144674e4392c6fb802fc247f264df2ae26643@gmail.com","name":"Matan Nassau"},"message":"subproject app depends on subproject lib/GLEW","distinct":false,"url":"https://api.github.com/repos/wilhelmtell/vpaint/commits/ec7fb1ed3773376464d27dfad26e7734d3b322d0"},{"sha":"8bf29c24d9beba29771b4835ef44aa59ef4d0cc6","author":{"email":"9e6144674e4392c6fb802fc247f264df2ae26643@gmail.com","name":"Matan Nassau"},"message":"extract UndoStack from MainWindow\n\nclass MainWindow is very big, and handles more responsibilities than it\nmust. it's hard to reason about it.\n\nhere, take the undo responsibility out of MainWindow, and assign it a\nclass of its own. maybe there is room for further refactoring of the\nundo mechanism, but here i was only concerned with extracting the work\nout of MainWindow, so i tried to keep the code as identical as i could\nto how it was, apart from being outside MainWindow.\n\none obstacle was that the undo mechanism is tied with the scene_ datum\nof MainWindow. so i added function parameters that take a Scene\nargument.\n\nanother obstacle was that the undo mechanism was tied to the status bar.\nso i replaced that coupling with a signal: when there is nothing to undo\nor redo, the undo or redo emit a signal. MainWindow then handles the\nsignal by writing to its status bar.","distinct":true,"url":"https://api.github.com/repos/wilhelmtell/vpaint/commits/8bf29c24d9beba29771b4835ef44aa59ef4d0cc6"},{"sha":"267490c5864775773576bc577509d16941d29749","author":{"email":"9e6144674e4392c6fb802fc247f264df2ae26643@gmail.com","name":"Matan Nassau"},"message":"MainWindow owns its scene\n\nso, use a std::unique_ptr to hold the scene. this communicates the\nownership. in contrast, a raw pointer communicates non-ownership.\n\nwith scene a std::unique_ptr, this is one more step towards eliminating\nMainWindow's destructor. i think MainWindow doesn't have to be a\nresource management class, and so it can and should be with no explicit\ndestructor, explicit copy functions, or explicit move functions.","distinct":true,"url":"https://api.github.com/repos/wilhelmtell/vpaint/commits/267490c5864775773576bc577509d16941d29749"},{"sha":"08d20e1fe7ea2e80da3008f69d6cad687970c4f5","author":{"email":"9e6144674e4392c6fb802fc247f264df2ae26643@gmail.com","name":"Matan Nassau"},"message":"respect QMainWindow's default ctor signature","distinct":true,"url":"https://api.github.com/repos/wilhelmtell/vpaint/commits/08d20e1fe7ea2e80da3008f69d6cad687970c4f5"},{"sha":"03f07826d9aa81402e459ace0ed0f1970d310172","author":{"email":"9e6144674e4392c6fb802fc247f264df2ae26643@gmail.com","name":"Matan Nassau"},"message":"extract OnlineDocumentationAction from Mainwindow","distinct":true,"url":"https://api.github.com/repos/wilhelmtell/vpaint/commits/03f07826d9aa81402e459ace0ed0f1970d310172"},{"sha":"2f16279657768974b6f3aae8c14299b8272c3cd8","author":{"email":"9e6144674e4392c6fb802fc247f264df2ae26643@gmail.com","name":"Matan Nassau"},"message":"extract GettingStartedAction from MainWindow","distinct":true,"url":"https://api.github.com/repos/wilhelmtell/vpaint/commits/2f16279657768974b6f3aae8c14299b8272c3cd8"},{"sha":"243d0fb3060de8a8a96e95d5d7dc93ad17dd90e9","author":{"email":"9e6144674e4392c6fb802fc247f264df2ae26643@gmail.com","name":"Matan Nassau"},"message":"extract ManualAction from MainWindow\n\nwhile at it, fix showing the user manual: there was a typo in the\nMainWindow::manual() slot, which handles the user manual action to show\nit in a browser. it referred to the getting started browser, instead of\nthe user manual browser. that's why i only eliminated the getting\nstarted browser in this commit, and not in the commit for extracing the\ngetting started action.","distinct":true,"url":"https://api.github.com/repos/wilhelmtell/vpaint/commits/243d0fb3060de8a8a96e95d5d7dc93ad17dd90e9"}]}