Commit Graph

114 Commits

Author SHA1 Message Date
Martin Kleusberg
d14fb1fbb1 dbhub: Remove remote menu, add push button to remote dock
This commit removes the File -> Remote menu entirely. The only menu item
that was left was the Save to Remote item which is replaces by a button
in the remote dock.

The button is only enabled when a database file is opened and the user
has logged in using a certificate.

Clicking the button opens the same dialog and performs the same actions
as before. The only difference is that we don't use the first client
certificate - no matter which one it is - but instead use the client
certificate that was used for logging in.
2017-08-03 17:35:36 +02:00
Martin Kleusberg
6984d451d6 Properly initialise table browser settings 2017-06-17 13:11:59 +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
Martin Kleusberg
43a5175af1 dbhub: Keep track of the cloned databases
This adds a local database to keep track of all the cloned databases.
For now we only use this information to prevent exactly the same
database being downloaded twice.
2017-03-23 19:08:26 +01:00
Martin Kleusberg
1e9fec270b Merge automatic update check into dbhub.io code
Move the network part of the automatic version check code into the
dbhub.io parts. While semantically this doesn't make a lot of sense it
simplifies the code a bit, reduces the size of the main window class,
and avoids duplication of code e.g. when introducing proxy support.
2017-03-19 17:29:20 +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
e43dbddbd3 Remove unnecessary includes
Hopefully this reduces the compile time a little bit.
2017-01-20 22:37:59 +01:00
Martin Kleusberg
c9ceb5da59 Add Edit Index feature
Improve the Create Index dialog so that it allows creating as well as
editing indices.

