137 Commits

Author SHA1 Message Date
Nyall Dawson
7972092311 Update docs, sip 2017-07-03 14:21:40 +10:00
Nyall Dawson
4f21afac0f Shell layout designer dialog 2017-07-03 12:14:56 +10:00
Denis Rouzaud
30a7e44d57 [sip] handle Deprecated annotations
some additional fixes in headers too
2017-05-24 09:49:46 +02:00
Denis Rouzaud
694c8113e5 sipify gui part 1 2017-05-24 09:49:46 +02:00
Nyall Dawson
27077c875e Add a QgsStatusBar widget/interface for adding messages/widgets to
main window statusbar

QStatusBar gives almost no control over display and placement
of child widgets. It's not possible to subclass and reimplement
either, due to how QMainWindow works internally, and also due to
the special handling for the size grip and other platform specific
handling in QStatusBar.

Instead, we embed a single QgsStatusBar covering the whole real
status bar. All child widgets and temporary messages instead
are pushed to the QgsStatusBar instead - giving us as much control
as we desire over how these widgets are placed and their behavior.

As a result the locator widget has been moved to its logical placement
on the left of the status bar.

All plugins must ensure that they use the status bar interface
available via iface.statusBarIface() instead of directly interacting
with the status bar (e.g. iface.mainWindow().statusBar()...)
2017-05-18 10:35:33 +10:00
Nyall Dawson
71f7872251 [FEATURE] Implement a QtCreator style locator bar in the QGIS status bar
This adds a new "locator" bar to the QGIS status bar. If you're not
familiar with QtCreator's locator, it's a quick search bar
(activated by Ctrl+K) which displays matching search results
from any number of registered search filters.

Search filters are subclassed from QgsLocatorFilter, and
added to the app's locator via iface.registerLocatorFilter(...)

Searching is handled using threads, so that results always
become available as quickly as possible, regardless of whether
any slow search filters may be installed. They also appear
as soon as each result is encountered by each filter, which means
that e.g. a file search filter will show results one by one
as the file tree is scanned. This ensures that the UI is always
responsive even if a very slow search filter is present (e.g.
one which uses an online service).

This framework is designed to be extended by plugins, such as
OSM nominatim searches, direct database searching (i.e. Discovery
plugin), layer catalog searches, etc...
2017-05-17 21:33:47 +10:00
Denis Rouzaud
85f3b81b55 remove double spaces in sip files
fix indentation
2017-05-03 08:02:14 +02:00
Denis Rouzaud
93971d5ed3 [sip] align pointer and reference in blacklisted files
this will facilitate sip diff checking
2017-05-01 17:49:43 +02:00
Nyall Dawson
b0c88f1b80 Add missing currentThemeChanged signal to interface 2017-04-10 09:19:42 +10:00
Nyall Dawson
2354696f26 Fix error when enabling additional providers in processing
Add an interface method to show the options dialog at a specific
page. This is required since plugins can now embed their options
in the main options dialog, so they may also need a way to
force this dialog to open.

Implement this in processing so that enabling additional providers
works again.
2017-03-24 11:16:49 +10:00
Nyall Dawson
3aef32a191 [composer] Rework interface composer methods
Since composer windows are now only created on demand, and
destroyed when the window is closed, the old interface methods
no longer apply. The new interface methods openComposers(),
openComposer(), closeComposer(), composerOpened(),
composerWillBeClosed() and composerClosed() are similar, but
only apply to composer windows when they are exist (i.e.
are currently open).

To access all compositions from a project, the project's
layoutManager() should be used instead.

Additionally, the new interface methods work with
QgsComposerInterface objects instead of QgsComposerView
objects. This should allow future hooks for plugins to interact
with open composer windows in a more useful way.
2017-03-21 10:32:53 +10:00
Nyall Dawson
2d37ca9bd9 Add method to interface to close map canvases 2017-03-14 12:20:58 +10:00
Nyall Dawson
29d77b0ce1 [FEATURE] Shell functionality for creating new canvases
Allows new "map views" to be created in the main QGIS interface.
These are map canvases, but with limited functionality (ie
no use of map tools beyond pan tool).
2017-03-14 09:28:33 +10:00
Nyall Dawson
2d807f5405 [FEATURE] Interface for plugins to embed pages in the options dialog
Allows plugins to embed their options into the standard options
dialog, instead of implementing their own config dialog and having
to have extra menu items just for those...
2017-03-07 18:12:44 +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
c26ed69c6b Rework map touch tool
Qt5 allows runtime detection of touch devices. This commit reworks
the current touch map tool by pulling its behavior into the normal
pan tool when a touch device is detected.

