Commit Graph

1997 Commits

Author SHA1 Message Date
Oleg Prutz ae8df56d9e Clear column filters after table modification
Fixes #1020. Clear values in the filter boxes
on the `Data` tab every time the table structure
changes.
2017-09-10 23:58:31 +02:00
Martin Kleusberg fb6ea5ac60 Make text selectable in Edit dock even if db is opened as read only
Instead of disabling the entire edit dock when the database is opened in
read only mode, only disable all buttons for making changes to the
field. This way the data can still be read using the edit dock.

See issue #1123.
2017-09-10 15:19:03 +02:00
Martin Kleusberg f28bb151b3 Regenerate some .ui files
This shouldn't change anything at all. It's just that Qt Designer keeps
insisting to do these changes and I have finally given in.
2017-09-10 15:06:20 +02:00
Martin Kleusberg e9d4b3912a Move button for saving Execute SQL results to the toolbar
In the Execute SQL tab, move the button for saving the results of a
query as either a CSV file or a view from the bottom of the results view
to the toolbar at the top.

See issue #1122.
2017-09-10 15:00:31 +02:00
Martin Kleusberg b7a00d301a Don't track column count when parsing CSV files
When parsing a CSV file we used to check the column count for each row
and track the highest number of columns that we found. This information
then could be used to create an INSERT statement large enough for all
the data.

This column number tracking code is removed by this commit. Instead it
analyses the first 20 rows only. It does that while generating the field
list.

Performance-wise this should take a (very) little longer but makes it
easier to improve the performance in other ways later which should more
than compensate this commit.

Feature-wise this should fix some (technically invalid) corner-case CSV
files with fewer fields in the title row than in the other rows. It
should also break some other (technically invalid) corner-case CSV files
if they are imported into an existing table and have less columns than
the existing table in their first 20 rows but later on the exact same
number. Both cases, I think, don't matter too much.
2017-09-10 11:07:02 +02:00
Martin Kleusberg 67adb99665 Add '<>NULL' filter
Extend the filter syntax to allow filtering for fields that are not
equal to NULL.

See issue #1124.
2017-09-10 10:24:18 +02:00
Justin Clift dcb71aa1fd Disable automatic AppImage uploading for now
It's just not in usable state atm.
2017-09-08 14:22:18 +01:00
Martin Kleusberg 08e5f532ce dbhub: Fix branch list in push dialog
The JSON format generated by the server has changed.
2017-09-08 14:49:59 +02:00
Justin Clift c44e8ce9e0 Added missing tag name for the AppImage builds 2017-09-08 11:23:47 +01:00
Martin Kleusberg 8c47c6d668 Add very basic performance measurement to the Import CSV dialog 2017-09-07 22:26:32 +02:00
Martin Kleusberg 6432517805 Use a prepared statement for all records during the CSV import
Don't build a separate SQL statement per row to insert during CSV import
but use a single prepared statement which can be reused for each row.
This should speed up the CSV import noticeably.
2017-09-06 20:38:24 +02:00
Justin Clift 6e40741303 Use alternative upload script, as the original one causes notification spam 2017-09-06 11:08:24 +01:00
Justin Clift 0f7b748c71 Try and stop the release notification spam
As per https://github.com/probonopd/uploadtool/issues/1#issuecomment-259818295
2017-09-05 19:47:22 +01:00
Martin Kleusberg 5f6a1a1688 Try to fix the Windows builds
See issue #1120.
2017-09-05 16:57:15 +02:00
Martin Kleusberg f01ad409ff Improve error handling when moving table to a different schema
When moving an existing table to a different schema which already
contains a table of that name, this causes an error. With this commit we
try to detect this type of error as early as possible.

This commit also updates the error message for that case. The old error
message still mentioned the 'temporary flag' which isn't correct
anymore.

Also, when changing the schema fails, reset the dropdown box back to a
working schema to avoid any confusion about whether the change worked or
not.
2017-09-04 20:21:56 +02:00
Martin Kleusberg 72d64edbe0 Support creating databases in schemata other than main and temp
This replaces the checkbox for creating tables in the temporary schema
by a dropdown box that lets you select between all available schemata,
i.e. main, temp, and all attached databases. This way it becomes
possible to create new tables in attached databases as well as move
existing tables between all schemata.
2017-09-04 18:15:54 +02:00
Martin Kleusberg 7db96cdf13 Improve movement of tables between different schemata
This improves the Edit Table dialog to better handle moving tables from
one schema to another, though the UI currently only knows about the main
and the temp schema.

This also simplifies the grammar code by removing the temporary flag
from all classes because it's redundant now that we support multiple
schemata.
2017-09-04 17:38:08 +02:00
Martin Kleusberg a5ca75655c Show attached databases in the UI
Commits 532fcd3f6b,
44eb2d4f99, and
ea1659e1d0 along with some smaller ones
prepared our code for properly handling schemata other than "main".
While working for any schema, they only exposed this funtionality for
the "temp" schema. But with these preparations in place it's easy to add
all known schemata to the UI and enable (almost) all features we have
for them. This is done by this commit, adding all attached databases to
the UI.
2017-09-04 12:45:41 +02:00
Martin Kleusberg ea1659e1d0 Support schemata other than main in the Browse Data tab
Similar to commit 44eb2d4f99 this commit
makes use of the backend code improvements introduced in commit
532fcd3f6b.

