From d6bd8d0c328a77196b8f71b14689ae17449c2a7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9d=C3=A9ric=20RIBREUX?= Date: Wed, 27 Jan 2016 14:09:04 +0100 Subject: [PATCH] External Resource widget multiple fixes (fix Redmine #14178) --- .../qgsexternalresourceconfigdlg.cpp | 2 +- .../qgsexternalresourcewidgetfactory.cpp | 19 ++++++++++++++++--- .../qgsexternalresourcewidgetwrapper.cpp | 2 +- src/gui/qgsfilewidget.cpp | 2 +- .../qgsexternalresourceconfigdlg.ui | 11 +++++++++-- 5 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/gui/editorwidgets/qgsexternalresourceconfigdlg.cpp b/src/gui/editorwidgets/qgsexternalresourceconfigdlg.cpp index 27a5de553eaa..130903106a28 100644 --- a/src/gui/editorwidgets/qgsexternalresourceconfigdlg.cpp +++ b/src/gui/editorwidgets/qgsexternalresourceconfigdlg.cpp @@ -165,7 +165,7 @@ void QgsExternalResourceConfigDlg::setConfig( const QgsEditorWidgetConfig& confi } if ( config.contains( "FileWidgetFilter" ) ) { - mFileWidgetFilterLineEdit->setText( config.value( "Filter" ).toString() ); + mFileWidgetFilterLineEdit->setText( config.value( "FileWidgetFilter" ).toString() ); } if ( config.contains( "UseLink" ) ) diff --git a/src/gui/editorwidgets/qgsexternalresourcewidgetfactory.cpp b/src/gui/editorwidgets/qgsexternalresourcewidgetfactory.cpp index 2b883a3cfe09..d77d81361e02 100644 --- a/src/gui/editorwidgets/qgsexternalresourcewidgetfactory.cpp +++ b/src/gui/editorwidgets/qgsexternalresourcewidgetfactory.cpp @@ -15,6 +15,7 @@ ***************************************************************************/ #include "qgsexternalresourcewidgetfactory.h" +#include "qgsfilewidget.h" QgsExternalResourceWidgetFactory::QgsExternalResourceWidgetFactory( const QString& name ) : QgsEditorWidgetFactory( name ) @@ -57,6 +58,12 @@ void QgsExternalResourceWidgetFactory::writeConfig( const QgsEditorWidgetConfig& if ( config.contains( "DocumentViewer" ) ) configElement.setAttribute( "DocumentViewer", config.value( "DocumentViewer" ).toInt() ); + if ( config.contains( "DocumentViewerWidth" ) ) + configElement.setAttribute( "DocumentViewerWidth", config.value( "DocumentViewerWidth" ).toInt() ); + + if ( config.contains( "DocumentViewerHeight" ) ) + configElement.setAttribute( "DocumentViewerHeight", config.value( "DocumentViewerHeight" ).toInt() ); + if ( config.contains( "FileWidgetFilter" ) ) configElement.setAttribute( "FileWidgetFilter", config.value( "FileWidgetFilter" ).toString() ); @@ -87,14 +94,20 @@ QgsEditorWidgetConfig QgsExternalResourceWidgetFactory::readConfig( const QDomEl if ( configElement.hasAttribute( "RelativeStorage" ) ) { - if (( configElement.attribute( "RelativeStorage" ) == "Default" && configElement.hasAttribute( "DefaultRoot" ) ) || - configElement.attribute( "RelativeStorage" ) == "Project" ) - cfg.insert( "RelativeStorage" , configElement.attribute( "RelativeStorage" ) ); + if (( configElement.attribute( "RelativeStorage" ).toInt() == QgsFileWidget::RelativeStorage::RelativeDefaultPath && configElement.hasAttribute( "DefaultRoot" ) ) || + configElement.attribute( "RelativeStorage" ).toInt() == QgsFileWidget::RelativeStorage::RelativeProject ) + cfg.insert( "RelativeStorage" , configElement.attribute( "RelativeStorage" ).toInt() ); } if ( configElement.hasAttribute( "DocumentViewer" ) ) cfg.insert( "DocumentViewer", configElement.attribute( "DocumentViewer" ) ); + if ( configElement.hasAttribute( "DocumentViewerWidth" ) ) + cfg.insert( "DocumentViewerWidth", configElement.attribute( "DocumentViewerWidth" ) ); + + if ( configElement.hasAttribute( "DocumentViewerHeight" ) ) + cfg.insert( "DocumentViewerHeight", configElement.attribute( "DocumentViewerHeight" ) ); + if ( configElement.hasAttribute( "FileWidgetFilter" ) ) cfg.insert( "FileWidgetFilter", configElement.attribute( "FileWidgetFilter" ) ); diff --git a/src/gui/editorwidgets/qgsexternalresourcewidgetwrapper.cpp b/src/gui/editorwidgets/qgsexternalresourcewidgetwrapper.cpp index e7240ac3b299..bc727ea570e7 100644 --- a/src/gui/editorwidgets/qgsexternalresourcewidgetwrapper.cpp +++ b/src/gui/editorwidgets/qgsexternalresourcewidgetwrapper.cpp @@ -36,7 +36,7 @@ QVariant QgsExternalResourceWidgetWrapper::value() const { if ( mQgsWidget ) { - mQgsWidget->documentPath( field().type() ); + return mQgsWidget->documentPath( field().type() ); } if ( mLineEdit ) diff --git a/src/gui/qgsfilewidget.cpp b/src/gui/qgsfilewidget.cpp index 0dab06a5a0f5..c25d40a53b99 100644 --- a/src/gui/qgsfilewidget.cpp +++ b/src/gui/qgsfilewidget.cpp @@ -287,7 +287,7 @@ QString QgsFileWidget::toUrl( const QString& path ) const QString rep; if ( path.isEmpty() ) { - rep = QSettings().value( "qgis/nullValue", "NULL" ).toString(); + return QSettings().value( "qgis/nullValue", "NULL" ).toString(); } QString urlStr = relativePath( path, false ); diff --git a/src/ui/editorwidgets/qgsexternalresourceconfigdlg.ui b/src/ui/editorwidgets/qgsexternalresourceconfigdlg.ui index 440d4a0788ea..6f53354a648e 100644 --- a/src/ui/editorwidgets/qgsexternalresourceconfigdlg.ui +++ b/src/ui/editorwidgets/qgsexternalresourceconfigdlg.ui @@ -251,7 +251,14 @@ - + + + <html><head/><body><p>Filter syntax is borrowed from Qt <a href="http://doc.qt.io/qt-4.8/qfiledialog.html#getOpenFileName"><span style=" text-decoration: underline; color:#0000ff;">QFileDialog::getOpenFileName</span></a><span style=" font-family:'Courier New,courier';">.</span></p><p>If you want simple filter on all pdf files, just use:</p><p><span style=" font-family:'Courier New,courier';">*.pdf</span></p><p>If you want one filter for multiple file extensions (on .pdf, .odt and .doc files):</p><p><span style=" font-family:'Courier New,courier';">*.pdf *.odt *.doc</span></p><p>If you want to describe your filter, use parentheses:</p><p><span style=" font-family:'Courier New,courier';">Text documents (*.pdf, *.odt, *.doc)</span></p><p>If you want multiple filters, separate them with ';;':</p><p><span style=" font-family:'Courier New,courier';">&quot;Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)&quot;</span></p></body></html> + + + + + @@ -343,7 +350,7 @@ - +