When opening a local clone of a remote database, make sure the current
identity is set to the identity used for cloning this file. This avoids
possible confusion and can simplify the workflow a bit.
If the current database file is a clone of a remote database show some
information on it in the Remote dock. Even though this information is
already nice to have the new tab in the Remote dock is mainly added as a
place for future features. Also switch to the new tab automatically when
opening a remote database to show the user that this is a tracked
database.
The Remote dock shows a list of all databases on dbhub.io. Double
clicking a database downloads and opens it. If the database has already
been downloaded before, the local file is simply opened. This only works
for a small number of databases: To open the database you want, you just
search for it and double click it. But for a larger number of databases
on dbhub.io this does not perform very well since finding a database can
be very difficult. Because of this this commit adds a new view which
shows all checked out databases, i.e. those databases which are already
downloaded. Double clicking one of these opens it without trying to
update it first.
In the future this might also provide a place to add extra options like
deleting local copies.
This fixes checking out databases and pushing changes to them later.
Because for the first the port number was omitted and for the second it
was expected, looking up the last commit id in the database returned no
results which led to an 'Update required' error from the dbhub server.
This adds initial support for handling of different branches. Before
this we would always assume we were working with the master branch even
if in fact we were not. Now we respect the actual branch name and
support checkouts of different branches of the same database.
This adds two more options to the Preferences dialog which allow you to
change the font sizes. One option allows changing the font size of the
tree widgets in the Database Stucture tab and the Database Schema dock.
The other option allows changing the font size of all UI elements for
which there is no other font size option.
See issue #2306.
When clicking the Refresh button in the Browse Data tab only the table
contents were refreshed, not the database schema. Hitting F5 however
updated both schema and data. This commit make sure the schema is
updated in both cases.
See issue #2325.
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.