Chenge the code for the main window to allow editing existing indices.
2017-01-20 12:15:49 +01:00
Martin Kleusberg
45580865d3 Merge branch 'plotrefactoring' 2017-01-16 12:46:52 +01:00
Martin Kleusberg
50ef6cd7c3 Allow opening databases in read only mode
See issue #325.
2017-01-15 20:22:01 +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
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
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
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
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
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
Justin Clift
f537a009a0 Add placeholder File → Remote submenu + basic Preferences options 2016-09-28 13:59:41 +01:00
Vladislav Tronko
11558a86b4 Implement switching tabs using Alt modifier + number 2016-09-26 14:11:59 +03: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
Vlad
3ef9491d64 Use references for safety (#747) 2016-08-25 23:02:40 +02: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
48643430a5 Add SQLCipher FAQ option in the Help menu
This new Help menu option only displays for SQLCipher enabled
builds.  For non-SQLCipher ones, it's not shown.

Closes #734.
2016-08-19 16:16:29 +01:00
Martin Kleusberg
4d29271954 Introduce enum for main window tabs 2016-08-16 23:54:54 +02:00
Martin Kleusberg
27f8b96edc Simplify code
The parameter for populateTable isn't needed anymore
2016-08-16 22:51:21 +02:00
Martin Kleusberg
d288a41dba Clean up code
Just some simplifications, nothing more.
2016-08-16 22:45:22 +02:00
Martin Kleusberg
014174bc26 Get rid of the resetBrowser() method
This hopefully helps to simplify and restructure the code. If it turns
out to make things only worse we can undo it. This *should* make no
changes for the user.
2016-08-15 23:08:32 +02:00
Vladislav Tronko
dbda6871b6 Fix Travis build 2016-08-13 02:44:37 +03:00
Vladislav Tronko
ad10e8016c Polished cell editor widget 2016-08-13 01:56:14 +03:00
Justin Clift
f881f95ea9 Rationalise the Edit Cell dock and Windows code into one
Prior to this PR, we've had the Edit Cell be available both in a "dock"
and "window" mode.  Both at the same time. (!)

The "dock" mode already had tear off window functionality and was more
complete, whereas the "window" mode was buggy and didn't really add
anything new.

This PR removes the "window" version of the dock, and cleans up the
handling of "dock" mode, so there's just one Edit Cell dock now.  It
can be torn off and used as a window, docked to the main UI (by double
clicking its title bar), and toggled on/off with Ctrl-E (Cmd-E on OSX).
2016-07-21 22:55:13 +01:00
Vlad
c91390941d Add duplicate record option (#594) 2016-05-24 19:47:09 +02:00
Martin Kleusberg
b00c4f791f plot: Add button to load all data
See issue #499.

This also fixes a bug introduced in 6784a6a854
which effectively disabled the partial prefetch mechanism on large
tables.
2016-05-05 22:57:57 +02:00
Lars Immisch
1192f450fd Allow viewing via the EditDialog for executed sql statements (#570)
* Allow viewing via the EditDialog for executed sql statements

Editing is disallowed, becuase we do not know which table the freeform
query operates on

* Fix whitespace

* Don't crash when changing to 'Execute SQL' tab when no database selected

* Add double click action

* A small usability improvement and indentation changes suggested by @MKleusberg
2016-04-26 00:16:30 +02:00
Martin Kleusberg
272671d7f0 Add command line option for setting table to browse after opening
Add a new command line option -t/--table for directly jumping to a table
after opening the database.

See issue #509.
2016-02-04 19:37:17 +01:00
Martin Kleusberg
6f17c3d1ea Reduce number of unneededly executed SQL commands
See issue #503.
2016-01-27 20:23:36 +01:00
gimKondo
54cea17f3a set selected data type on imported by Edit database cell
Data type isn't decided by column type, but cell's type.
And, 2 bugs is fixed.
1. prevention in-place editing data
2. the lack of tr() on text literal
2016-01-18 15:56:57 +00:00
Martin Kleusberg
d7c035874a Fix bug when cancelling the database closing
See issue #432.
2015-12-24 13:30:12 +01:00
Martin Kleusberg
672b6f693b EditDialog: Make edit dock more keyboard friendly to use
See #440, #441.
2015-12-19 14:05:45 +01:00
Martin Kleusberg
f26df79961 Add edit cell dock to main window
Add a new option for replacing the edit data dialog by an edit data dock
widget which is added to the main window and remains visible. This might
be interesting for people who otherwise would have to open the edit
dialog many times by doing tons of double clicks.
2015-12-15 22:29:15 +01:00
Martin Kleusberg
c78c466598 Add option for changing encoding for all tables in Browse Data tab
Add a new menu option to the Browse Data tab for changing the encoding
of all tables instead of just the one table.

Also check if the encoding the user typed in exists before trying to use
it to prevent a crash when an invalid encoding is used.

See issue #414.
2015-09-15 10:58:37 +02:00
Martin Kleusberg
eaf6ff1565 Support text in different encoding in Browse Data tab
When browsing and editing a table in the Browse Data tab allow the user
to change the assumed encoding of the text in the table. We'll then try
to convert from this encoding to Unicode for display purposes and to
convert from Unicode to this encoding for editing purposes. This way the
UI and all tools will keep using Unicode while the database format is
still respected. I hope the amount conversions generated this way won't
affect the performance too much.

See issue #414.
2015-09-15 00:14:55 +02:00
Martin Kleusberg
1ebecbbc9d Add option for showing the rowid column
See issue #408.

This isn't working reliably yet on my system: If you enable the fix
restoring the previous settings when going back to a table doesn't work
and if you disable it that very way is the only way to change the
option. Don't know what's going on there :(
2015-09-11 13:30:24 +02:00
Martin Kleusberg
90bb4891b9 Support read only opening of database files
When opening a read only database file show a 'Read only' note in the
status bar of the main window and disable all editing buttons in the UI.

See issue #402.
2015-08-25 19:28:40 +02:00
Martin Kleusberg
743bdf9941 Fix a few warnings 2015-07-06 22:48:18 +02:00
Martin Kleusberg
7c1d237d9b Support alternative display formats in the Browse Data tab
This is a proof-of-concept or even a basic first implementation of a new
feature I'd like to have in DB4S which at the moment I call display
formats.

The idea here is to allow the user to change the data in the Browse Data
tab on a per column basis before displaying it. This means even though
the data is stored in format X in the database it can be shown in format
Y in the browser. This should be useful in cases where the original
format X is hard to read or just not useful in a particular case.

This first implementation allows the user to right click on the header
of a column and open a new dialog for setting the display format which
offers a (limited) list of pre-defined formats. The selected format is
then integrated into the SELECT statement which is sent to SQLite.

While it works, this draft implementation lacks a number of features.
Here are the most prominent ones I'm currently aware of:
* Data not editable (or only via the Edit Dialog) because it isn't
  transformed back yet.
* More display formats needed; maybe customizable ones, too.
* No indication in the UI for which columns a format has been set.
* Could _maybe_ be integrated into the import/export etc. for optional
  use.
2015-07-06 18:28:30 +02:00
Martin Kleusberg
748f06df93 Save filter settings and sort order for each table
When changing the table in the Browse Data tab we used to remember the
column widths for that particular table. When changing the tab and then
coming back or when pressing the refresh button we used to save the
filters (but not for a table change). The sort order wasn't remembered
at all. I think this behaviour doesn't make any sense.

With this patch we remember column widths, sort order and filter values
for each table individually and restore it when the user switches back to
the table. All the settings are handled the same way and as much
information as possible is stored. It gets also saved in our project
file format.
2015-07-04 23:12:30 +02:00
Martin Kleusberg
39a49e33c2 Allow clicking cells with foreign key in order to jump to referenced cell
Add a tooltip to the database browser when you hover a cell with a
foreign key set in order to show the referenced table and column.

When clicking on such a cell while holding the Ctrl and Shift key (only
one of them won't work because they are for multiselection and Alt
doesn't do the trick on my system because it's just for grabbing and
moving the window) try to jump to the table and row which is referenced
in the clicked cell.

See issue #192.
2015-06-21 23:59:45 +02:00
schdub
220c5ba75b plot: lineType and pointShape options 2015-05-19 23:37:32 +03:00
Martin Kleusberg
75483d0136 Add a 'Copy Create statement' popup action to Database Browser tab
See issue #140.
2015-05-18 19:09:30 +02:00
schdub
b5c1c7b0ab enhancement: preserve field filters when switching tab 2015-05-11 23:35:59 +03:00
Martin Kleusberg
dd8dd4852d Add Browse Table popop action to Database Structure tab
In the Database Structure tab of the main window, add a new action to
the popup menu which open upon right clicking the tree view to allow
directly changing to the Browse Data tab with the current table being
selected automatically.

See issue #246.
2015-04-23 22:32:23 +02:00