Commit Graph

448 Commits

Author SHA1 Message Date
Martin Kleusberg
1e787b4d22 sqbpro: Allow relative database file paths
When the path to the database file given in a project file doesn't exist
try parsing it relative to the path of the loaded project file. This
makes it possible to move project and database file around together
without need to manually correct the path in the project file.

See #36.
2014-06-11 21:01:06 +02:00
Martin Kleusberg
daf12d413c Remove unnecessary overloaded function 2014-06-08 12:48:53 +02:00
Martin Kleusberg
8c8187740d MainWindow: Increase default size, tabify docks by default
Increase the default size of the main window a bit.

Move the SQL log dock to the right side and tabify it with the plot
dock. This way there is much more space for actual information by
default.

The idea behind both changes is to make it easier for first time users
to find their way around and offer them a more appropriate window layout
for the usual tasks. The layout is still entirely configurable and
non-first-time users are not affected at all.
2014-06-07 00:14:50 +02:00
Martin Kleusberg
62622ae8e8 Add support for basic project files
This add support for saving and loading of SQLiteBrowser project files.
As of now these files contain a reference to the used database file,
store some window and widget settings as well as the content of the SQL
tabs.

Note that while working this is a first draft only. Especially the
parsing code still might contain a bug or two and there is a lot more
information to be added to these files later (like filters, plot
settings, etc.).

Also note that the main intention behind these project files was to make
the life of users easier while not getting into the way of those who don't
need them. The program still remains a database browser and doesn't
become a visual database studio thing.
2014-06-06 23:32:35 +02:00
Martin Kleusberg
5e1169b43d MainWindow: Keep column widths for each table in Browse Data tab
Store the column widths of the table view widget for each table/view
individually and restore them when changing back to the table/view.
2014-06-01 19:47:20 +02:00
Martin Kleusberg
297bfbce0a Move filter header from window to table widget and show sort indicators
Move the FilterTableHeader object from the MainWindow to the
ExtendedTableWidget class because it actually is a part of the latter,
not the former.

Show sort order arrows in the table header of the Browse Data tab after
clicking it.
2014-05-25 14:35:56 +02:00
Peinthor Rene
80d5c1a117 qt5 different including hit me again 2014-05-25 13:33:11 +02:00
Peinthor Rene
f7315f5f90 add a few more help menu entries
website, wiki, bug report
2014-05-25 12:58:01 +02:00
Peinthor Rene
b5e5d3b0c5 updater: show the url we got from the release file 2014-05-16 18:29:13 +02:00
Peinthor Rene
1fdf3e4fd4 updater: exit a possible redirect loop 2014-05-16 18:24:26 +02:00
Peinthor Rene
edab586c08 plot: rescale to all drawn axis
I did miss this call on the customplot widget
2014-05-16 18:02:32 +02:00
Peinthor Rene
39ab238ddd plot: only select a color on double click
otherwise we will get some random globalcolor from qt
2014-05-16 17:49:42 +02:00
Peinthor Rene
404274be32 plot: keep the color between model updates 2014-05-16 17:32:25 +02:00
Peinthor Rene
466d78cf53 Fix missing include, worked with qt5 2014-05-14 07:26:42 +02:00
Peinthor Rene
da9f24836a plot: axis color is now chosen on activating an Y axis 2014-05-13 21:19:08 +02:00
Peinthor Rene
75b519df37 plot: no selection for tree plot columns widget 2014-05-13 21:18:22 +02:00
Martin Kleusberg
ddda08b673 Make sure the SQL editor has got the focus after creating a new tab
Focus the SQL editor of a newly created tab to make sure it receives
keyboard input without need to click it first. On my system this wasn't
the case after starting the application, i.e. the first time the SQL tab
is used.
2014-05-11 13:46:28 +02:00
Martin Kleusberg
770a37928b Plot: Suggest file formats in save dialog 2014-05-11 12:37:46 +02:00
Peinthor Rene
4ed5d9a778 plot: add a button to save the current plot as different file formats 2014-05-10 09:23:16 +02:00
Peinthor Rene
2055bc6b26 plot: fix crash with selecting column out of range 2014-05-09 17:51:55 +02:00
Peinthor Rene
9bd3cf1655 plot: add some comments 2014-05-09 17:29:00 +02:00
Peinthor Rene
062f2df775 plot: reselect columns after model change 2014-05-09 17:28:45 +02:00
Justin Clift
62b2b1738d Adjusted rp-/sqlitebrowser to sqlitebrowser/sqlitebrowser 2014-05-01 14:55:23 +01:00
Martin Kleusberg
309204b01a Merge branch 'master' of github.com:rp-/sqlitebrowser 2014-04-29 20:28:20 +02:00
Martin Kleusberg
a1f506bb14 Fix not working filters.
Closes issue #46.
2014-04-29 20:27:20 +02:00
Peinthor Rene
26a23595b4 updater: Fix a crash and handle redirects 2014-04-28 22:12:17 +02:00
Peinthor Rene
fdbda563d4 plot: only allow X column to be selected once 2014-04-23 19:54:07 +02:00
Martin Kleusberg
9e73f31a18 Reset plot dock after closing a DB
Reset the new plot widget after closing a database.
2014-04-22 22:28:01 +02:00
Martin Kleusberg
d1ed2d151f Update the recordset label in the Browse tab after closing a DB
Reset the recordset label in the Browse Data tab of the main window
after closing a DB file.
See issue #44.
2014-04-22 22:21:46 +02:00
Martin Kleusberg
a7110ea0fc Clear the tree widget in the Structure tab when after closing a DB
Clear the tree widget in the 'Database Structure' tab of the main window
after closing a database.
See issue #44.
2014-04-22 22:08:27 +02:00
Peinthor Rene
956dde9a59 plot: wrong date format 2014-04-19 22:44:28 +02:00
Peinthor Rene
88ccd48173 plotting: add a simple mechanism to visualize data
added a plotting dock, where you can select x and y axis
and it will draw a chart out of it
2014-04-19 22:19:32 +02:00
Martin Kleusberg
30cef84f09 Add CSV export to context menu of the Database Structure tab
Add an entry for the CSV export to the context menu of the Database
Structure tab of the main windows as well which preselects the currently
selected table.

