Commit Graph

1943 Commits

Author SHA1 Message Date
Martin Kleusberg ab5f6cffa7 Reload pragma values when pressing F5/Ctrl+R
As suggested by Iulian here
https://github.com/sqlitebrowser/sqlitebrowser/commit/da7f472864c50af85b01907ab3a3762e98b6154e#commitcomment-19844983
2016-12-19 17:53:37 +01:00
Justin Clift e6a8f88255 Merge pull request #895 from prutz1311/master
Improve handling of SQLite savepoints (#878) (#836)
2016-12-10 11:41:34 +00:00
Oleg Prutz 2f45341570 Improve handling of SQLite savepoints (#878) (#836)
Previously all savepoints were added to and deleted from
`savepointList`, so some savepoints could not be released, which lead to
warnings and errors, e.g. it was impossible to save database or to move
newly created row in 'Edit Table' window.
2016-12-06 15:30:44 +03:00
Justin Clift 4ac931835d Merge pull request #890 from shanecb/master
Added a new format for displaying Apple NSDates to the Column Display Format Dialog
2016-11-30 02:39:17 +00:00
Shane Bielefeld 7e03d67c2b Added a new format for displaying Apple NSDates to the
ColumnDisplayFormatDialog
2016-11-28 17:56:47 -05:00
Oleg Prutz 17369b66a6 Fix hanging when deleting large number of records (#856) (#870) 2016-11-25 09:44:47 +00:00
Justin Clift c6f1373ba9 Trivial typo fix 2016-11-08 01:21:35 +00:00
Martin Kleusberg df5e604e6e dbhub: Add support for sending files
NOt perfect yet but a start.
2016-11-07 23:38:51 +01:00
Martin Kleusberg eeeec5f2fc dbhub: Use certificate manager to get client cert for authentication
When trying to fetch a database don't load a hardcoded client
certificate but grab one from the certificate manager in the preferences
dialog.

Also add support for password protected private keys.

Note: Since this is all testing code on the front-end side, we just use
the first certificate in case multiple certificates are configured.
2016-11-06 14:50:27 +01:00
Martin Kleusberg 982e4c4d34 plot: Add row number as column to select for plot
See issue #820.
2016-11-04 18:48:21 +01:00
Martin Kleusberg 70a44971be plot: Fix fetch all data button for plots based on query data
The fetch all data button in the plot area would load all data as if the
Browse Data tab was active even though the plot is based on a SQL query
in the EXecute SQL tab. That would lead to non-sensical results. With
this commit the button always load the correct data.

See issue #820.
2016-11-04 18:17:26 +01:00
Martin Kleusberg f3dcf5a0c8 Store contraints in a hash structure instead of a map
Our key type here is a vector of fields and vectors aren't less than
comparable by default (and I have no idea how to implement a sane
operator<() for them). But because maps require less than comparability,
change the map to a hash which only requires an operator==() which a
vector should have by default.

No idea how this ever worked with a map?!

See issue #854.
2016-11-04 18:02:59 +01:00
Martin Kleusberg 60e4cb758e dbhub: Add client certificate management
Add a list of all configured client certificates to the preferences
dialog and show some information on them.

Add two button to the preferences dialog to add and remove client
certificates.

Copy configured client certificates to some safe place where they aren't
deleted by accident.

Change the remote code to expect certificate and private key in one
file. The path to this file is still hardcoded, now to client.cert.pem.

Remove the example client certificate as it's not up-to-date anymore
anyway.

Still missing: Option to use a configured client certificate from the
preferences dialog to authenticate.
2016-11-01 22:54:50 +01:00
Martin Kleusberg 02019e391b Fix cmake build
Also simplify the cmake file for the unit tests.
2016-11-01 20:31:43 +01:00
Martin Kleusberg ce1efcf645 dbhub: Update CA certificates 2016-11-01 20:03:14 +01:00
Martin Kleusberg 6283f97598 dbhub: Add list of CA certificates and restructure code
Change the layout of the preferences dialog a bit.

Remove the server selection combo box from the preferences dialog as it
will probably never be required. The way we do logins using certificates
kind of makes this obsolete, I think.

Restructure the whole remote code a little bit. Also add helper
functions here and there.

Show a list of our the CA certificates built into the application in the
preferences dialog. This list is read only of course but still
informative as it tells the user which sites are supported ny DB4S.
2016-11-01 19:45:42 +01:00
Martin Kleusberg e9894b47fa grammar: Add support for row values
SQLite version 3.15.0 introduced a new feature called row values. These
are basically vectors of values that can be used to simplify some
expressions.

For example instead of this
CREATE TABLE x(a int, b int, c int, CHECK(a=1 and b=2));
you could write this:
CREATE TABLE x(a int, b int, c int, CHECK((a,b) = (1,2)));

However, the new syntax wasn't supported by our grammar parser which
made it impossible to access or edit that table. This commit attempts to
fix this.
2016-10-30 21:50:30 +01:00
Vladislav Tronko 9afa8d2ace Use platform-wise line-endings in export CSV dialog (issue #842)
For Windows platform we use '\r\n', for other platforms default value is
set to '\n'
2016-10-30 15:08:19 +02:00
Martin Kleusberg 19d45bfc54 dbhub: Ignore errors about self signed certificates in a chain
Previously we'd only ignore errors about a single self signed
certificate but apparently it's an entirely different matter to Qt or
OpenSSL if we're talking about a self signed certificate in a
certificate chain.
2016-10-26 23:56:32 +02:00
bss, shaoshi e12022432f keep user_version when Set Encryption (#846)
Set user_version of the new db to current user_version.
Otherwise user_version would be set to 0.
2016-10-26 23:40:51 +02:00
Martin Kleusberg ae31dc82b8 dbhub: Support CA certificate chains 2016-10-26 23:07:31 +02:00
Martin Kleusberg 08e7f575ee dbhub: Fix weird progress bar behaviour 2016-10-25 20:54:42 +02:00
Martin Kleusberg c2a9608c80 dbhub: Add basic HTTPS support
This adds basic support for fetching databases via HTTPS using client
certificates. You can include CA certificates to verify any responses
from a server. For now, one test CA certificate is included but it's
easy to add more.

It's also possible to authentify the client using a client certificate,
a client key and a password. As of this commit all three items are
hardcoded.

It's still possible to access any remote database via HTTP but if a
request URL starts with 'https' this new mechanism will be used.

All certificates, keys, and password included in here are taken from my
node.js test server repository. They will be replaced soon-ish.
2016-10-25 20:42:31 +02:00
Martin Kleusberg fad7246400 dbhub: Show download progress and allow canceling downloads 2016-10-24 23:56:36 +02:00
Martin Kleusberg 4d26624bda dbhub: Add very basic support for opening remote files
This adds some initial support for opening remote files. You can enter a
URL and DB4S will try to download the file. When successful you'll be
able to specify a place and name to save the file under, and after
saving it locally to disk it'll be opened just like any local database
file.

See the included TODO comments for missing features. Most notably
missing is the HTTPS and certificate handling code. Also any support
for storing the remote source of a database is lacking.
2016-10-24 22:49:32 +02:00
Justin Clift 31dffa6afc Updated nightly build URLs to HTTPS 2016-10-20 21:04:37 +01:00
bss, shaoshi ea9d22ead8 Fix Chinese translation (#843) 2016-10-20 16:50:38 +01:00
bss, shaoshi 44bb1d8ade Update Simplified Chinese translation (#840) 2016-10-19 22:22:07 +01:00
Martin Kleusberg 85934dee77 Simplify code
This simplifies some of the super long iterator declarations by using
the auto keyword from C++11.
2016-10-18 20:07:48 +02:00
Martin Kleusberg aa965ff725 Fix last commit
Also drop more Qt4 code in order to achieve this.
2016-10-18 18:33:59 +02:00
Martin Kleusberg b9e4433318 Drop Qt4 support
This commit removes all code and configuration that was required for
building with Qt4. Hopefully noone really needs it anymore.

See issue #603.
2016-10-18 18:07:38 +02:00
Martin Kleusberg 1ced897793 Switch to using C++11 and Qt5 (#808)
* grammar: Simplify code thanks to C++11 being there

* Use lambdas instead verbose slots for duplicating record

* travis: Use Qt5
2016-10-18 17:31:20 +02:00
Justin Clift 65a2c24afc Wording tweak 2016-10-17 06:18:32 +01:00
Justin Clift 000af85547 Updated README.md for new Windows nightly builds 2016-10-17 06:09:59 +01:00
Justin Clift b1b9f61d30 Updated project name for Windows nightly builds 2016-10-17 00:52:48 +01:00
Vlad 312c29b238 Fix cells copying (#825)
With this commit, we start to handle empty and NULL single cell
selections in a special way. Well, there's nothing special about it.
We just push them to inner buffer and clear outer clipboard. That's it.

NB: possible side effect might appear if you copy empty value,
then select some text and paste your empty value here. Nothing will
happen with text though, because, well, we wiped clipboard.

Plus, it fixes single-cell multiline text copy-pasting (#541)
2016-10-15 18:15:04 +03:00
Martin Kleusberg 9c5c2f7f36 Clean up CMakeLists.txt file for the unit tests 2016-10-14 13:38:13 +02:00
Martin Kleusberg d5c6b7bb0e Remember plot settings for each table (#819)
Store and restore the plot settings for each table - just like the
filter values or the column widths. This way you can have multiple
plots, one for each table.

Also, save these settings in the project files.
2016-10-14 13:24:06 +02:00
Vlad c25119ed4e Add unit test for regex parsing comments in SQL query (#826) 2016-10-14 13:23:27 +02:00
Martin Kleusberg 1592b7d2c3 When fetching all table data show a progress dialog
Fetching all table data using the button in the plot area might take a
long time. This commit adds a progress dialog which is displayed while
loading all the data.

See issue #499.
2016-10-13 23:07:36 +02:00
Martin Kleusberg 7570a0092d plot: Allow plotting of column when there is a NULL value in it
This enables plotting even for those columns which contain NULL values.
To distinguish NULL from a numeric 0 there is nothing drawn for NULL
values, i.e. there is a gap in the graph.

See issue #822.
2016-10-13 21:55:21 +02:00
Justin Clift 980429debd Change the default editor font size on OSX to 12pt
For #818
2016-10-13 12:47:53 +01:00
Martin Kleusberg 627ed4c56b Fix renaming of table columns when there are foreign keys constraints
When editing a table (e.g. renaming a column) and there is another table
referencing the edited table in a foreign key, this could cause problems
when foreign key enforcement is enabled. We tried to circumnavigate
these issues by temporarily disabling foreign keys but that wouldn't
work. This commit tries to implement a better way of achieving the same
goal.
2016-10-13 13:35:54 +02:00
Martin Kleusberg 8a9a5d27de Play around with Travis 2016-10-13 13:16:16 +02:00
Martin Kleusberg c40615c16c Fix altering tables with multiple indices
This hopefully prevents an error message from appearing when trying to
edit a table with multiple indices referring to it. While restoring
these indices the SQL commands wouldn't be separated by semicolons and
that might have caused problems.

Also trim the SQL commands to remove any excessive whitespace that might
be in them.

See issue #771.
2016-10-13 13:00:35 +02:00
Martin Kleusberg 8f77634a0a Fix escaping of Execute SQL results
Fix the HTML escaping of the success/error messages at the bottom of the
Execute SQL tab. This also simplifies the code a bit.

See issue #823.
2016-10-13 12:39:10 +02:00
Martin Kleusberg da7f472864 Make shortcut for 'reload' dependent on currently active tab
Make the reload shortcut (at the moment F5 and Ctrl+R) dependent on the
currently active tab. This way it always performs some meaningful task,
depending on the current context.

See issue #759.
2016-10-13 12:22:54 +02:00
Martin Kleusberg e76e5b3241 Improve error handling when saving
Report any errors that might occur while saving changes to the database
to the user. Also warn the user that this means the database wasn't
saved entirely.

See issue #770.
2016-10-13 00:08:48 +02:00
Martin Kleusberg 2563d67868 Fix cmake file 2016-10-12 23:26:56 +02:00
Martin Kleusberg 34246120d8 Simplify code 2016-10-12 22:12:49 +02:00