mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-26 00:02:08 -05:00
This exposes some basic temporal capabilities for vector layers: - static time range for layer (to match raster layer possibilities), this sets a single static time range which applies to the whole layer. ALL features from the layer will be shown whenever the canvas time overlaps the layer time range - "Single field with datetime": Allows selection of a single date or datetime field from the layer. Features will be shown whenever this field value is within the canvas time range - "Separate Fields for Start and End Date/Time": Allows selection of start and end date/datetime fields from the layer. Features will be shown whenever the time interval calculated from these fields overlaps the canvas time range Some known limitations/inefficiencies: - currently only date/datetime fields can be used. This was done to simplify the format handling and avoid the need to worry about string fields with different datetime formats. In future we should allow selection of string fields and allow users to enter a custom datetime format string - unlike the Time Manager plugin approach, the approach taken here is to rely completely on QGIS expressions and feature requests to do the filtering (Time Manager uses layer filter strings and attempts to set a native SQL filter syntax so that filtering is done on the backend). This is intentional, because it provides a unified filter approach regardless of the provider used (i.e. we don't need to worry about the different SQL syntaxes used natively by the different providers). The beauty of feature request expression compilation **should** mean that the QGIS expressions are magically turned into native backend queries, BUUUUUUUUUUUT... because we lack QGIS expression support for date time literals, we currently rely on the "to_datetime" expression function and coerce everything through strings. None of the expression compilers handle this function, so currently ALL filtering is done on the QGIS side. We need to add functions for optimised datetime literal creation, and then ensure that the different compilers correctly map these literals across to the backend filter syntax to allow all the filtering work to be done on the database side... So currently, performance is much worse with large layers compared to Time Manager. But, the advantage is that we can use the native temporal framework and have vector layers animated alongside mesh and raster layers!
143 lines
4.2 KiB
Plaintext
143 lines
4.2 KiB
Plaintext
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/gui/qgsoptionsdialogbase.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class QgsOptionsDialogBase : QDialog
|
|
{
|
|
%Docstring
|
|
A base dialog for options and properties dialogs that offers vertical tabs.
|
|
It handles saving/restoring of geometry, splitter and current tab states,
|
|
switching vertical tabs between icon/text to icon-only modes (splitter collapsed to left),
|
|
and connecting QDialogButtonBox's accepted/rejected signals to dialog's accept/reject slots
|
|
|
|
To use:
|
|
1) Start with copy of qgsoptionsdialog_template.ui and build options/properties dialog.
|
|
2) In source file for dialog, inherit this class instead of QDialog, then in constructor:
|
|
...
|
|
setupUi( this ); // set up .ui file objects
|
|
initOptionsBase( ``False`` ); // set up this class to use .ui objects, optionally restoring base ui
|
|
...
|
|
restoreOptionsBaseUi(); // restore the base ui with initOptionsBase or use this later on
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgsoptionsdialogbase.h"
|
|
%End
|
|
public:
|
|
|
|
QgsOptionsDialogBase( const QString &settingsKey, QWidget *parent /TransferThis/ = 0, Qt::WindowFlags fl = 0, QgsSettings *settings = 0 );
|
|
%Docstring
|
|
Constructor
|
|
|
|
:param settingsKey: QgsSettings subgroup key for saving/restore ui states, e.g. "ProjectProperties".
|
|
:param parent: parent object (owner)
|
|
:param fl: widget flags
|
|
:param settings: custom QgsSettings pointer
|
|
%End
|
|
~QgsOptionsDialogBase();
|
|
|
|
void initOptionsBase( bool restoreUi = true, const QString &title = QString() );
|
|
%Docstring
|
|
Set up the base ui connections for vertical tabs.
|
|
|
|
:param restoreUi: Whether to restore the base ui at this time.
|
|
:param title: the window title
|
|
%End
|
|
|
|
void setSettings( QgsSettings *settings );
|
|
|
|
void restoreOptionsBaseUi( const QString &title = QString() );
|
|
%Docstring
|
|
Restore the base ui.
|
|
Sometimes useful to do at end of subclass's constructor.
|
|
|
|
:param title: the window title (it does not need to be defined if previously given to initOptionsBase();
|
|
%End
|
|
|
|
void resizeAlltabs( int index );
|
|
%Docstring
|
|
Resizes all tabs when the dialog is resized
|
|
|
|
:param index: current tab index
|
|
|
|
.. versionadded:: 3.10
|
|
%End
|
|
|
|
bool iconOnly();
|
|
%Docstring
|
|
Determine if the options list is in icon only mode
|
|
%End
|
|
|
|
void setCurrentPage( const QString &page );
|
|
%Docstring
|
|
Sets the dialog ``page`` (by object name) to show.
|
|
|
|
.. versionadded:: 3.14
|
|
%End
|
|
|
|
public slots:
|
|
|
|
void searchText( const QString &text );
|
|
%Docstring
|
|
searchText searches for a text in all the pages of the stacked widget and highlight the results
|
|
|
|
:param text: the text to search
|
|
|
|
.. versionadded:: 3.0
|
|
%End
|
|
|
|
protected slots:
|
|
virtual void updateOptionsListVerticalTabs();
|
|
%Docstring
|
|
Update tabs on the splitter move
|
|
%End
|
|
virtual void optionsStackedWidget_CurrentChanged( int index );
|
|
%Docstring
|
|
Select relevant tab on current page change
|
|
%End
|
|
virtual void optionsStackedWidget_WidgetRemoved( int index );
|
|
%Docstring
|
|
Remove tab and unregister widgets on page remove
|
|
%End
|
|
|
|
void warnAboutMissingObjects();
|
|
|
|
protected:
|
|
virtual void showEvent( QShowEvent *e );
|
|
|
|
virtual void paintEvent( QPaintEvent *e );
|
|
|
|
|
|
virtual void updateWindowTitle();
|
|
|
|
void registerTextSearchWidgets();
|
|
%Docstring
|
|
register widgets in the dialog to search for text in it
|
|
it is automatically called if a line edit has "mSearchLineEdit" as object name.
|
|
|
|
.. versionadded:: 3.0
|
|
%End
|
|
|
|
|
|
};
|
|
|
|
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/gui/qgsoptionsdialogbase.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|