65 Commits

Author SHA1 Message Date
Denis Rouzaud
2454e56b32 sipify gui attribute table 2017-06-09 10:16:08 +02:00
Denis Rouzaud
85f3b81b55 remove double spaces in sip files
fix indentation
2017-05-03 08:02:14 +02:00
Denis Rouzaud
7d459149c7 [sip] align missing bits and replace nullptr by 0 2017-05-02 08:09:53 +02:00
Denis Rouzaud
7b60d89d6c align pointer and reference in sip files batch 2 2017-05-01 20:00:51 +02:00
Nyall Dawson
6cd97d8bcb Avoid unnecessary reloads layer for attribute table
On behalf of Faunalia, sponsored by ENEL
2017-03-05 12:06:17 +10:00
Denis Rouzaud
7812d4fb17 remove the-prefix from source code
this might result in variables having the same name as some methods
2017-02-21 18:14:58 +01:00
Nyall Dawson
b5480633e4 Standardise names for static variables
All non-const variables are prefixed with "s", all const
statics are ALL_CAPS
2017-01-14 16:40:24 +10:00
Denis Rouzaud
6c74e4ea5d spelling fixes 2017-01-12 22:01:50 +01:00
Matthias Kuhn
928f360c77 Make attribute table aware of disappearing field formatters 2016-12-20 01:20:08 +01:00
Harrissou Sant-anna
f9578bf60b Replace selectedFeaturesIds by selectedFeatureIds 2016-12-07 00:19:11 +01:00
Matthias Kuhn
a6eb7b6281 Convert action ids to uuid 2016-11-16 09:33:19 +01:00
Matthias Kuhn
08d350c0cb Fix bindings and docs 2016-11-16 09:33:19 +01:00
Matthias Kuhn
5b4a88f8e0 [feature] Add layer scoped actions
Within the attribute table, there is a new button to trigger actions
which are not based on individual features but instead on the whole layer.
Normally they will perform actions based on all features or the selection.

In addition to this, a lot of cleanup has been done.
2016-11-16 09:33:19 +01:00
Hugo Mercier
67c05b51c2 Fix some /Transfer/ annotations 2016-09-23 15:35:37 +02:00
Matthias Kuhn
b83aab7d74 Save attribute table sort order persistently
Fix #15235
2016-07-07 17:35:55 +02:00
Juergen E. Fischer
92bfcd4802 update QgsAttributeTableFilterModel sip bindings 2016-06-24 01:04:10 +02:00
Matthias Kuhn
3fcabc96fe Fix action column widget rendering artifacts
This creates an action column widget when the widget is rendered for the
first time.
The original approach was to create an image and render the buffered
image onto the cell until the first mouse action triggered the creation
of the real widget. This led to several rendering problems and triggered
some strange ownership issues with crashes under certain situations.

Followup a05b2ad9
2016-06-14 11:15:15 +02:00
Nyall Dawson
4c1812a9f6 [FEATURE] Remember widths for attribute table columns
If you resize columns, the width will be restored when next
opening the attribute table for that layer.
2016-06-03 12:24:28 +10:00
Nyall Dawson
6c6a177756 Cosmetic fixups to organize table columns dialog 2016-06-02 13:18:55 +10:00
Blottiere Paul
3da3cf18b5 [FEATURE] add copy cell content action in attributetable context menu 2016-06-02 11:17:50 +10:00
Nyall Dawson
3a005cda36 Indentation 2016-06-02 08:50:27 +10:00
Denis Rouzaud
f20e28d98f allow to hide/show all columns in attribute table config 2016-06-01 11:56:54 +02:00
Nyall Dawson
ca5c7e2cd4 [FEATURE] Form based select/filter in attribute table
This commit adds a new mode to the attribute table dialog for searching
and filtering features. When activated (using a button on the toolbar
or by pressng CTRL+F), the dialog will switch to form view and all
widgets are replaced with their search widget wrapper variant.

Alongside each widget is a tool button with options for controlling
the search/filter behaviour for that field, eg "equal to", "not equal
to", "is null", "greater than", etc.., with the options presented
matching themselves to the corresponding field and widget type.

New buttons appear at the bottom of the form for either selecting
matching features (with options for add to selection/remove from
selection/select within current selection) or filtering features
in the table (with options for adding features to a current filter
or further restricting a current filter).

Sponsored by SIGE
2016-05-24 00:26:14 +10:00
Matthias Kuhn
d07d9edda6 Allow sorting attribute table by expression 2016-05-16 11:16:13 +02:00
Matthias Kuhn
d088fe072d Fix action widget on attribute table 2016-05-11 09:22:49 +02:00
Matthias Kuhn
f03a94f650 Fix crash 2016-05-02 18:25:58 +02:00
Matthias Kuhn
c369aabac4 Doxygen and sip bindings 2016-05-02 18:25:57 +02:00
Matthias Kuhn
dd88fa99f3 [feature] New configuration options for attribute table
* Allow reordering the attribute table columns
 * Allow adding a new column to trigger an action to the attribute table