It adds support for database schemata other than "main" to the Browse
Data tab. With this it's possible again to browse and edit data of
temporary tables using the Browse Data tab. This time, however, they are
separated logically from "main" tables. So handling temporary tables
should be a lot less error prone now, plus it's easier to tell for the
user what tables goes in what schema.

This commit changes the project file format. There is some code included
which allows loading of project files in the old format. However,
project files generated using versions after this commit can't be loaded
by older versions of DB4S.
2017-09-04 12:27:52 +02:00
Martin Kleusberg 1a3e3d3c40 Support SQL auto-completion for tables from different schemata
This improves commit 44eb2d4f99 by adding
support for auto completion in the SQL editors for all tables that are
not in the "main" schema.
2017-09-04 10:25:05 +02:00
Martin Kleusberg 315019dd9c Improve foreign key editor when working on tables in non-main schemata
This improves commit 44eb2d4f99 by
allowing to choose tables from other schemata than "main" in the foreign
key editor in the Edit Table dialog. This still isn't perfect as only
tables from the schema of the current table should be shown but with
some care it should work for all use cases.
2017-09-04 10:20:43 +02:00
Martin Kleusberg fbaf78ea65 Support drag and drop on tables with schema != "main"
This improves commit 44eb2d4f99 so that
drag and drop of data on temporary tables is supported as well.
2017-09-03 21:49:32 +02:00
Martin Kleusberg 44eb2d4f99 Add better handling of multiple schemata in the Database Structure tab
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.
2017-09-03 21:36:06 +02:00
Martin Kleusberg c616b39478 Don't allow selection of tables/indices in VACUUM dialog
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.
2017-09-03 21:25:29 +02:00
Martin Kleusberg 829e3107e5 Fix not working Save button in the message box when closing a database
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.
2017-09-03 13:22:31 +02:00
Martin Kleusberg 532fcd3f6b Add initial support for multiple database schemata
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.
2017-09-03 13:22:21 +02:00
Martin Kleusberg 4339119377 dbhub: Support pushing to different branches than "master" 2017-09-03 13:20:27 +02:00
Justin Clift 26f7cfbca4 Ensure the AppImage build includes SQLCipher 2017-09-02 22:10:31 +01:00
Justin Clift 70046f1dbd Automatically add AppImage builds to our GitHub releases
Thanks @probonopd :)
2017-09-02 20:39:37 +01:00
Martin Kleusberg 289c5c63e3 Clean up code 2017-09-02 11:55:49 +02:00
Martin Kleusberg c655727cdd Don't automatically commit all changes when editing a table column
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.
2017-09-02 11:24:16 +02:00
Martin Kleusberg 9b77055b1d Fix index updating when removing an indexed column from a table
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.
2017-09-02 10:38:21 +02:00
Martin Kleusberg ab7f0cf4af dbhub: Ask user what to do when trying to open an updated database
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.
2017-09-01 18:54:55 +02:00
Justin Clift ddd08a4f9d Fix typo in Russian translation
As pointed out by @Vort in #1107
2017-09-01 14:16:12 +01:00
Martin Kleusberg 300affa839 dbhub: Optimise code 2017-09-01 13:56:05 +02:00
Martin Kleusberg a84300c806 dbhub: Improve file size format
As per suggestion by @chrisjlocke, this commit removes the trailing
'.00' bit for round numbers.
2017-09-01 13:37:06 +02:00
Martin Kleusberg dea1a1ce95 Add flag icon for Egyptian Arabic 2017-09-01 13:34:49 +02:00
Martin Kleusberg 88ee1ac535 dbhub: Tweak certificate UI in the preferences dialog
Don't highlight all the horizonzal headers when selecting a certificate
row in the preferences dialog.

See issue #1087.
2017-09-01 13:08:31 +02:00
Martin Kleusberg 437163054c dbhub: Fix wrong file size being shown for very large files
See issue #1113.
2017-09-01 12:44:02 +02:00
Martin Kleusberg f830f4265c dbhub: Fix progress dialog for very large files
See issue #1095.
2017-09-01 12:36:20 +02:00
Martin Kleusberg 49e6733dac dbhub: Enforce name and commit message length limits in push dialog
See issue #1097.
2017-09-01 12:05:45 +02:00
Martin Kleusberg 6cac6643f1 dbhub: Remove closing "." from the progress dialog
See issue #1095.
2017-09-01 11:27:28 +02:00
Martin Kleusberg 9fa8ffba2e cipher: Change tab order in encryption dialog
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.
2017-09-01 10:15:47 +02:00
Martin Kleusberg 5a922fff83 cipher: Fix passphrases containing single quotes
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.
2017-09-01 10:12:54 +02:00
Martin Kleusberg 516ff44789 dbhub: Redownload database if local copy has been deleted
See issue #1111.
2017-09-01 09:57:44 +02:00
Martin Kleusberg 0160fb7462 dbhub: Add tooltip to cog tool button
See issue #1111.
2017-09-01 09:47:13 +02:00
Justin Clift 6fe9b4ad6b Merge pull request #1114 from Mischanix/1099-installer-restarts-without-prompt
Pass /norestart to vcredist installer
2017-08-31 19:12:45 +01:00
Robert Nix fea164a5e1 Pass /norestart to vcredist installer
This prevents it from automatically trying to restart
the user's computer without any prompt.
2017-08-31 13:02:19 -05:00
Justin Clift db88d6e952 Merge pull request #1102 from da2x/master
Change some OK buttons to Save buttons
2017-08-25 14:34:43 +01:00
Justin Clift 3e0f9ddebf Leave the vacuum dialog button as-is 2017-08-25 14:33:51 +01:00