-
Notifications
You must be signed in to change notification settings - Fork 256
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactorization and ui remake #89
Conversation
azubieta
commented
Sep 24, 2018
- Move functionalities from shared.c and shared.h into more precisely named modules.
- Move targets into separated directories inside "src/"
- Remake Launcher UI interface.
- Include additional information using libappimageinfo as source.
Also doing some code reformat.
… using a fixed one.
…ng a QApplication
… moving the required functionalities into it.
Still waiting for the integration directory to be displayed in the "Details" section of the main integration window. |
The new version removed support for content-aware filenames. It doesn't recognize overwriting of existing AppImages any more. Also, there is no need for a confirmation window when the integration worked. Just run the app. One less click. On errors, a message can be shown of course. |
Added the SHA 512 Checksum preview that you wanted and the label showing the Applications Directory path. About the support for "support for content-aware filenames" I didn't do it intentionally, I was reviewing the code and all seems in place. If you recall where is it implemented in the old version please share the link. I'll look for it anyway. About the confirmation message, it's good to let the user know that everything was ok, also it's used to provide additional information about how he/she can remove the AppImage later. |
Fixed: "support for content-aware filenames" please test. |
…orkflow. The main argument behind this is to: Don't get into the users way.
0f8526d
to
895e141
Compare
Makes it look a bit more consistent.
There's more workflow issues in the new codebase. That's the issue with huge refactorings... you can't really compare code. If files already exist in the target directory, AppImageLauncher should ask whether to overwrite them. In that case, the old file could be |
Just for the record. This also fixes #13 |
* Groups together the all the desktop integration functions. | ||
*/ | ||
class AppImageDesktopIntegrationManager { | ||
static QDir integratedAppImagesDir; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this have to be static?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's used in static methods, so yes it has to.
If you wonder if this class could be improved? The answer is yes, but I already added too many changes to this pr. So I would let it for the next iteration.
The new "content-aware filename" calculation is not complying with the old one. Please don't change such functions. You must revert to using the old one ASAP. https://github.com/TheAssassin/AppImageLauncher/blob/b04daee450bd79db47c60d7364a9a109d589222f/src/shared.cpp#L519-559 |
Rolled back to the previous |
AppImageLauncher creates duplicate desktop files for the same AppImage. Also, the collision detection (i.e., the code that adds There's more and more problems, the code is not understandable any more (due to lack of comments, too many small functions that are just called once, etc.). I am tempted to reject this PR, merge the new UI(s) by hand and perform the refactoring afterwards. This is just not in a condition I could accept. The code was maintained externally too long, and it's not like there has just been a refactoring but also a lot of code has been replaced by incompatible "rewrites". Don't get me wrong: I really like the new UI, the fact that libappimageinfo provides more information, etc. This really adds value to the software. But incompatibilities and lower reliability are not acceptable. And I don't get to a point where I'd feel familiar with the new codebase, there's no "obvious" structure any more, a lot of static code, there's no more comments that document the code (no, it is not "self-documenting", not at all). I don't believe these problems could be sorted out if we invest even more time into this PR. |
I'll take a look at the issues you mention. Also, I would like to add that the previous state of the code not fully documented and much fuzzier. Therefore the workflow cannot be guessed properly. Also, there are no unit tests to validate this workflow. You just feel more comfortable on it because it was written by you. The term obvious depends on what are you used to. The static code is harmless and there was more before (like the whole Let's make an architectural review to give you a better piture of the resulting project structure:
Both tools use the same desktop 'integration' and 'desintegration' code, therefore, it was placed in a class named As each tool provides a different UX the code related to it is split. In The To fulfill
In resume: In general, don't panic. If more problems show up, as they will. I'll be here to deal with them. |
Closing PR as unmergeable. Merging portion wise by cherry-picking similar commits into reasonable "bundles" in branches, and sending multiple PRs. Fixing left-over issues in the progress. Note for self: do not delete this branch yet |