Add support for strict tables in the Edit Table dialog. This allows
creating new strict tables and converting existing tables between
ordinary and strict modes while making sure only valid data types are
used in strict mode.
This also adds the STRICT and ANY keywords to the auto completion and
the syntax highlighter.
See issue #2926.
This fixes a possible crash when browsing a table without a rowid column
and with multiple columns in its primary key. To work with these tables
we need to pretend it still has only one primary key column (as in the
rowid case) and to do so we combine all the values of the primary key
columns into a single value. For simplicity we were using the JSON
library (which we are using anyway in the project) to achieve this,
however this turned out to be problematic for some values. This commit
introduced a new, more robust approach to combine multiple values into a
single value.
See issue #2832.
This moves the code to remove comments from SQL statements from the
SqliteTableModel class to Data.cpp making it a free function. This
removes some dependencies from the SqliteTableModel class with all its
dependencies.
Also simplify the CMakeLists.txt file for the tests by removing all the
dependencies which are not really required.
In commit 33ee7364f7 we have started
moving the macOS build scripts towards using cmake instead of qmake.
This commit fixes some issues introduced in that commit.
Do not call lupdate and lrelease any more because they rely on the qmake
project files and are called by cmake anyway.
Make sure cmake is reinstalled via brew after removing any installed
brew packages.
Set a hint to the Qt5 library path so cmake should be able to find it.
This removes all mentions of the qmake build system from our build
instructions because we are planning to remove support for qmake in the
near future. Building using cmake should work fine on all platforms.
This adds the moc header files to the dependencies of the executable in
the cmake project so they show up in their proper location in QtCreator.
This makes it more pleasant to use the cmake files as a QtCreator
project file.
Also rework the CMakeLists.txt file a bit by fixing whitespace issues,
rearranging some blocks and unifying the code style a bit.
This is a first attempt to use cmake instead of qmake for building our
nightlies on macOS. We are using cmake on most platforms and it would be
easier for us to only maintain one build system. Because support for
qmake is dropped in Qt6 anyway it makes sense to transition to only
using cmake in the near-ish future.
Please note that this commit has been assembled in a mostly blind
fashion. I would be surprised if this worked without further tweaking.
Changes to constraints in the Edit Table dialog were not always
correctly applied, especially when only constraints were changed. This
was because we did not make deep copies of the constraint objects so
instead of copied we were changing the original constraints. This meant
that the ALTER TABLE code we have in place thought that there were no
changes made in compariron to the original table.
This will give precedence to viewing SVG images over editing them as XML.
I suppose it makes sense, because most users will load images from disk
or using an application and will generally want to view them and not
editing them.
This also makes more sense for 4e5f117851
- Adjust fixed sizes in EditTableDialog so the bug is less visible
- Resize columns to contents after item insertion, so it is not resized
to contents when only the header is present.
QScrollArea::viewport is now used for boundaries check and
for image pan (m_pan_mode).
This should provide more accurate event filtering (content only)