It avoids the need for a seperate map tool for touch interaction,
and also avoids having this tool always appear on the Windows
builds (regardless of the presence of a touch device)
2017-02-12 15:06:24 +10:00
Denis Rouzaud
0a63d1f2c2 [spellcheck] properly look into various cases and add more fixes" 2017-01-16 16:39:20 +01:00
Denis Rouzaud
6c74e4ea5d spelling fixes 2017-01-12 22:01:50 +01:00
Nyall Dawson
4f73c28c5f [FEATURE] Hide Deselected Layers action
Allows you to quickly hide all deselected layers. This is very handy
when you have a large project and want to quickly hide all except
for a couple of layers
2016-12-28 10:50:05 +10:00
Martin Dobias
e5f62e49ce Remove legacy QgsLegendInterface, move still valid methods to QgisInterface 2016-11-22 08:25:01 +08:00
Hugo Mercier
67c05b51c2 Fix some /Transfer/ annotations 2016-09-23 15:35:37 +02:00
Nyall Dawson
fe65063c2b Remove many deprecated methods 2016-09-15 18:34:15 +10:00
Martin Dobias
b4fe9002d8 [FEATURE] API to allow drag'n'drop of custom browser items
QgsDataItem implementations may provide hasDragEnabled(), mimeUri()
and QgsCustomDropHandler implementation to deal with drop of custom items.
2016-08-09 08:49:42 +02:00
Denis Rouzaud
6f51a13cd6 remove QgisInterface::actionLayerSelectionSaveAs
this has been deprecated since 2.4 and returns null pointer since then.
did not write this in api_break to not overload the document
2016-08-08 09:10:57 +02:00
Denis Rouzaud
aa82141df7 remove deprecated QgisInterface::fileMenu 2016-08-08 08:34:53 +02:00
Nathan
fdf16e3c92 Rename QgsLayerStylingPanelFactory to QgsMapLayerConfigWidgetFactory
- Move QgsMapLayerPropertiesFactory into single factory object for
  dock and properties
2016-07-06 23:03:43 +10:00
Nathan Woodrow
0914b7440f Rename Map Styling Dock to Layer Styling Dock 2016-06-20 20:56:34 +10:00
Nathan Woodrow
e926e2d0aa [style dock] Add better API for panels 2016-06-13 18:07:39 +10:00
Sandro Mani
45c0ef02bc Merge pull request #3122 from manisandro/arcgis_rest
Add provider for ArcGIS Map and Feature REST services
2016-06-02 14:38:44 +02:00
Sandro Mani
0ac8ce1497 Docstring updates 2016-06-02 13:36:08 +02:00
Sandro Mani
2738c5097e Add provider for ArcGIS Map and Feature REST services 2016-06-02 13:36:08 +02:00
Nathan Woodrow
7433d32e87 [Style Dock] Add interface for plugins to add panels to dock 2016-06-02 20:51:38 +10:00
Sandro Mani
3bdbf79b4d Clarify in the registerMapLayerPropertiesFactory docstring that the ownership of the factory is not transferred 2016-05-30 12:10:26 +02:00
Nyall Dawson
71f8e3e4bb [FEATURE] Plugins can add pages to vector layer properties*
* This is actually a followup to 87121d, which fixes leaks
& clarifies some docs. But I figured the ability to add
custom pages to the properties is worth highlighting as a
feature on it's own, or it may go unnoticed in the other
globe related changes!
2016-05-30 19:39:32 +10:00
Sandro Mani
90887f460f Revived globe, compatible with OsgEarth 2.7 2016-05-28 10:09:34 +02:00
Juergen E. Fischer
a90be95f7b sip sync 2016-02-14 03:50:49 +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
70bff3f6aa Finish flipping a lot of methods to take const references for
non-trivial types
2015-10-26 22:46:14 +11:00
Matthias Kuhn
1132867622 Make cadDockWidget available in python
Followup efcbbfd
2015-10-19 17:47:54 +02:00
Nathan Woodrow
6cf2dd0a4c Fix annoying blocking Python error dialog 2015-09-28 17:14:06 +10:00
Sandro Mani
e9e638f6f4 Geometry Checker and Geometry Snapper plugins 2015-09-21 10:03:24 +02:00
Nyall Dawson
94badce431 Avoid use of QString("") 2015-09-08 06:55:13 +10:00
Juergen E. Fischer
9752c468c1 indentation update 2015-07-29 11:52:14 +02:00
Matthias Kuhn
70fe622661 Add iface.layerTreeCanvasBridge() 2015-07-26 23:01:46 +02:00
Denis Rouzaud
42f0993c32 missing bindings for user input tool bar 2015-05-20 08:52:21 +02:00
Matthias Kuhn
ed005c0172 Add QgisInterface::composerRemoved signal 2015-04-08 23:21:20 +02:00
Juergen E. Fischer
abd4a04399 sip update 2015-02-03 02:21:52 +01:00
Marco Bernasocchi
06708186c0 added layerSavedAs signal 2014-12-16 23:28:31 +01:00
Denis Rouzaud
a0b5241275 remove "added" notes for 1.x and 2.0 versions 2014-10-30 11:08:21 +01:00
Juergen E. Fischer
c90d810ce3 allow setting visiblity of selected layers (fixes #10835) 2014-10-15 18:49:35 +02:00