Keep registration order as order for context menu#163
Open
Quincunx271 wants to merge 8 commits intopaceholder:masterfrom
Open
Keep registration order as order for context menu#163Quincunx271 wants to merge 8 commits intopaceholder:masterfrom
Quincunx271 wants to merge 8 commits intopaceholder:masterfrom
Conversation
Quincunx271
commented
Apr 30, 2018
| QString const name = uniqueModel->name(); | ||
|
|
||
| if (_registeredModels.count(name) == 0) | ||
| if (!_registeredModels.count(name)) |
Contributor
Author
There was a problem hiding this comment.
You might find this less readable, but I've seen people treating the count method on std::map or std::set as "contains", which is why I wrote is as !_registeredModels.count(name) here. It might not be desirable, if so, it's easy enough to change this back
Contributor
Author
|
examples/calculator This is the registration code (edited to make this comment smaller): auto ret = std::make_shared<DataModelRegistry>();
ret->registerModel<NumberSourceDataModel>("Sources");
ret->registerModel<NumberDisplayDataModel>("Displays");
ret->registerModel<AdditionModel>("Operators");
ret->registerModel<SubtractionModel>("Operators");
ret->registerModel<MultiplicationModel>("Operators");
ret->registerModel<DivisionModel>("Operators");
ret->registerModel<ModuloModel>("Operators");Before this PR: After this PR: The categories can still be sorted after this PR by calling |
3edf358 to
15a270d
Compare
15a270d to
a6e4ba4
Compare
added 6 commits
May 30, 2018 13:43
…y useless in this case
|
Just found that version 2.1.3 still not support manually context menu settings. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Implements #147
I kept
_categoriesand_registeredModelsCategoryas-is. Someone could've called those functions and stored the variables, and removing them, but especially replacing it with a new data-type, would break their code (replacing could silently break in some cases). My ideal would've been to just change thecategories()function to return thestd::vectorand to change theregisteredModelsCategoryAssociationto return a separate map type that preserves insertion order (similar to LinkedHashMap in Java; I would've just combinedstd::vectorandstd::unordered_map).If removing / changing
_categoriesor_registeredModelsCategoryis desired, I'll make the change and update this PR.Note: if we do remove
categories(), such that_categoriesbecomes inaccessible through any external functions, it'd be best to change its type fromstd::settostd::unordered_set