Commit Graph

1546 Commits

Author SHA1 Message Date
Martin Kleusberg
5c17115c03 grammar: Move primary key handling over to the new system
This adds support for named primary keys.

It also makes it easier to store extra information in the future as
needed for ordered primary keys.
2016-09-06 15:40:16 +02:00
Martin Kleusberg
4b79f92eaa Load the full cell data when trying to edit the cell content
In 11bff0ded8 a settings option was
introduced in order to limit the number of characters loaded into each
cell in the Browse Data tab.

However, when editing the cell you wouldn't see the full data, i.e.
rendering the data incomplete and/or cropping it when it's being edited
anyway. This commit fixes this behaviour: when editing a cell (either
in-line or using the edit dialog/dock) the full data for this particular
cell is loaded and shown.
2016-09-06 14:29:07 +02:00
Martin Kleusberg
ed914e0fb2 grammar: Don't drop constraint name for one-field unique constraints 2016-09-06 14:07:14 +02:00
Vladislav Tronko
2ced0ff4e9 Add Settings files to test CMakeLists.txt 2016-09-04 00:13:22 +03: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
Vladislav Tronko
3a06395f88 Divide PreferencesDialog in two classes
This forces PreferencesDialog to serve only for UI needs.
Plus, this opens the door for adding another class for shortcut
management without pain.
2016-09-03 22:30:55 +03:00
Vladislav Tronko
11bff0ded8 Add cell symbol limit preference 2016-09-03 21:09:26 +03:00
Justin Clift
b56a26ccf9 Updated the .app name for the OSX build steps 2016-09-02 16:43:06 +01: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
Martin Kleusberg
e7b12332f7 Fix bug introduced in 684958b29c
This would stop the db schema from being reloaded when it actually
should be.

Also simplify code.
2016-08-30 20:01:51 +02:00
Martin Kleusberg
684958b29c Only reload DB schema when necessary
We used to reload the database schema whenever it might have been
changed and the latest version was required. For example: when the user
switches to the Structure tab we need the current schema; so we just
reloaded it to be safe - it might have been changed in the Execute SQL
tab or wherever.

With this commit we don't reload the database schema anymore when an
up-to-date version is needed but instead when it was changed by the
application. So in the example above it's not reloaded at all anymore.
Only if and when the user would execute some structure changing SQL it
would be reloaded.

Benefits:
- Better performance
- State of the structure tree view isn't lost as frequently
- Structure tree view gets updated when changing the structure in the
  Execute SQL tab

Downsides:
- Less error proof (testing!)
- No 'automatic' updates when the db is changed by an external
  application.

