Commit graph

633 commits

Author SHA1 Message Date
eelke
3fdd42ffb2 Collection of small fixes and improvements
- Selections stay clearly visible when focus changes to other widget
- Autoresize columns
- Table properties view now correctly allows selection in both columns and draws selection correctly
- Tables can be sorted again and now by any column
2019-02-09 14:59:33 +01:00
eelke
3fb88edab2 Added icon for "normal" indexes 2019-02-09 11:36:37 +01:00
eelke
42432b06a9 Restructuring catalog tabs
- Moved detail tabs of table to their own components
- Table list has become seperate component on seperate tab
- Table list does not use designer anymore
- Moved sequences and functions tabs into the catalog inspector
2019-02-09 11:36:22 +01:00
eelke
a704332342 Work on plugin mechanism
Context actions have become normal actions in the pluginwidget so the widget knows abot them and
can easily do things like enable/disable.
2019-02-08 10:10:11 +01:00
eelke
eca8841427 Added shortcuts to the Execute, Explain and Explain Analyze context actions. 2019-02-07 16:53:48 +01:00
eelke
db735363f7 QueryResultModel no longer truncates long strings to improve display performance.
Optimization of display is now done by PgLabItemDelegate. This also makes it easier in future commit
to enabled showing complete string and correctly exporting the data.
2019-02-07 16:48:30 +01:00
eelke
be2ffd7ef9 Bunch of renames to reduce confusion. 2019-01-31 19:31:17 +01:00
eelke
cbb2f897aa Define toolbar locations for the actions of the QueryTool module. 2019-01-31 19:25:54 +01:00
eelke
6acf70660b Fix: hang in syntax highlighter
SqlLexer was changed to correctly report end of file. Which this code didn't handle
2019-01-29 20:36:07 +01:00
eelke
27fde22d54 Fix: Cancelling the password prompt of the PSK database doesn't keep endlessly asking for password. 2019-01-29 19:52:50 +01:00
eelke
ecae0464f9 Fix: openening not accessible database crashes program.
OpenDatabase::createOpenDatabase now uses QException derived exception to report failure.
This makes it possible to catch the exception in a background thread and rethrow it when the Future is read.
Which makes it possible for the database window to properly report the problem.
2019-01-29 19:42:32 +01:00
eelke
3820fb2600 RunControllableTask now also properly catches Exceptions and reports them through the Future. 2019-01-29 19:39:21 +01:00
eelke
39ac8ef02d Some work on parser, not used yet. 2019-01-28 20:53:10 +01:00
eelke
3b482c1c73 Fix lexer for empty input. 2019-01-28 20:52:39 +01:00
eelke
077fae50af fix some warnings 2019-01-28 20:52:04 +01:00
eelke
7c32d67196 Default to no wordwrap. 2019-01-06 21:38:11 +01:00
eelke
407304294a Analyzer didn't like this. 2019-01-06 21:37:57 +01:00
eelke
bcf0cf1c6c Merge branch 'plugin-architecture' 2019-01-06 17:08:50 +01:00
eelke
e5dd27ff1a Added several actions that were left out while switching to module.
- save copy as
- export
- copy as c string
- copy as raw cpp string
2019-01-06 17:07:59 +01:00
eelke
3e4917428d TablesPage is now CatalogInspector and is now a module. 2019-01-06 10:11:48 +01:00
eelke
d3c85722c7 Remove unneeded headers and code. 2019-01-06 08:17:37 +01:00
eelke
d6fce5c31f Simplified LWidgetAction initialization 2019-01-06 08:17:17 +01:00
eelke
f4f2474a81 Moved definition of widget instance actions to the module so other parts of the system can no about them.
The plugin system will create the Action objects and bind them to the specified slots of the
specific widget instances.
2019-01-05 19:58:23 +01:00
eelke
d0c4dabe8b DatabaseWindow has no knowledge more of the existence of QueryTab but user can still create and use them within that window. 2019-01-05 11:12:47 +01:00
eelke
fd603a7434 Moving things from the application specific DatabaseWindow to generic LMainWindow (Leon framework)
To achieve flexibility the getDatabase call on the context which was application specific to
has been replaced with a type based object registry.
2019-01-05 09:49:12 +01:00
eelke
4a78330153 Proof of concept for binding signal to passed in slot name. 2019-01-04 18:46:02 +01:00
eelke
a5f4e4c54f Create standard close action 2019-01-04 18:29:22 +01:00
eelke
4c3a2df65c Fix plugin macro that added quotes to things that were already strings causing identifiers to not match.
+ some debug logging
2019-01-01 14:35:22 +01:00
eelke
d86d278350 Remove designer DatabaseForm generating widgets from code.
Large part of toolbar and menu missing these will be recreated through plugin system.
2019-01-01 14:34:14 +01:00
eelke
dc8a052544 Basic concept of MenuAction is working
Module can register action
Window adds this action to its menu
Clicking the menu item for the action has the expected result
But menu structure still needs work (everything is now put into one dropdown menu)
2019-01-01 11:15:16 +01:00
eelke
f130c426a1 Fix error on pg96 because of wrong minimum version 2019-01-01 11:04:48 +01:00
eelke
eec75e28f9 Remove unused ApplicationWindow 2019-01-01 08:49:32 +01:00
eelke
a29671593e Simplified module registration 2019-01-01 08:26:20 +01:00
eelke
456180325e Code cleanups 2018-12-31 15:45:53 +01:00
eelke
b0cd47ef46 Extended the plugin system to allow for dynamic runtime bindings between modules.
As a test implementation, this allows the TablesPage to open a CrudTab for a table/view without
the need for TablesPage, CrudTab and DatabaseWindow to know anything about each other.
2018-12-31 15:26:36 +01:00
eelke
f996703937 Corrected some usage of QueueTask that was already broken as QueueTask is defunct. 2018-12-31 15:19:16 +01:00
eelke
1da8ef7407 Remove all knowledge of DatabaseWindow from CrudTab (unwanted dependency) 2018-12-31 09:51:52 +01:00
eelke
cc4f309c0f Completed removal of ASyncWindow 2018-12-31 09:40:25 +01:00
eelke
424fb5984d Fixed loading of data in CrudModel. 2018-12-31 09:33:34 +01:00
eelke
15bee33076 Made step to remove ASyncWindow in favour of usage of Future and FutureWatcher.
This should allow concurrency in the plugins to be independent from their container.

