Closed bradphelan closed 3 years ago
Thanks for your feedback.
Looking on screenshot is unclear what is wrong. Could you make photo of your monitor with MetaProject tool? In this case I will see the problem by your eyes.
Not sure what you mean. That is a screen shot of the metaproject tool. The area that is hard to read is
You have dark grey font on dark dark grey background. There is very little contrast. To be ultra specific
and
They look disabled but are not.
I see what you asking about.
Colored buttons looks worse than "disabled".
What's wrong with white buttons. You don't really need the buttons coloured. It's not like syntax highlighting a text file where the color gives some semantic meaning. The buttons are all in a column and their shape clearly defines their purpose. What advantage does a colour add?
For differentiating between importance levels I can see the colour assists but between icons on the same line I don't see the advantage. You just give your self a design headache trying to support everybody's different colour theme. I'd choose one colour for dark and another for light backgrounds.
You have 5 icons on one of my lines
They are all active and all useful. Making them different colours I think is just confusing.
It's a bit the same here.
There is a rainbow of different colours and shades. Why does the timestamp have a different colour to the message?
They could be exactly the same font and colour and it would be ok.
MetaProject support 3 mode for visualization of background colors for each message:
This is how to change it:
Moreover this colors are important because it demonstrate similar messages. For example next messages are similar and will be showed using one color:
There I don't see any problem and any possibility to improve it.
About button colors. Current implementation have advantages and disadvantages (some buttons looks as disabled). Any ideas how to improve it I don't have. Other ideas have own disadvantages which are bigger than current.
I'm sorry I don't see any logic in the coloring in my C++ project
This set of lines is from a single failure which is the red line and the stack trace of messages supporting the error. There are various different colours and backgrounds and intensities for a linear list of message and it not clear why.
The original stack trace being.
9>D:\sandboxes\VS2015-Code-upgrade\dev\libraries\ToolpathStrategies\Rotary\include\mw/rotary/IntervalTree.hpp(167,1): error C2280: 'std::tuple<std::unique_ptr<mw::Rotary::IntervalTree::Node<Data>,std::default_delete<mw::Rotary::IntervalTree::Node<Data>>>,int,char>::tuple(const std::tuple<std::unique_ptr<mw::Rotary::IntervalTree::Node<Data>,std::default_delete<mw::Rotary::IntervalTree::Node<Data>>>,int,char> &)': attempting to reference a deleted function
9> with
9> [
9> Data=std::string
9> ] (compiling source file D:\sandboxes\VS2015-Code-upgrade\dev\libraries\ToolpathStrategies\Rotary\Test\gtest_interval_tree.cpp)
9>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.28.29333\include\tuple(345): message : see declaration of 'std::tuple<std::unique_ptr<mw::Rotary::IntervalTree::Node<Data>,std::default_delete<mw::Rotary::IntervalTree::Node<Data>>>,int,char>::tuple'
9> with
9> [
9> Data=std::string
9> ] (compiling source file D:\sandboxes\VS2015-Code-upgrade\dev\libraries\ToolpathStrategies\Rotary\Test\gtest_interval_tree.cpp)
9>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.28.29333\include\tuple(345,5): message : 'std::tuple<std::unique_ptr<mw::Rotary::IntervalTree::Node<Data>,std::default_delete<mw::Rotary::IntervalTree::Node<Data>>>,int,char>::tuple(const std::tuple<std::unique_ptr<mw::Rotary::IntervalTree::Node<Data>,std::default_delete<mw::Rotary::IntervalTree::Node<Data>>>,int,char> &)': function was implicitly deleted because a data member invokes a deleted or inaccessible function 'std::_Tuple_val<_This>::_Tuple_val(const std::_Tuple_val<_This> &)'
9> with
9> [
9> Data=std::string
9> ]
9> and
9> [
9> _This=std::unique_ptr<mw::Rotary::IntervalTree::Node<std::string>,std::default_delete<mw::Rotary::IntervalTree::Node<std::string>>>
9> ] (compiling source file D:\sandboxes\VS2015-Code-upgrade\dev\libraries\ToolpathStrategies\Rotary\Test\gtest_interval_tree.cpp)
9>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.28.29333\include\tuple(183,1): message : 'std::_Tuple_val<_This>::_Tuple_val(const std::_Tuple_val<_This> &)': function was implicitly deleted because a data member invokes a deleted or inaccessible function 'std::unique_ptr<mw::Rotary::IntervalTree::Node<Data>,std::default_delete<mw::Rotary::IntervalTree::Node<Data>>>::unique_ptr(const std::unique_ptr<mw::Rotary::IntervalTree::Node<Data>,std::default_delete<mw::Rotary::IntervalTree::Node<Data>>> &)'
9> with
9> [
9> _This=std::unique_ptr<mw::Rotary::IntervalTree::Node<std::string>,std::default_delete<mw::Rotary::IntervalTree::Node<std::string>>>
9> ]
9> and
9> [
9> Data=std::string
9> ] (compiling source file D:\sandboxes\VS2015-Code-upgrade\dev\libraries\ToolpathStrategies\Rotary\Test\gtest_interval_tree.cpp)
9>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.28.29333\include\memory(2686,5): message : 'std::unique_ptr<mw::Rotary::IntervalTree::Node<Data>,std::default_delete<mw::Rotary::IntervalTree::Node<Data>>>::unique_ptr(const std::unique_ptr<mw::Rotary::IntervalTree::Node<Data>,std::default_delete<mw::Rotary::IntervalTree::Node<Data>>> &)': function was explicitly deleted
9> with
9> [
9> Data=std::string
9> ] (compiling source file D:\sandboxes\VS2015-Code-upgrade\dev\libraries\ToolpathStrategies\Rotary\Test\gtest_interval_tree.cpp)
9>D:\sandboxes\VS2015-Code-upgrade\dev\libraries\ToolpathStrategies\Rotary\include\mw/rotary/IntervalTree.hpp(278): message : see reference to function template instantiation 'void mw::Rotary::IntervalTree::Print<Data>(const std::unique_ptr<mw::Rotary::IntervalTree::Node<Data>,std::default_delete<mw::Rotary::IntervalTree::Node<Data>>> &,int)' being compiled
9> with
9> [
9> Data=std::string
9> ] (compiling source file D:\sandboxes\VS2015-Code-upgrade\dev\libraries\ToolpathStrategies\Rotary\Test\gtest_interval_tree.cpp)
9>D:\sandboxes\VS2015-Code-upgrade\dev\libraries\ToolpathStrategies\Rotary\include\mw/rotary/IntervalTree.hpp(277): message : while compiling class template member function 'void mw::Rotary::IntervalTree::Tree<std::string>::Print(void)' (compiling source file D:\sandboxes\VS2015-Code-upgrade\dev\libraries\ToolpathStrategies\Rotary\Test\gtest_interval_tree.cpp)
9>D:\sandboxes\VS2015-Code-upgrade\dev\libraries\ToolpathStrategies\Rotary\Test\gtest_interval_tree.cpp(61): message : see reference to function template instantiation 'void mw::Rotary::IntervalTree::Tree<std::string>::Print(void)' being compiled
9>D:\sandboxes\VS2015-Code-upgrade\dev\libraries\ToolpathStrategies\Rotary\Test\gtest_interval_tree.cpp(26): message : see reference to class template instantiation 'mw::Rotary::IntervalTree::Tree<std::string>' being compiled
9>Done building project "RotaryTests.vcxproj" -- FAILED.
10>------ Skipped Build: Project: INSTALL, Configuration: Debug x64 ------
10>Project not selected to build for this solution configuration
Even in your example
You have three messages that are identical types yet you have different shades of green for them. Why?
Everyone has their own preferences about visualization, and therefore it is possible to change by MetaProject settings.
About the last question.
Each line has own signature which is calculated on fly. It is message signature. This signature is used for coloring, hiding similar messages and for speaking. It is very important and very complicated algorithm.
For example signature of messages from received by you picture are next:
There three different signatures. It is a reason why they have different colors.
However, for next messages signature will be the same:
In all those cases you get next signature: COMMAND_BUILD_PROJECT_DONE
For speaking will be used next text "Command build project done". This text is directly calculated from message signature.
It is very important and very complicated algorithm.
Ok. I'm not sure but ....
You can still fix the contrasting problem. There is some math you can apply.
((Red value X 299) + (Green value X 587) + (Blue value X 114)) / 1000
So you can choose any foreground colour and get the best most contrasting background colour for it.
I think I used such an equation in an app a while ago and it worked out quite well.
Thank you for the information.
I will look how to adopt this algorithm to MetaProject. However in my case everything is much more complicated, because MetaProject use three color schemes. For info, warnings and errors.
For example any color close to red for info messages will confuse users. Colors like blue or green for errors will have the same problem. Additional complexity is that MetaProject must support dark and light color schemas of Visual Studio.
In fact this task is not simple.
I don't think it will be a problem if you look into the colour theory. Another good resource I've found is.
I will look it. Thanks.
This problem is solved in the last release (2.0.1). Could you check it?
For example
Also the font is too small on my 4k monitor but I think there is an issue for this already.
Thanks for a great tool :)