Commit Graph

1840 Commits

Author SHA1 Message Date
Martin Kleusberg
b7cd1c7dbd Don't allow setting data for custom query model data
See issue #1015.
2017-05-19 15:04:47 +02:00
Justin Clift
7f3c4f928e Updated README for new "latest" nightly build dir 2017-05-17 15:56:58 +01:00
Martin Kleusberg
8cc3154c72 Add button for adding expression columns in Edit Index dialog
Add a button for adding new expression columns to the Edit Index dialog.

Allow the user to edit the 'name' of existing expression columns in the
Edit Index dialog.
2017-05-14 21:37:11 +02:00
Martin Kleusberg
6321d14dd6 Add buttons for changing the column order in Edit Index dialog
Add two buttons for moving index columns up or down in the Edit Index
dialog.
2017-05-14 20:48:43 +02:00
Martin Kleusberg
f06b63bc66 Use savepoint in Edit Index dialog
Create a save point when opening the Edit Index dialog. This allows us
to revert back to the last version when pressing the Cancel button.
2017-05-14 20:48:42 +02:00
Martin Kleusberg
e61d7d9fa7 Allow setting the partial index clause in the Edit Index dialog
This adds a new field to the Edit Index dialog that allows the user to
change the partial index expression for an index.

Example:
CREATE INDEX i ON a(
     col1 ASC,
     col2 DESC
) WHERE id < 1000;	-- This bit here
2017-05-14 20:48:42 +02:00
Justin Clift
d17b5454a1 Qmake now installs icon and metadata on *nix 2017-05-14 18:12:31 +01:00
Justin Clift
9325762456 Typo fix 2017-05-14 18:11:45 +01:00
Justin Clift
210624353e Added developer mailing list to README.md 2017-05-14 16:33:57 +01:00
Martin Kleusberg
58996f1345 Rework the Edit Index dialog
Change the layout of the dialog entirely. Instead of having checkboxes
that, if activated, move a column into the index, use two separate table
views, one for available columns and one for used columns. This makes it
easier to see the index structure on first sight. It also makes it
possible to see the order of the different index columns from the table
views. Additionally, now expression columns that are used in the index
are shown in the table views, even allowing them to be removed from the
index.
2017-05-14 17:01:00 +02:00
Martin Kleusberg
b953edc8eb grammar: Don't produce unnecessary separator char in index SQL 2017-05-14 14:26:13 +02:00
Martin Kleusberg
5d45636b9e export: Support dropping non-table objects in SQL export 2017-05-14 14:11:42 +02:00
Justin Clift
a3709576f7 Move back to Qt 5.7 for now 2017-05-14 10:53:03 +01:00
Justin Clift
f8d9cc4361 Merge pull request #1011 from karim/master
Add Windows XP support
2017-05-12 17:50:21 +01:00
Martin Kleusberg
57c4e582c7 Don't show "Show rowid" menu item for views
Don't show the "Show rowid column" context menu item for views because
views don't really have a rowid column (it's always NULL). So showing
the column doesn't really make a lot of sense and might even confuse
some users.

Also change the order of the menu items a little to be more consistent
for views and tables.
2017-05-12 18:31:58 +02:00
Martin Kleusberg
21ee1f2703 Allow updating views
This adds a new context menu option that allows unlocking views for
updating. This requires appropriate triggers to be in place and the user
to type in a column name that can be used as a 'primary key' for the
view. By default views are still locked from editing.

Inserting into and deleting from views isn't supported yet.

See issue #141.
2017-05-12 18:17:50 +02:00
Karim ElDeeb
51f3d6f5e4 Add Windows XP support 2017-05-12 16:43:52 +02:00
Martin Kleusberg
e404b22205 Fix wording in encoding message box 2017-05-12 16:22:39 +02:00
Martin Kleusberg
037b3c0113 Some improvements to the Export SQL dialog
When possible, don't write 'CREATE TABLE/VIEW/... `name`' but 'CREATE
TABLE/VIEW/... IF NOT EXISTS `name`' to the file.

Add an option to add DROP TABLE statements before each create statement.
This needs to be enhanced to apply to views, indices, and triggers as
well. See issue #629.

Clean up code.
2017-05-12 15:38:46 +02:00
Martin Kleusberg
c74204c700 Update Qt version info in BUILDING.md 2017-05-12 11:22:16 +02:00
Martin Kleusberg
6e6f7cdc18 Add support for building with Qt 5.5 2017-05-12 10:40:24 +02:00
Martin Kleusberg
bee295da08 Avoid warning when creating new databases
When creating a new database we execute a couple of SQL statements after
opening the new file. However, since none of them happen in a
transaction there's no need to commit them. This change gets rid of the
commit statement and avoids a warning being printed by doing so.

See issue #583.
2017-05-08 14:15:21 +02:00
Martin Kleusberg
f07548dfb2 build: Add make install rule to qmake project file
See issue #833.
2017-05-08 13:51:40 +02:00
Martin Kleusberg
4f18de856d plot: Fix labels for 'Row #' columns
See issue #950.
2017-05-08 13:19:59 +02:00
Martin Kleusberg
4706dd7dd7 plot: Correctly disable signals when needed
In the plot code use the blockSignals() method instead of connecting and
disconnecting signals and slots every time. The disconnects didn't
really work using the new C++11 connection code, so this commit restored
the functionality as it was intended.

