This fixes a sporadic crash when selecting an identity in the Remote
dock. It happened because selecting an identity removes the first dummy
entry in the drop down list of identities which for some reason emits
the signal which then calls the same function to update the root dir
again. Depending on the timing of the network requests this could lead
to some confusion when building the tree structure.
Also fix an off-by-one error when building the tree structure.
See issue #2333.
This avoids possible confusions when getting the currently opened
database file. After closing a database this would return the previously
opened file when in fact no file is opened.
See issue #2334.
When the CSV import fails because of an unexpected end of file show a
better error message. When the file ends but we are still expected more
data to come, i.e. we are still in quote mode, no INSERT statement
failed. So showing the last SQLite error message will never show you a
proper error message. Instead tell the user that their settings might be
wrong or the file malformed.
See issue #2330.
This adds a new button to clone databases using a direct link which is
useful when you know which database you want to clone and do not want to
browse through the list of all databases in the Remote dock. Generating
this link still needs to be added to the DBHub.io web UI.
Because there is no local file on the disk to upload in-memory database
cannot be uploaded to the remote server. This commit makes sure the
button to upload databases is disabled for in-memory databases. It also
fixes a problem where some information on a previously opened database
would remain visible when opening an in-memory database.
When pushing a database to the remote server only provide the commit id
when the database file is saved in the directory of cloned databases.
This makes sure we do not provide any random commit id when a database
with the same name as a cloned database is pushed.
See issue #1164.
Highlight the last locally known commit id in the commit list in the
Remote dock. This should make it more obvious whether there are any
newer commits on the server.
When opening a clone of a remote database show a list of all branches,
releases, and tags in the Remote dock and show the commit list when
selecting one of them.
After 7f60aaa1fd the check for validity no
longer works in this case, since background() always returns a valid colour
as used by default for the widget. Consequently, a comparison with the
default colour in the first column is used.
Filter lines in Table Browser had lost conditional format entries in their
context menu. This restores the original behaviour.
And the name of the member boolean is changed to avoid double negations.
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.