Commit Graph

139 Commits

Author SHA1 Message Date
Marcin Mikołajczak 44920ce098 i18n: Add Polish translation (#1456)
Signed-off-by: Marcin Mikołajczak <me@m4sk.in>
2018-07-10 23:12:28 +02:00
Iulian Onofrei 961141ec36 Replace deprecated qt5_use_modules function (#1419)
* Replace deprecated qt5_use_modules function

* Fix includes that fall under a larger module

* Bump minimum Cmake version to use newer features and properly use libs

* Replace deprecated qt5_use_modules function and bump minimum CMake version to 3.1.0 for 3rd party libraries
2018-07-10 20:57:55 +02:00
Iulian Onofrei 3cdc65a63f Add automatic crypted databases open via dotenvs (#1404)
* Rename confusing variables

* Fix some project warnings

* Fix code style

* Add constant for the default page size

* Move KeyFormats enum to CipherSettings

* Fix code style

* Fix memory leak

* Stop relying on CipherDialog for encryption settings management

* Fix code style

* Add .env format for QSettings

* Add automatic crypted databases open via dotenvs

This adds support for `.env` files next to the crypted databases that
are to be opened that contains the needed cipher settings.

The only required one is the plain-text password as a value for the key
with the name of the database like this:

    myCryptedDatabase.sqlite = MyPassword

This way, databases with a different extension are supported too:

    myCryptedDatabase.db = MyPassword

You can also specify a custom page size adding a different line
(anywhere in the file) like this:

    myCryptedDatabase.db_pageSize = 2048

If not specified, `1024` is used.

You can also specify the format of the specified key using the
associated integer id:

    anotherCryptedDatabase.sqlite = 0xCAFEBABE
    anotherCryptedDatabase.sqlite_keyFormat = 1

where `1` means a Raw key. If not specified, `0` is used, which means a
simple text Passphrase.

Dotenv files (`.env`) are already used on other platforms and by
different tools to manage environment variables, and it's recommended
to be ignored from version control systems, so they won't leak.

* Add new files to CMakeLists

* Move DotenvFormat include to the implementation

* Fix build error

* Remove superfluous method

(related to ac51c23)

* Remove superfluous checks

* Fix memory leaks

(introduced by 94bbb46)

* Fix code style

* Make dotenv related variable and comment clearer

* Remove duplicated code

* Remove unused forward declaration

(introduced by e5a0293)
2018-07-10 20:46:17 +02:00
Martin Kleusberg 3da520cdd1 Clean up multi threading patch, fix build and some bugs
Make strings translatable, remove some more debug code, fix tests,
reduce size of patch slightly, remove weird tooltip, don't crash when
closing database, simplify code, fix filters, don't link agains pthread
on Windows.
2018-06-08 22:46:47 +02:00
Martin Kleusberg 51dbe72e23 Multi-threading patch
This was done by Michael Krause.
https://lists.sqlitebrowser.org/pipermail/db4s-dev/2018-February/000305.html

In this commit I only fixed two compiler warnings, some whitespace
issues and removed some debug messages.
2018-06-08 22:46:47 +02:00
Karim ElDeeb b69e7cd034 Add build version to the nightly builds (#1390)
Make the Windows nightly build versioning information meaningful. ;)
2018-05-20 13:54:24 +01:00
Justin Clift e43ed17162 Include the Qt XML dll in our installation package 2018-01-30 20:34:57 +00:00
mgrojo 7c9fe7039c Merge branch 'master' into xml_cell_edit
# Conflicts:
#	src/EditDialog.cpp
#	src/ExtendedScintilla.cpp
2018-01-27 19:01:08 +01:00
Giuseppe Zizza a993c19853 File Extension management interface (#659)
[NEW] Add new interface and functionality to manage database file
extension. (Implements feature request #659)
2018-01-13 16:43:24 +01:00
Martin Kleusberg 5562119563 Move check for binary data into separate function
There are two places in the code where we check for binary data in
database cells. This commit takes the code and moves it into a separate
function so it's easier to improve the situation in both function
simultaneously.
2017-12-31 15:25:01 +01:00
mgrojo a0e0fc98ae XML mode for the cell editor
The new editor mode shares the same Scintilla widget as the JSON mode.
The JsonTextEdit class has been generalised. Future modes supported by
Scintilla could be added with the current pattern. As a consequence, the
EditMode is not always equal to the current stacked widget.

Some code in EditDialog has been refactored, so it is easier to understand
and modified with so many modes. textNullSet has been replaced by the use
of dataType as Null.

SVG is promoted to a new recognised data type, so it can be edited in the
XML mode.

The XML data is formatted and validated following the pattern established
by the JSON mode.

New modules are needed by the XML mode: the Qt XML module and some new
Scintilla files required by the HTML/XML lexer.

The indent_compact was incorrectly named in Setting::getDefaultValue.

See issue #1253.
2017-12-23 22:19:17 +01:00
mgrojo 8896ecca40 Refactoring and find/replace dialog in the JSON editor.
SQL and JSON text editor classes have been refactored. A new parent class
for both editors have been added for the common logic implementable without
depending on the specific lexer.

The only visible effect of this change should be that the JSON editor
(issue #1173) now has the same find/replace dialog as the SQL editor.

This prepares for the implementation of the XML editor (issue #1253).
2017-12-16 00:09:47 +01:00
mgrojo 82665e3f09 Find/Replace dialog for SQL editors and logs
A classic Find/Replace dialog including all the options provided
by the QScintilla editor. Additionally a "Replace All" and a
Find All" button are implemented. This complements issue #191

New shortcut in main window for opening the find/replace dialog
connected to the focused widget. Standard for Replace is Ctrl+H.
Consequently the shortcut for Copy with Headers is changed to
Ctrl+Shift+C (see issue #1058).

For SQL text widgets not embedded in the main window, the standard
shortcut cannot be enabled, otherwise it conflicts with the main
window. Therefore the shortcut Ctrl+Shift+H is enabled for all the
SQL widgets as fallback. A better solution would be desirable.
2017-11-25 21:39:41 +01:00
Justin Clift 12ee94cee9 Adding our license files to the Win install list 2017-11-19 21:29:41 +00:00
mgrojo ae55de4aee Merge branch 'json_cell_edit' 2017-11-18 15:00:15 +01:00
mgrojo c832d8a58c JSON mode for cell editor
Support for JSON in the Database Cell editor using the QScintilla library.

The lexJSON has been added to the compilation.

See issue #1173
2017-11-18 14:57:36 +01:00
Justin Clift b7057bfa1f Include TIFF and WebP image formats with our Windows builds 2017-11-17 22:24:45 +00:00
Justin Clift 9016bf6dc7 Include Qt image format plugins with the Windows installers 2017-11-03 17:53:49 +00:00
Martin Kleusberg bfa2fda1ad Attempt to implement multi-threaded loading of data
This is mostly done by trial & error. Don't expect any miracles from
it.
2017-10-11 09:21:41 +02:00
Martin Kleusberg 34df190729 Silence some cmake warnings
See issues #635 and #1143.
2017-09-30 12:19:55 +02: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 cf15fbf3c5 Update version number to 3.10.99, which indicates a development version of 3.11.0 2017-08-25 10:08:25 +01:00
Justin Clift 04e64f4844 Update version numbers to 3.10.0 2017-08-18 18:35:59 +01:00
Justin Clift 95f9e740ef Update version number to 3.9.200, which we're using for 3.10.0-beta2 2017-08-13 21:00:20 +01:00
Martin Kleusberg 1c7cc24b15 dbhub: Improve push database UI
This adds a new Push Database dialog which lets you specify the database
name, the licence, a commit message, and the visibility of the database.
2017-08-12 14:58:30 +02:00
Justin Clift 0a5eef8241 Use the new Czech language, add the Czech flag 2017-07-21 17:40:22 +01:00
Justin Clift e990875bc3 Update version number to 3.9.100, which we're using for 3.10.0-beta1 2017-07-21 17:03:46 +01:00
Justin Clift a3709576f7 Move back to Qt 5.7 for now 2017-05-14 10:53:03 +01:00
Karim ElDeeb 51f3d6f5e4 Add Windows XP support 2017-05-12 16:43:52 +02:00
Martin Kleusberg 0c8cb4ec1d Revert "Move fetching data for data browsing to a separate thread"
This reverts commit 6da71b6788.

This was causing just too many problems for one. The ones I noticed
were:
- Messing up the table view when scrolling down very large table where
the prefetching code is triggered.
- Crashing when setting an auto increment PK in the Edit Table dialog
because the sqlitetablemodel is used for a check in there.
- Probably more crashed in other places but for the same reason.
- Easy to fix but an issue nonetheless: when doing plotting a number of
empty rows would be inserted into the data browser.
- It just feels a little laggy.
2017-05-05 15:08:51 +02:00
Martin Kleusberg 6da71b6788 Move fetching data for data browsing to a separate thread
This moves the data fetching code into a separate thread for
asynchronous execution. The Browse Data and the Execute SQL tabs are
affected by this.

Note that this is a somewhat naive implementation that is meant for some
first testing.
2017-05-04 18:58:38 +02:00
Justin Clift 46555bc819 Launch DB4S as user not Admin for Win installer
See #338 for details
2017-05-03 00:53:41 +01:00
Justin Clift becd385c86 Update Windows build path for Qt 5.8 2017-05-02 22:59:00 +01:00
Андрій Кондратьєв dd685afef1 Ukrainian translation 2017-04-06 19:19:44 +01:00
Martin Kleusberg 3e4f3fc3d2 dbhub: Add remote dock with directory browsing support
This adds a new dock to the main window that contains all the remote
functionality (or is supposed to contain it all in the future).

It also adds a directory browsing feature which allows you to browse
through the folders and files on the dbhub server.

By double clicking a database you can download and open it. The Open
Remote menu action isn't needed anymore and has been removed.

This also fixes an issue with pushing databases where, after sending the
file is completed, the save dialog was opened.

Note that this is still WIP and is far from polished.
2017-03-18 20:40:59 +01:00
Martin Kleusberg 85334330a5 cmake: Add options to disable usage of distribution's libraries
This adds two new options to the cmake script which, when set, force
cmake to use the version of the Antlr or QScintilla library in our
repository and not search for a system-wide version of the library.

See issue #961.
2017-02-15 22:13:35 +01:00
Martin Kleusberg c0d2e9131e Try using the system version of libscintilla2
See issue #832.
2017-01-20 18:57:20 +01:00
Martin Kleusberg 2c7f32c699 Rename Create Index dialog to Edit Index dialog
Just like the Edit Table dialog, this dialog handles both creating and
editing. For consistency's sake this dialog is therefore renamed to Edit
Index dialog.
2017-01-20 12:35:07 +01:00
Martin Kleusberg 45580865d3 Merge branch 'plotrefactoring' 2017-01-16 12:46:52 +01:00
Martin Kleusberg a6f2a7d9a0 Move plot code into a separate set of files
This cleans up the main window class a bit which was getting quite large
and a bit harder to maintain than necessary.

This commit also includes two minor fixes to the plot system:
- The plot widgets are now disabled when no database file is opened.
- The progress bar shown when fetching all data is now initialised with
the correct row numbers.

Other than that this commit should in theory not change any
functionality.
2017-01-13 18:00:39 +01:00
Vladislav Tronko 4f7473fbed Enhanced UI for creating and editing foreign keys 2017-01-13 12:59:31 +02: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 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 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
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
Justin Clift b1b9f61d30 Updated project name for Windows nightly builds 2016-10-17 00:52:48 +01:00
Martin Kleusberg 2563d67868 Fix cmake file 2016-10-12 23:26:56 +02:00
Martin Kleusberg 5dddffd7a0 travis: Fix building 2016-09-06 17:07:06 +02:00
Vladislav Tronko 997bab5dab Fixing Travis build
Adding Settings to CMakeLists and missing header in Settings.cpp
2016-09-03 23:09:35 +03:00
Justin Clift 2957974974 Rename main CMake project name variable back to "sqlitebrowser".
Builds are breaking on *nix systems otherwise. eg #755 #758
2016-08-31 11:19:17 +01:00