Commit 532fcd3f6b added support for
multiple database schemata to the backend code. While doing this, it
removed support for showing temporary database objects in the user
interface.
This functionally is partially reimplemented by this commit. With this
commit temporary database objects are shown in the Database Structure
tab and in the Db Structure dock. Unlike before however, they are
visually separated from 'normal' database objects. Also this commit
tries to make use of the new schema handling code wherever possible to
also separate temporary objects programatically from the normal ones.
This wasn't done in earlier versions and effectively was a source of
all sorts of errors.
This commit still lacks support for temporary tables in the foreign key
editor and in the Browse Data tab. Also a substantial amount of testing
is still required.
Remove the feature to select individual tables and indices to vacuum in
the vacuum dialog. Turns out SQLite doesn't support this (and apparently
never has). If you didn't select all tables at once, it would just print
errors to the console output. I have no idea why we ever implemented it
this way. However, the dialog could be reused to allow selection of
database schemata to compact - and this actually does work.
When closing a modified database a message box asking whether to save
the changes is popping up. The buttons were changed from Yes/No/Cancel
to Save/No/Cancel by commit 44361df4e9.
However, the code for this particular message box was still checking for
a Yes button click, and thus wasn't reacting on the Save button at all.
See issue #1117.
This adds initial basic support for handling different database schemata
at once to the backend code. This is still far from working properly but
shouldn't break much either - mostly because it's not really used yet in
the user interface code.
Editing a table column in the Edit Table dialog accidentally committed
all prior changes to the database, effectively clicking the 'Write
Changes' button while working on the table. This is no problem if your
working on a clean database, but is a problem if you have made other
changes before. In the latter case you lose the ability to roll them
back and you can't use the Cancel button in the Edit Table dialog
anymore.
See issue #1116.
When changing an indexed column from a table using the Edit Table dialog
we try to update the corresponding indices as well. So if a column is
renamed all references to it in the indices are renamed accordingly.
This, however, didn't take into account that you can also remove
columns. While trying to update the column to nothing, the application
would crash. This is fixed by this commit. It doesn't crash anymore and
now removes the column from the index as expected.
See issue #1115.
If there is a local clone of a remote database but the remote database
has been updated to a newer version in the meantime, we're now asking
the user what to do. The choice is between downloading the newer version
and overwriting the local one with all the changes it might have
contained or opening the local version and not downloading anything.
See issue #1096.
Change the tab order in the encryption dialog so that the password
editor is the widget that is selected by default. That makes it possible
to type in the passphrase right away without navigating to the widget
first.
This fixes a regression introduced in d1e3e98006 which makes it
impossible to open encrypted databases with single quote characters in
their passphrase.
See issue #1105.
Even when trying to attach a non-encrypted database in the SQLCipher
build we would try to give a passphrase - though an empty one. This
yields an invalid SQL statement, so attaching would never work. This is
fixed by this commit.
See issue #1088.
The 'attach database' menu item was only activated after making changes
to the database and saving them. With this commit it's activated right
after opening a database, too.