Commit graph

188 commits

Author SHA1 Message Date
eelke
c2c01cf431 Generic GRANT/REVOKE generation from ACL's complete.
Moved the owned concept to PgServerObject as it is needed for the generic
acl functionality that is also in PgServerObject.
2018-12-25 14:25:15 +01:00
eelke
93c8b49f61 PgServerObject now contains a list of acl's for the object so all the different objects
can use this implementation.
2018-12-24 07:51:27 +01:00
eelke
a88af1ac11 Improved connection error handling.
Just returning a boolean is too limiting. Using expection instead to easily pass on error message.
2018-12-23 08:43:43 +01:00
eelke
6a2c8ec5e0 Do not use flat_set anymore gives compilation issues.
Not worth the time solving the issue without having prove of a clear benefit of
using flat_set over unordered_set.
2018-12-23 08:41:33 +01:00
eelke
f692569d27 Added the list of installed language to the catalog. The ProcTableModel now returns the owner name and language name instead of the oids. 2018-12-17 21:51:14 +01:00
eelke
c0a11f9b3b Functions page now shows sql for selected function.
The actual SQL needs some further checking.
2018-12-16 20:40:04 +01:00
eelke
31a77a1742 Triggers and Columns page now automatically resize columns to fit contents. 2018-12-16 20:38:57 +01:00
eelke
880903db5f Several fixes of warnings/clang tidy 2018-12-16 15:38:32 +01:00
eelke
2f527a8380 Sort the list of columns for a table by attnum (creation order). 2018-12-16 12:49:44 +01:00
eelke
2aef965787 On the tables page the column tab is now selected by default. 2018-12-16 12:47:31 +01:00
eelke
e75b0f1a71 Added CollationModel + factory for editing and added to EditTableWidget 2018-12-16 11:35:39 +01:00
eelke
f0c1035378 Reorganize files in pglablib
The enitities and containers of the catalog now go into catalog subfolder
Models go into model
2018-12-16 11:31:33 +01:00
eelke
387c664284 EditColumnTableModel, return typename for displayrole for type column and oid for edit value. 2018-12-16 09:35:57 +01:00
eelke
44358d198a PgType now inherits from PgNamespaceObject and PgOwnedObject 2018-12-16 09:24:27 +01:00
eelke
742fd0a4d3 SelectionEditorFactory + ItemModel + ItemModelFactory combination is working
in new EditTableWidget

(EditTableWidget is very much WIP)
2018-12-15 20:27:40 +01:00
eelke
e44f73166f SelectionEditorFactory for creating combobox selections for use in QTableView.
TypeSelectionItemModelFactory to use the TypeSelectionItemModel with above factory.
2018-12-15 15:28:33 +01:00
eelke
f8d61b61f4 Added capability to create editors from an editor factory to PgLabItemDelegate 2018-12-15 12:11:23 +01:00
eelke
62c6ad5bfb Improved support from removing rows in crud tabs.
It can handle now complex selections and reports back errors encountered
when removing the rows fails.
2018-12-15 11:24:58 +01:00
eelke
950fea873c Fix QtCreater error
(msvc accepts it but it is an error according to gcc and clang)
2018-12-15 11:19:32 +01:00
eelke
9e645db1a8 Fixed some small details the analyzer was complaining about. 2018-12-09 21:10:35 +01:00
eelke
255b2ec970 CrudModel::removeRows now works for count > 1
This allows for efficient removal of blocks of rows. If you would remove
row by row the repeated beginRemoveRows and endRemoveRows calls will generate
additional overhead.
2018-12-08 13:55:43 +01:00
eelke
266e479344 fkey field is not set for primary keys.
Caused no problems because it just didn't reserve space. So the only side effect
was slightly reduced performance.
2018-12-08 08:47:02 +01:00
eelke
498233d58c WIP: SQL for creating table and related objects 2018-11-30 18:41:38 +01:00
eelke
57217974f4 New column page
Shows SQL for columns ALTER TABLE ... [ADD|DROP] COLUMN combines a selection
of multiple columns into a single alter table.
Show collation in list of columns.