When opening the CSV export dialog via the standard menu also preselect
the currently selected table when the Database Structure tab is active.
2014-02-14 16:40:44 +01:00
Martin Kleusberg
4cd5131d1a ExportCsvDialog: Set table selection to current table in Browse Data tab
When called while the Browse Data tab of the main window is selected
also select the current table or view in the ExportCsvDialog.

Sort the table names in the combobox of the ExportCsvDialog.
2014-02-14 16:22:51 +01:00
Peinthor Rene
5a9b1672a7 qt5: include QMimeData 2014-02-13 23:52:35 +01:00
Martin Kleusberg
6ab8cf3dd3 MainWindow: Update execute query table view when no results returned
Also update the table view widget and the status message in the Execute
Query tab of the main window when the query was valid but returned no
results.

Fixes #38.
2014-02-07 20:14:17 +01:00
Peinthor Rene
1e2ee439ea fix memory leak 2013-12-24 20:01:18 +01:00
Peinthor Rene
be1ba804c6 add a version check feature
this is only enabled on windows as there is no package manager handling the versions
and we don't want users to stay on old versions forever
2013-12-02 16:52:48 +01:00
Peinthor Rene
94819f22e2 for loop pre-increment optimization's and a slight syntax style change 2013-09-20 14:49:07 +02:00
Peinthor Rene
1bac11348f include cleanup 2013-09-19 22:55:35 +02:00
Martin Kleusberg
c01a890992 MainWindow: Support deleting multiple rows at once
When multiple rows are selected in the Browse Data tab of the main
window and the delete record button is clicked delete all selected rows
and not just one of them.
2013-09-07 12:15:56 +02:00
Martin Kleusberg
427581f51d MainWindow: Don't cancel after one INSERT or the like in SQL tab
When executing multiple INSERT/UPDATE/... statements don't cancel after
the first one. Also don't try to load them into the SqliteTableModel
class - it won't work and just generates a warning.
2013-07-19 22:13:08 +02:00
Martin Kleusberg
64a938716f Add custom model for tree view in Database Structure tab
Use a custom model for the tree view in the "Database Structure" tab in
the main window, i.e. change from a QTreeWidget to a QTreeView and do
all the item management stuff manually. This might add some code and
complexity but also offers some more flexibility for us.
2013-07-19 20:36:48 +02:00
Martin Kleusberg
b4ce93c6e2 MainWindow: Don't show error message when cancelling extenstion loading
Don't show a file-not-found message box when cancelling the open file
dialog to select a SQLite extension.
2013-06-17 21:43:50 +02:00
Martin Kleusberg
1287a2cf6f MainWindow: Further simplification
Looking at this now this can be simplified even further.
2013-06-12 20:22:07 +02:00
Martin Kleusberg
8947579590 MainWindow: Remove unneeded code in fileExit()
There is no need to check for changes when exiting and showing a message
box in the main window as exactly the same code is also run in
DBBrowserDB.
2013-06-12 20:18:51 +02:00
Martin Kleusberg
7a81189d50 PreferencesDialog: New settings for font size of SQL editor and log
Add two new settings to allow changing the font size inside the SQL log
and the SQL editor.

Increase the default font size from 8 to 9 - better a bit too big on
some systems than too small on others.

Also do some restructuring in the MainWindow to avoid duplicate code to
reload settings.
2013-06-07 20:57:58 +02:00
Martin Kleusberg
720ef9bc95 Also load SQLite extensions when importing a SQL file into a new DB
When creating a new database file for an SQL import load the default
SQLite extensions - just like it's done when creating a new database the
normal way.
2013-06-05 21:23:48 +02:00
Martin Kleusberg
cbd81de88b Remove the DBBrowserField class
Remove the DBBrowserField class and change all parts of the program
which used to use this class to work with sqlb::Field instead.
2013-05-31 16:50:13 +02:00
Martin Kleusberg
a1b72c5eef Extend the entire savepoint logic to allow multiple active savepoints
Allow multiple savepoints in DBBrowserDB, i.e. setRestorePoint() doesn't
simply return if the DB is already set to dirty but creates an
additional savepoint.

Track the names of all savepoints which have not been either saved or
reverted yet.

Finally, and that's the whole point of this commit, change the savepoint
logic of the EditTableDialog. We used to have a transaction started when
opening a database which was only committed when the file was closed
again. This way the EditFileDialog could savely create a savepoint when
being opened and just release it when OK was clicked or revert to it
when cancel was clicked. Getting rid of the transaction broke this
logic. The dialog still worked but as the savepoint was released when
the changes were applied all changes made via the dialog were
immediately committed to the database. So clicking the revert button had
no effect on those changes. This is at best an unexpected behaviour but
could also be a problem when some changes are reverted while others
aren't. So, having the option now of keeping multiple savepoints opened
this problem can be fixed by just creating a new savepoint every time
the dialog is opened, reverting to it when it is cancelled and _not_
releasing it when OK is clicked.

I hope this works!
2013-05-23 17:41:16 +02:00