Contains also some work on the system for registering plugins.
2018-12-30 15:46:15 +01:00
eelke
a54a063c13 DatabaseWindow no longer has to pass the config to QueryTab, QueryTab can now init itself from the supplied context. 2018-12-30 15:44:05 +01:00
eelke
2a7e505dbf Made a step in removing knowledge of DatabaseWindow from QueryTab as an effort to move
in the direction of a plugin system.

DatabaseWindow now passes a Context to QueryTab and other pages that give those pages an
API for passing information up the system without knowing anything about the sytem.
2018-12-29 18:59:54 +01:00
eelke
f6ea2ce0a6 Introduced own version of QTableView called PgLabTableView that has some other defaults. 2018-12-29 17:54:54 +01:00
eelke
f0ffcf4abd TablesTableModel now also shows (materialized) views en foreign tables. 2018-12-29 11:19:12 +01:00
eelke
a0579538df The tablespage now has a namespace filter allowing it to be used for
a pg_catalog and information_schema tab.
2018-12-29 10:56:24 +01:00
eelke
d129876d06 CodeEditor improvements
- Block (un)indent (works for tabs and or spaces)
- Block indent inserts spaces when m_useTabs == false
- Tabsize based on number of chars (instead of pixels) default size is now 4 chars
- Change fontsize with Ctrl + [-|+|=] (= is same key as +)
2018-12-28 19:43:55 +01:00
eelke
69473d65d2 Renamed MainWindow to DatabaseWindow so the name tells us the functionality provided by the window.
MainWindow was really a bad name as the app doesn't have a main window.
2018-12-28 12:55:11 +01:00
eelke
437736a023 Tab with list of sequences and create sql for selected sequence. 2018-12-28 08:51:02 +01:00
eelke
769307c821 Added the trigger definitions to the sql for a table. Also tuned the formatting of the trigger definitions a bit. 2018-12-27 12:15:37 +01:00
eelke
4ec4e02411 The SQL tab for a table now also shares the grant/revoke statements for that table (but not yet any column level grants). 2018-12-27 12:07:19 +01:00