(order of columns isn't what is should be but that should maybe be fixed
by a generic column selection and ordering mechanism that knows what the
default sort should be)
2018-11-29 20:21:36 +01:00
eelke
73c4cf4790 Rework of catalog objects. Several of them are now inheriting from common
base classes that implement common functionality.
2018-11-25 19:45:06 +01:00
eelke
840af1e0a9 WIP: Added page showing list of functions.
Only list is shown, still working on details.
2018-11-25 09:06:01 +01:00
eelke
7db859737a Use catalog instead of catalogue consistently 2018-11-25 09:05:01 +01:00
eelke
52011a9842 Updating of detail tabs besides list of tables works correctly again.
Had stopped working because the catalog now behaves a little different,
returning nullptr instead of an invalid element.
2018-11-18 20:24:27 +01:00
eelke
fcb191f2cc Overview of triggers extended with function name and arguments.
Did a lot of refactoring on the catalog to keep things clean.
2018-11-18 19:30:45 +01:00
eelke
f2639b9ea5 Link with new builds of botan
We now have seperate debug and release builds.
2018-11-17 19:33:47 +01:00
eelke
be0064f730 The codegen now can properly lookup array types.
Array type lookup failed previously because the typemapping class was
not yet receiving the list of types from the database. Fix was to pass
this data
2018-11-17 09:47:50 +01:00
eelke
287073afdc Added remember option to password dialog.
Made to remember password of password manager for given time but not completely sure
how to implement that yet.
2018-11-15 19:24:29 +01:00
eelke
f432c2aa68 bugfix: editing of table contents didn't work correctly after reloading the data
Was caused by then pending and modified rows list not being reset so they were out
of sync with the data.
2018-11-14 19:17:29 +01:00
eelke
24751f81dd Improved PasswordPromptDialog
- can now also set caption
- can set initial state of save option
- improved size and spacing
2018-11-11 12:30:53 +01:00
eelke
634345b38f In the column list show foreign key constraint 2018-11-10 13:36:36 +01:00
eelke
8836611b62 Replace dubious auto conversion with explicit conversion. 2018-11-10 11:37:17 +01:00
eelke
f629e48a85 Position of error marks is adjusted for selection.
Close: #20
2018-11-10 10:59:52 +01:00
eelke
e36924c087 Passwords are now saved in a password manager.
The password manager uses strong encryption using a key derived from the passphrase using
scrypt key strengthening algorithm. This ensures encryption is performed using a strong key
and that brute forcing the passphrase is time consuming.

If the user loses his passphrase no recovery is possible.
2018-11-08 21:50:49 +01:00
eelke
2230a4bd61 Lot of password related changes all over the place.
Password is no longer saved with the connection list.
Password is not entered along with other connection credentials.
Password is now asked for when required.
Still working on saving the password and auto retrieving it from the password manager.
2018-11-04 11:44:40 +01:00
eelke
1ae9a1151a All the detail tabs on the TablePage now update when the sort order
of the table list changes.
2018-10-21 13:47:38 +02:00
eelke
d4d8316917 Collection of minor code improvements.
Program should still behave exactly the same.
2018-10-21 13:46:58 +02:00
eelke
38ae5f50e4 Moved code from TablesPage into seperate PropetiesPage component
Clears up the TablePage and makes rhe propertypage reusable.
2018-10-20 10:58:42 +02:00
eelke
b8cfb223be Switch of wordwrap in CodeEditor and SqlCodePreview 2018-10-08 18:43:56 +02:00
eelke
2a75e86102 Added listing of triggers for selected table (not completely finished).
Used slightly different approach. This tab is fully build in source code
using subclasses to adjust behaviour of widgets for reuse in the other tabs.
Uses custom proxy model for filtering triggers for correct table and supporting
out of the box sorting by QTableView.

SqlCodePreview: QPlainTextEditor which sql highlighter and in readonly mode but allows copy.
2018-10-07 19:40:06 +02:00
eelke
0c3bb27e58 Further improvements to codegeneration the defaultcpp config is now called the PgLab
config as it is very specific to the PgLab codebase.

More hard programmed templates moved out of codebuilder to the language config.
2018-09-19 09:55:43 +02:00
eelke
780d912cd1 Adjusted project files for new boost version.
This should be handled differently the location of boost should not be baked into the project files.
2018-09-18 20:24:54 +02:00
eelke
f5145f36ed wip: codegenerator, basic widget present for showing the generated code and specifying
parameters. Some code is also generated but it is not complete yet.

minimum still required
- field assignments
- properly format and escape the query string
2018-09-18 11:54:43 +02:00
eelke
8f4845d4d2 Lot of code for generating code. Working on unit tests. 2018-09-09 21:04:23 +02:00
Eelke Klein
8b7bbec807 Flexible models 2018-09-02 10:30:30 +00:00
eelke
50cb21b6f9 The list of indexes on a table now also shows the access method (ie btree) 2018-08-25 18:11:12 +02:00