Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
feature actions: new "Open" action type to open urls in the default w…
…eb browser and files with a suitable application
  • Loading branch information
brushtyler committed Mar 28, 2012
1 parent 1786b96 commit 516fc7e
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 1 deletion.
2 changes: 2 additions & 0 deletions src/app/qgsattributeactiondialog.cpp
Expand Up @@ -329,6 +329,8 @@ void QgsAttributeActionDialog::addDefaultActions()
insertRow( pos++, QgsAction::GenericPython, tr( "Get feature id" ), "QtGui.QMessageBox.information(None, \"Feature id\", \"feature id is [% $id %]\")", false );
insertRow( pos++, QgsAction::GenericPython, tr( "Selected field's value (Identify features tool)" ), "QtGui.QMessageBox.information(None, \"Current field's value\", \"[% $currentfield %]\")", false );
insertRow( pos++, QgsAction::GenericPython, tr( "Clicked coordinates (Run feature actions tool)" ), "QtGui.QMessageBox.information(None, \"Clicked coords\", \"layer: [% $layerid %]\\ncoords: ([% $clickx %],[% $clickx %])\")", false );
insertRow( pos++, QgsAction::OpenUrl, tr( "Open file" ), "[% \"PATH\" %]", false );
insertRow( pos++, QgsAction::OpenUrl, tr( "Search on web based on attribute's value" ), "http://www.google.it/?q=[% \"ATTRIBUTE\" %]", false );
}

void QgsAttributeActionDialog::itemSelectionChanged()
Expand Down
10 changes: 9 additions & 1 deletion src/core/qgsattributeaction.cpp
Expand Up @@ -106,7 +106,15 @@ void QgsAttributeAction::doAction( int index, QgsFeature &feat,

void QgsAttributeAction::runAction( const QgsAction &action, void ( *executePython )( const QString & ) )
{
if ( action.type() == QgsAction::GenericPython )
if ( action.type() == QgsAction::OpenUrl )
{
QFileInfo finfo( action.action() );
if ( finfo.exists() && finfo.isFile() )
QDesktopServices::openUrl( QUrl::fromLocalFile( action.action() ) );
else
QDesktopServices::openUrl( QUrl( action.action(), QUrl::TolerantMode ) );
}
else if ( action.type() == QgsAction::GenericPython )
{
if ( executePython )
{
Expand Down
2 changes: 2 additions & 0 deletions src/core/qgsattributeaction.h
Expand Up @@ -47,6 +47,7 @@ class CORE_EXPORT QgsAction
Mac,
Windows,
Unix,
OpenUrl,
};

QgsAction( ActionType type, QString name, QString action, bool capture ) :
Expand All @@ -69,6 +70,7 @@ class CORE_EXPORT QgsAction
{
return mType == Generic ||
mType == GenericPython ||
mType == OpenUrl ||
#if defined(Q_OS_WIN)
mType == Windows
#elif defined(Q_OS_MAC)
Expand Down
5 changes: 5 additions & 0 deletions src/ui/qgsattributeactiondialogbase.ui
Expand Up @@ -159,6 +159,11 @@
<string>Unix</string>
</property>
</item>
<item>
<property name="text">
<string>Open</string>
</property>
</item>
</widget>
</item>
<item>
Expand Down

0 comments on commit 516fc7e

Please sign in to comment.