The movable attribute for the main tabs is enabled and the code is adapted
to use widget references instead of indices.
This allows user to move tabs and set a preferred order, but the order is
still not saved.
See issue #1675
The width of the UI elements is forced by the text in buttons. This is a problem in some translations,
where the text are longer than the original. This PR address this tweaking some aspects:
* change UI size policy
* make RU translation for some buttons shorter
* move Set as NULL to bottom in EditDialog
For queries built from a table and filters, use a specialised count query
that only takes into account the where part of the statement. This will
speed-up the Browse Data tab for big tables.
See issue #1666
selectAll is overridden so all data is actually selected. Warn and ask user
as this may take some time and consume lots of memory (when the table is
big).
See issue #1373
This adds three new settings to the cipher dialog: KDF iterations, HMAC
algorithm, and KDF algorithm. To simplify things we also add two presets
for all the encryption settings: SQLCipher3 defaults and SQLCipher4
defaults. The preselected default is chosen depending on the SQLCipher
version which we use.
This should work with any combination of SQLCipher3 and SQLCipher4 and
any database created by either. It should also work with DotEnv files as
expected. Again, the defaults which are used for missing values in the
DotEnv files are chosen depending on the SQLCipher version we use.
We don't go a git pull of the sqlitebrowser repo for the SQLCipher
build, else the SQLite and SQLCipher builds could differ in the
commits they'd done with.
Foreign key combo-box in table browser
This adds a combo-box for the editor delegate when the associated column
has a foreign key constraint. In this way the user can choose the key value
based from a combo-box.
To minimise possible performance problems, the model only loads the foreign
key field, instead of the whole related table.
Except for not-null columns, a NULL value is given as possible value in
the foreign-key combo-box.
See issue #614
When no table is selected in the Browse Data tab, either because the
current database is empty or because no database is opened, we would
forever show the "determining row count" message even though nothing is
to be determined at this point. This commit makes sure to show a better
"0 - 0 of 0" message as we did before.
See issue #1654.
When renaming a column using SQLite >= 3.25 and changing something else
in the table, you would lose all the data in the renamed column. This is
because the second part of the alterTable() function (the part after the
renaming) didn't know about the new column name and so assumed it still
to be the old one.
See issue #1650.
There are three reasons for not hard-coding the shortcut names in tool-tips
or other texts inside the UI elements:
- Qt uses portable names for the shortcuts, that are translated to different
key combinations depending on the operating system, e.g. Ctrl is translated
to Cmd in MacOS.
- An eventual change in a shortcut is propagated to user strings affecting
translations.
- If we ever allow configuring the shortcuts in Preferences, the text
would be incoherent.
The shortcuts are added programmatically to the tool-tips and consequently
they are removed from the UI files. The translation files have been updated
semi-automatically so the translated strings aren't lost.
Shortcuts have been added to actions that lacked them (because they are
implemented through other means) so they can be used. The WidgetShortcut
scope prevents in those cases any interference with the current shortcut
logic.
In the case of Ctrl+Return for "Execute all/selected SQL", it has been
moved from code to UI file, since it no longer made sense.
See issue #721
This translation was working for Ubuntu 16.04, because it matched the
official Qt translation for Shift, but in Qt5.9.5 (Ubuntu 18.04) the
translation is no longer abbreviated (Mayúsculas) and the former
translation breaks the shortcuts. Using the original English terms should
work for all versions and it is automatically translated in the display.
NSIS was used up to v3.10.1 and then we moved to MSI. The Windows Installer will now be able to detect if a previous version was installed using NSIS and uninstall it before installing the new version.
See issue #1642.
This shows a short text in the Remote dock when no certificates are
configured yet. This text contains links to the dbhub.io page and gives
at least some information on the overall process. As soon as the first
certificate is imported, the old view is shown instead.
Change the path of used libraries to a cache entry instead of a normal variable. More info https://cmake.org/cmake/help/latest/command/set.html#set-cache-entry
If you are automating Windows build, you have to change the path of every library in CMakeLists.txt, to match your system, after every update to DB4S source.
This commit will set every library path to a cache entry instead of a normal value so it can be changed from the commandline using the `-D` flag.
For example, to change Qt5 path run `cmake -DQT5_PATH=/path/to/qt5 ...` to let CMake use this path instead of the one in CMakeLists.txt. This doesn't affect the current used paths and they will continue to work, and be used, if they are not replaced on the commandline.