Fix executing the selected SQL statement(s) when there are multi-byte
characters before the selection. Because QScintilla gives us the start
position of the selection in bytes and we used the value for counting
characters, the executed part of the text was off by a few characters.
See issue #2311.
This allows modifying this background colour and provides a better
default, which does not make the cursor invisible (in dark mode) and it
is itself visible outside of the current line (in light mode).
See issues #2203 and #2320
This disables the lazy population feature for queries in the Execute SQL
tab which contain a compound operator (UNION, EXCEPT, INTERSECT). Adding
a LIMIT clause to the statements (as needed for lazy population) results
in a syntax error, so running these queries does not show any data.
See issue #2316.
When the index of the selected cell is invalid, i.e. no cell is
selected, we cannot retrieve the font of the selected cell. Trying to
look up the empty font name for updating the font combo box in the
Format toolbar then fails, outputting a warning with some Qt versions.
See issue #2288.
The presence of a sequence of bytes resembling a BOM does not guarantee
that the data is text. We can in those cases use the detection provided
by Qt. If the codec matches the one selected, we can consider that text.
See issue #2197
The problem was signaled by an error when calling addTicks:
[...]AddTicks[...] passed unequal length vectors for positions and labels
See comment in issue #2286
This removes no longer needed code like the handling of not fully parsed
column constraints. It simplifies the code even further by handling
constraints in a more consistent manner which allows us to remove some
redundancies.
This adds support for fully parsing named CHECK, DEFAULT, and COLLATE
colum constraints. With these changes it is possible to edit table using
these named constraints without losing any information. It is still not
possible to edit these names via the UI though.
This adds support for conflict actions in NOT NULL and UNIQUE column
constraints. It also supports named NOT NULL and UNIQUE column
constraints. With this it is now possible to edit tables which make use
of these constraints without losing any information. Adding constraints
like this via the UI is still not supported though.
Once more constraints are handled like this, the code can be probably
simplified a lot.
Fix loading of project files with empty filter values. If an empty
filter value was saved in a project file, it did not show up in the UI
but was partially added to the query anyway. This lead to an invalid
query with no results.
Also fix a possible loophole which at least in theory could lead to an
empty filter value being stored in the project file.
See issue #2288.
During a build with all warnings enabled, compiler reported numerous
Qt Functions as being obsolete. Review of the used functions, these
functions have been marked as obsolete as far back as Qt-5.12.x series.
Obsolete functions involved the use of Foreground/Background colour setting.
API description showing obsolete functions:
https://doc.qt.io/qt-5/qlistwidgetitem-obsolete.htmlhttps://doc.qt.io/qt-5/qtreewidgetitem-obsolete.html
This removes the login button from the dbhub dock. Instead of selecting
an identity and then clicking the login button, you are now logged in by
just selecting an identity.
While easier maintainability is the main point of this commit it has two
more side effects: It fixes a big which leads to the filter row being
cleared when toggling the rowid visibility and it should improve the
performance a bit by avoiding double work.
Update script `src/tools/create_windows_icon.sh`.
Script uses Imagemagick `convert` command and requires attention to ordering of arguments.
Script update for use w/ Bash 5
This fixes a possible crash when loading project files which occurs with
some versions of Qt when trying to set the column widths in the Browse
Data tab.
Thanks to @hertzhaft for spotting and fixing this.
See issue #2232.
Ensure images used for application icon are a "best quality" image
with consistent square size. A sharp, square image is vital for downstream
usage/installation.
File `images/logo.svg` was taken as canonical source. File was edited in
inkscape. It's document properties were cleaned up(incl. image metadata).
Document viewport was made to be a large size and square(256px^2).
Image itself was resized to ensure an 8px margin.
File `images/logo.png` was created from svg (inkscape `export to png`
command). Image was generated with high compression as well as ensuring
an alpha layer and square sizing.
File `src/icons/sqlitebrowser.png` was copied from `images/logo.png`.
When the CREATE TABLE statement of a table could not be parsed
completely we asked SQLite for more information on this table and added
that to the table representation. This however made all fields appear
twice. With this commit we only ask SQLite for information on the table
when our parser did not yield any information at all to avoid this
problem.
See issue #2269.
When clicking on a cell with a NULL value while, the Edit dialog
switches into text mode and shows an empty text with "NULL" written in
the line number margin. When then changing to an empty string cell, the
text in the editor did not change (it is still empty after all). This
prevented an action from triggering which meant that the "NULL" text in
the line number marging was not removed.
See issue #2204.