Any suggestions welcome!
2016-08-30 00:29:50 +02:00
Justin Clift
8a9130883b Update installer variables on Windows, update Qt5 path
This should update the master branch to use "DB Browser
for SQLite" naming, and fix the problem with the
uninstaller not showing up in Add/Remove programs on
Windows (issue #742)
2016-08-29 15:43:20 +01:00
Martin Kleusberg
e12e043f54 cipher: Fix min/max page size values in the cipher dialog
See issue #752.
2016-08-29 11:11:16 +02:00
Justin Clift
c0014041d1 Use the DB4S icon for the Windows install package too 2016-08-28 18:16:48 +01:00
lulol
db07265dab More Spanish translations for the master branch (#751) 2016-08-28 17:02:45 +01:00
Justin Clift
ec2d060df6 Use QFontInfo so Windows chooses a correct font 2016-08-28 15:41:18 +01:00
Vladislav Tronko
f64afff986 Check availability of font before setting up QFontComboBoxes 2016-08-28 16:17:56 +03:00
Vladislav Tronko
c7942dabb8 Specify monospace font for SQL editor correctly
If Monospace is not available(which happens with Monospace on Windows),
Qt's font matching algorithm tries to find another matching font
2016-08-28 14:12:20 +03:00
Vladislav Tronko
6dd2e596be Revert "Set a default font in the SQL tab too"
This reverts commit 49786e1309.
2016-08-28 14:12:20 +03:00
Justin Clift
04947c3dc4 Improve the robustness of the Preferences dialog font selection 2016-08-27 22:58:24 +01:00
Justin Clift
49786e1309 Set a default font in the SQL tab too
Copied from Vlad's fix yesterday
2016-08-27 20:34:10 +01:00
Justin Clift
4f70f6a7a8 Fix an old typo in a comment 2016-08-27 19:00:54 +01:00
Justin Clift
0d32d91363 Enable the /SOLID compressor option for NSIS 2016-08-27 18:57:16 +01:00
Vladislav Tronko
b15c7f20a5 Fixed default font obtaining 2016-08-27 00:24:48 +03:00
Martin Kleusberg
5775fc5f25 tests: Fix build errors 2016-08-26 17:09:43 +02:00
Martin Kleusberg
5fe2876479 Simplify code 2016-08-26 17:09:30 +02:00
Martin Kleusberg
9a7e042302 grammar: Consolidate constraint handling 2016-08-26 16:56:04 +02:00
Justin Clift
3e000fb38a Added Martin and Vlad to the "Travis go BOOM!" list :D 2016-08-26 14:42:15 +01:00
Martin Kleusberg
e1ff34e286 grammar: Add support for multiple constraints on the same field(s)
Example:
CREATE TABLE `y` (
	`a` int,
	`b` int,
	CONSTRAINT `c1` UNIQUE(`a`,`b`),
	CONSTRAINT `c2` UNIQUE(`a`,`b`)
);
2016-08-26 14:31:33 +02:00
Martin Kleusberg
5e6900ef5a grammar: Support named unique constraints
Also restructure the unique constraint handling a bit to be more
parallel to the foreign key handling.

Note that this (intentionally) introduces a bit of unnecessary
code duplication which is to be eliminated in one of the next commits.
2016-08-26 14:28:40 +02:00
Martin Kleusberg
ce75ccf035 grammar: Support named foreign keys 2016-08-26 14:16:07 +02:00
Martin Kleusberg
a1e08b37c9 Rename ExportCsvDialog to ExportData dialog
Sorry for the big change but I think it's preferable to not call it CSV
dialog when it's not just doing CSV.
2016-08-25 23:12:36 +02:00
Vlad
3ef9491d64 Use references for safety (#747) 2016-08-25 23:02:40 +02:00
Vladislav Tronko
281cf5cb73 Close database only if it was opened 2016-08-25 13:46:24 +03:00
Vladislav Tronko
50a1231580 Remove magic numbers 2016-08-25 12:07:58 +03:00
Martin Kleusberg
f91773b291 Add basic JSON export feature
This adds some basic functionality for exporting JSON files by extending
the CSV export dialog. There is still a bit of work required for
fine-tuning the JSON export feature though. But a standard export of a
table s working well already.

See issue #688.
2016-08-25 01:04:12 +02:00
Justin Clift
0ff6a44f61 Updated for 3.9.0 release 2016-08-24 21:46:27 +01:00
Justin Clift
e21dc40256 Updated currentrelease to 3.9.0 2016-08-24 18:11:42 +01:00
Justin Clift
2dbd92257b Updated for 3.9.0 release 2016-08-24 18:03:48 +01:00
safaalfulaij
d6784f8994 Update Arabic translation 2016-08-24 12:05:49 +01:00
lulol
4482c0f4f0 Updated spanish translation to match v3.9.x 2016-08-24 11:09:49 +01:00
Justin Clift
078c48d679 Delete [object] button's tooltip now changes with object type 2016-08-22 16:00:26 +01:00
Martin Kleusberg
64e07ad99e Show warning in Edit Table dialog when the grammar parser had trouble
The grammar parser returns a bool value to indicate if it encountered
some SQL feature that it doesn't understand yet. We might as well use
that bit of information and show it to the user.
2016-08-20 17:37:59 +02:00
Martin Kleusberg
fe36ac0675 grammar: Mark named table constraints as unimplemented 2016-08-20 17:35:55 +02:00
Martin Kleusberg
bb5b976ac3 grammar: Jump over column definitions after parsing them 2016-08-20 17:26:39 +02:00
Martin Kleusberg
89f7286220 tests: Stupid fix for Qt4 2016-08-20 14:22:11 +02:00
Justin Clift
c4c9d39570 Remove an un-needed apostrophe from the Korean translation 2016-08-19 22:14:23 +01:00
Gihun Ham
87454325b0 Updated korean translation (#736) 2016-08-19 22:07:46 +01:00
Martin Kleusberg
d98338ce89 Move all foreign key handling form the fields to the tables
Foreign keys used to be stored along with the column information even
though it's more or less a table constraint. However, as we only support
single column foreign keys it was easier to store it inside that single
column. Now with multi-column foreign keys coming, a mechanism has been
introduced to store those multi-column foreign keys in the table data.
This lead to two different storing places for foreign key information:
inside the field for one-column foreign keys and inside the table for
multi-column foreign keys. This commit deletes the foreign key storage
inside fields and changes all code to use the table storage.
2016-08-19 20:01:25 +02:00
Martin Kleusberg
57a41edbe0 Don't pretend to move columns when they aren't to be moved
This is purely a performance optimisation. It reduced the number of
calls to Table::setField() from three to two when the user only wants to
rename a field in EditTableDialog and not move it.
2016-08-19 19:53:10 +02:00