gpospelov / qt-mvvm Goto Github PK
View Code? Open in Web Editor NEWModel View ViewModel framework for large Qt C++ applications
License: GNU General Public License v3.0
Model View ViewModel framework for large Qt C++ applications
License: GNU General Public License v3.0
quickrefl
example. It is handy to have something in hands to try loader. You can generate them with BornAgain (up to @AlexanderSchober).BornAgain has ThirdParty, NSXTool and Steca have 3rdparty, here we have thirdparty - can we agree on one of them?
With the following message:
C:\Users\DmitryYurov\Documents\Software\qt-mvvm\Source\tests\viewmodel\TestAxisPlotControllers.cpp : fatal error C1001: An internal error has occurred in the compiler.
(compiler file 'd:\agent_work\3\s\src\vctools\Compiler\Utc\src\p2\main.c', line 160)
To work around this problem, try simplifying or changing the program near the locations listed above.
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
Internal Compiler Error in C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\bin\HostX86\x64\CL.exe. You will be prompted to send an error report to Microsoft later.
INTERNAL COMPILER ERROR in 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\bin\HostX86\x64\CL.exe'
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
There seems to be no support for the command ctest
so far.
My compilation segfaulted until I choose -DMVVM_TESTS_AUTOEXEC=OFF
.
Can we agree on standard installation procedure cmake, make, ctest, make install
?
How to maximize the cognitive load of keeping a concept X apart from the related concepts "model" and "view"? Right, choose a name like X="view model".
There may be good theoretical grounds for the term "view model", but for API users and library codevelopers it is about the worst possible choice.
Wikipedia says "The view model has been described as a state of the data in the model." What then about the term "state"? Other suggestions?
cmake fails with message:
CMake Error at thirdparty/gtest/CMakeLists.txt:10 (add_subdirectory): The source directory /G/tmp/qt-mvvm/thirdparty/gtest/googletest does not contain a CMakeLists.txt file. -- Configuring incomplete, errors occurred!
Use DragViewModel
from dragandmove
as an example.
Prefer C++ style (//!
) over C style (/*!
).
Omit @class
lines in fornt of class definitions.
Omit @brief
tag where not specially required.
To be done ASAP as it will obfuscate history.
why not rely on standard ways to run tests?
Quickrefl example requires ProjectManager to save/load GIU session.
Strange failure while trying to save two models in a single JSON file. Appears only on Linux+MacOS GitHub base actions (and not anywhere else).
Similar issue #3 which was closed but not resolved.
CMake fails to build:
$ cmake ..
-- The CXX compiler identification is GNU 9.2.1
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Qt5::Widgets /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.5
-- Includes: /usr/include/x86_64-linux-gnu/qt5/;/usr/include/x86_64-linux-gnu/qt5/QtWidgets;/usr/include/x86_64-linux-gnu/qt5/QtGui;/usr/include/x86_64-linux-gnu/qt5/QtCore;/usr/lib/x86_64-linux-gnu/qt5//mkspecs/linux-g++;/usr/include
CMake Error at thirdparty/gtest/CMakeLists.txt:10 (add_subdirectory):
The source directory
/G/ext/qt-mvvm/thirdparty/gtest/googletest
does not contain a CMakeLists.txt file.
-- Configuring incomplete, errors occurred!
Actually, in my fresh clone the directory thirdparty/gtest/googletest is empty.
In the Github source browser, I do see a link to the upstream googletest repository. This link, however, seems to be ignored by git clone
on my Debian/testing system.
Provide unit tests.
When a viewport item is set to be displayed on a graph canvas and the former is deleted a Segfault arises. This is because the canvas does not listen or handle on the viewport destruction.
Should separate tree with graphs, from the plot, and from plot properties. Consider saving relative splitter positions in QSettings. Use WelcomeViewSettings as an example
The model has to be as immutable as possible. Possibility to change the controller after the model construction will give too complicated behavior and will be very hard to cover with tests..
saveandload
CreateViewModel<AllItemsStrategy, NameLabelStrategy>(session_model)
For command-line addicts, source/libmvvm_viewmodel/mvvm/
is painful. Also, I see no good reason for such verbosity.
What about
lib/model
lib/state
(state
to replace viewmodel
as per #50)
Or create two libraries, and have an even flatter directory structure
libmodel
libstate
exit
in file menuCompleted in gpospelov/DaRefl#4
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.