This means that *a ton* of calls to updatePlot() are eliminated which
improves the performance.

It also avoid messing up the graph selection table in the Plot Dock in
certain cases.

See issue #950.
2017-05-08 13:05:30 +02:00
Martin Kleusberg
e1fbc98ef2 Fix default path in Save file as dialog
Actually use the default path settings from the Preferences dialog when
showing a Save dialog.
2017-05-08 12:22:44 +02:00
Martin Kleusberg
ef0ae8d549 Implement page-wise scrolling in Browse Data tab
Don't scroll by 100 records when using the scroll buttons but scroll by
one screen page.

See issue #232.
2017-05-08 12:06:56 +02:00
Justin Clift
06398be884 Updated CentOS/Fedora instructions
Tested and working on Fedora 25
2017-05-07 23:33:41 +01:00
Justin Clift
c8dba296df Add note about -DFORCE_INTERNAL_QSCINTILLA=ON to BUILDING.md 2017-05-07 19:42:17 +01:00
Martin Kleusberg
715074e0c6 Revert "tests: Fix build"
This reverts commit a436901d12.
2017-05-05 15:12:33 +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
e205f77e6a Use platform specific path separators in window caption
For displaying the path to the currently opened database file use
platform specific path separators.

See issue #735.
2017-05-05 14:19:50 +02:00
Martin Kleusberg
8c5650a63f libs: Update qcustomplot to version 2.0-beta 2017-05-04 21:51:43 +02:00
Martin Kleusberg
bddae31bf1 libs: Update qscintilla2 to version 2.10 2017-05-04 21:22:56 +02:00
Martin Kleusberg
9a171e0621 Avoid sorting twice in Browse Data tab
When browsing a table and changing the sort order, then switching to
another table, and then switching back, we would sort the table twice:
once using the default sort order and then again using the previously
used sort order. This results in four instead of two queries for those
tables (including the COUNT queries). This commit fixes this so that
only two queries are executed which should cut the run time for these
cases in half.

See issue #1007.
2017-05-04 19:54:03 +02:00
Martin Kleusberg
a436901d12 tests: Fix build 2017-05-04 19:26:44 +02:00
Martin Kleusberg
478ddc6da4 Simplify code 2017-05-04 19:21:17 +02:00
Martin Kleusberg
b5651d8b4d Keep the UI responsive when executing many statements in Execute SQL tab 2017-05-04 19:08:38 +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
Martin Kleusberg
3ff686d96f Show consistent slashes in recent files menu actions
See issue #735.
2017-05-03 21:11:29 +02:00
Martin Kleusberg
f7421a9d62 Fix messed up table browser
This is to work around a Qt bug which is present in at least version
5.7.1. The problem is this: when you browse a table/view with n
colums, then switch to a table/view with less than n columns, you'll be
able to resize the first (hidden!) column by resizing the section to the
left of the first visible column. By doing so the table view gets messed
up. But even when not resizing the first hidden column, tab-ing through
the fields will stop at the not-so-much-hidden rowid column, too. All
this an be fixed by this line. I haven't managed to find another
workaround or way to fix this yet.

If anybody knows more about this issue please let me know.
2017-05-03 20:43:31 +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
Martin Kleusberg
3596bf6c8d grammar: Add support for CHECK table constraints
This adds support for CHECK table constraints. We already had support
for CHECK column constraints and still mostly use that but with this
commit there are no more hickups when encountering such a table. It also
adds basic support for editing those tables: the CHECK constraint isn't
removed anymore when editing a different part of the table.

Example:
CREATE TABLE test(
	a int CHECK a IN(1,2,3),	-- This was supported before
	b int,
	CHECK b IN (1,2,3)		-- This is added by this commit
);
2017-04-30 23:35:48 +02:00
Martin Kleusberg
1eece9ef06 tests: Add regex test files to qmake project file 2017-04-29 13:50:57 +02:00
Martin Kleusberg
e72df17bc3 grammar: Support signed default values
This adds support for table definitions with a signed default value,
like this:

CREATE TABLE test(
    a int DEFAULT -1
);
2017-04-29 13:49:00 +02:00
Martin Kleusberg
d52263fc02 Fix crash when trying to show tooltips for views in Browse Data tab
When browsing a view in the Browse Data tab and hovering a cell we would
try to show a foreign key tool tip just like for tables. However, there
was no check if the browsed object is a table or a view, it was just
assumed it is a table. That would cause a crash whenever it actually was
a view. With this commit we check if it is a table first and, if not,
don't even try to show a tool tip.
2017-04-19 11:45:05 +02:00
Martin Kleusberg
760ef092cd Try setting a saner default row height in the data browser
Maybe this helps with issue #419.
2017-04-10 15:07:51 +02:00
Martin Kleusberg
f11c0181ca Improve wording in comment 2017-04-10 14:17:01 +02:00
Justin Clift
ec916226b0 Add dodgy temporary workaround for Qt OSX's missing cert verify() 2017-04-06 20:37:31 +01:00