-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
87 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
class QgsIdentifyMenu : QMenu | ||
{ | ||
%TypeHeaderCode | ||
#include <qgsidentifymenu.h> | ||
%End | ||
|
||
public: | ||
enum MenuLevel | ||
{ | ||
LayerLevel, | ||
FeatureLevel | ||
}; | ||
|
||
struct ActionData | ||
{ | ||
ActionData(); | ||
|
||
|
||
ActionData( QgsMapLayer* layer, QgsMapLayerAction* mapLayerAction = 0 ); | ||
|
||
ActionData( QgsMapLayer* layer, QgsFeatureId fid, QgsMapLayerAction* mapLayerAction = 0 ); | ||
|
||
bool mIsValid; | ||
bool mAllResults; | ||
bool mIsExternalAction; | ||
QgsMapLayer* mLayer; | ||
QgsFeatureId mFeatureId; | ||
MenuLevel mLevel; | ||
QgsMapLayerAction* mMapLayerAction; | ||
}; | ||
|
||
/** | ||
* @brief QgsIdentifyMenu is a menu to be used to choose within a list of QgsMapTool::IdentifyReults | ||
*/ | ||
explicit QgsIdentifyMenu( QgsMapCanvas* canvas ); | ||
|
||
~QgsIdentifyMenu(); | ||
|
||
//! define if the menu executed can return multiple results (e.g. all results or all identified features of a vector layer) | ||
void setAllowMultipleReturn( bool multipleReturn ); | ||
bool allowMultipleReturn(); | ||
|
||
//! define if the menu will be shown with a single idetify result | ||
void setExecWithSingleResult( bool execWithSingleResult ); | ||
bool execWithSingleResult(); | ||
|
||
/** | ||
* @brief define if attribute actions(1) and map layer actions(2) can be listed and run from the menu | ||
* @note custom actions will be shown in any case if they exist. | ||
* @note (1) attribute actions are defined by the user in the layer properties @see QgsAttributeAction | ||
* @note (2) map layer actions are built-in c++ actions or actions which are defined by a python plugin @see QgsMapLayerActionRegistry | ||
*/ | ||
void setShowFeatureActions( bool showFeatureActions ); | ||
bool showFeatureActions(); | ||
|
||
/** | ||
* @brief setResultsIfExternalAction if set to false (default) the menu will not return any results if an external action has been triggered | ||
* @note external action can be either custom actions or feature / map layer actions (@see setShowFeatureActions) | ||
*/ | ||
void setResultsIfExternalAction( bool resultsIfExternalAction ); | ||
bool resultsIfExternalAction(); | ||
|
||
//! Defines the maximimum number of layers displayed in the menu (default is 10). | ||
//! @note 0 is unlimited. | ||
void setMaxLayerDisplay( int maxLayerDisplay ); | ||
int maxLayerDisplay(); | ||
|
||
//! Defines the maximimum number of features displayed in the menu for vector layers (default is 10). | ||
//! @note 0 is unlimited. | ||
void setMaxFeatureDisplay( int maxFeatureDisplay ); | ||
int maxFeatureDisplay(); | ||
|
||
//! adds a new custom action to the menu | ||
void addCustomAction( QgsMapLayerAction* action ); | ||
|
||
//! remove all custom actions from the menu to be built | ||
void removeCustomActions(); | ||
|
||
/** | ||
* @brief exec | ||
* @param idResults the list of identify results to choose within | ||
* @param pos the position where the menu will be executed | ||
* @param selectedAction if specified, this will allow to know which action has been triggered | ||
*/ | ||
QList<QgsMapToolIdentify::IdentifyResult> exec( const QList<QgsMapToolIdentify::IdentifyResult> idResults, QPoint pos ); | ||
}; |