2016-05-02 18:25:57 +02:00
Matthias Kuhn
ff4ad50809 Rename QgsFilterTableFields to QgsOrganizeTableColumns 2016-05-02 18:25:57 +02:00
Stéphane Brunner
d4ccc77f27 Add a possibility to hide a column in the attribute table 2016-05-02 18:25:56 +02:00
Nyall Dawson
66b51d4a81 [FEATURE] Edit attributes of multiple features simultaneously
This change allows the attributes of multiple features to be edited
simultaneously. It is enabled when the attribute table dialog is in
"form mode", via a new "multi edit" button on the toolbar.

In this mode, attribute value changes will apply to all selected
features. New widgets appear next to each editor widget allowing for
display of the current multi-edit state and for rolling back changes
on a field-by-field basis.

Changes are made as a single edit command, so pressing undo will
rollback the attribute changes for all selected features at once.

Multiedit mode is only available for auto generated and drag and
drop forms - it is not supported by custom ui forms.

Sponsored by Kanton Basel Stadt
2016-04-18 15:15:11 +10:00
Nyall Dawson
c3a57434d9 Fix clazy 'pass small and trivially-copyable type by value' warnings 2016-02-02 19:47:21 +11:00
mhugent
3febba279d Merge pull request #2619 from mhugent/zoom_to_feature
[FEATURE]: Zoom to feature with right-click in attribute table
2016-01-12 16:20:17 +01:00
Marco Hugentobler
36c628336c Add doc 2016-01-05 09:00:58 +01:00
Nyall Dawson
881074b194 Boost coverage of SIP bindings
Now all classes and members are either exposed to bindings or marked
as "not available in Python bindings" in the docs.

Drop test thresholds to 0. Now it should be much easier to determine
what missing members have been added which are causing test
failures.
2016-01-05 11:16:15 +11:00
Marco Hugentobler
1519b3e041 Move zoomToFeature to QgsDualView and add checks for null geometries / geometryless layers 2016-01-04 16:29:49 +01:00
Marco Hugentobler
f815ebc86b [FEATURE]: Zoom to feature with right-click in attribute table 2015-12-28 12:35:19 +01:00
Matthias Kuhn
e76949b2a0 More sip bindings 2015-12-01 11:45:44 +01:00
Nyall Dawson
719ff408a5 Add some missing SIP bindings, comment some classes as not available
in Python
2015-11-10 17:08:27 +11:00
Juergen E. Fischer
b5794b2f2d sip coverage fixes:
* make sip coverage test aware that there are less classes where QSci sip
  headers are not available
* exclude properties from members
* fix QgsFeatureIds typedef (fixes missing signal
  QgsVectorLayer.featuresDeleted and others)
* add missing notes for PyNames
* include some missing new methods in bindings
2015-11-08 19:30:39 +00:00
elpaso
35d09825bf Added new method to bindings 2015-11-04 10:37:43 +01:00
Nyall Dawson
f1633a1796 Change all signals to use const refs for non trivial objects 2015-10-26 22:46:25 +11:00
Nyall Dawson
c49b5b777f Change a lot of arguments to const references in core/gui
Rationale:
- there was a lot of large objects passed by value, so potentially
there's a speed bump from this
- even for implicitly shared classes like QString/QList there's still
a (small) cost for copying the objects when there's no reason to
- it's the right thing to do!
2015-10-07 12:02:04 +11:00
Matthias Kuhn
1e6f673a23 Update email address 2015-08-30 13:00:15 +02:00
Nyall Dawson
ac6c32421e Coverity uninitialized member fixes 2015-08-28 13:06:34 +10:00
Nyall Dawson
9d984b163e Immediately apply conditional formatting changes to table 2015-08-21 10:04:22 +10:00
Nyall Dawson
6a3357fab8 Fix warnings, add missing sip bindings 2015-08-21 05:45:49 +10:00
Nyall Dawson
39f4ed526d Fix build 2015-05-30 08:57:55 +10:00
Nyall Dawson
42da218626 Fix memory leaks 2015-05-30 08:53:19 +10:00
Matthias Kuhn
8eca38ca5f Attribute table performance when deleting features
This fixes performance issues with the attribute table visible when deleting a
large number of features.

The attribute table tries to behave smart in the following way:

 * It tries to remove only the deleted rows as long as they are in one or a few
   single blocks
 * If there are more than 100 rows to delete and it starts to delete blocks
   of a size smaller than 10 it assumes that the selection to delete is widely
   distributed and that a reload of the whole model is less expensive than a
   differential update.

Fix #10167
2015-05-27 22:28:23 +02:00