2828#include < qgsexpression.h>
2929#include < qgsfilterlineedit.h>
3030#include < qgscolorbutton.h>
31+ #include < qgsnetworkaccessmanager.h>
3132
3233#include < QScrollArea>
3334#include < QPushButton>
@@ -159,7 +160,7 @@ void QgsAttributeEditor::loadPixmap( const QString &name )
159160 size.setHeight ( size.width () * pm.size ().height () / pm.size ().width () );
160161 }
161162
162- pm = pm.scaled ( size, Qt::KeepAspectRatio );
163+ pm = pm.scaled ( size, Qt::KeepAspectRatio, Qt::SmoothTransformation );
163164
164165 lw->setPixmap ( pm );
165166 lw->setMinimumSize ( size );
@@ -652,7 +653,9 @@ QWidget *QgsAttributeEditor::createAttributeEditor( QWidget *parent, QWidget *ed
652653 if ( myWidget )
653654 {
654655 if ( editType == QgsVectorLayer::Immutable )
656+ {
655657 myWidget->setDisabled ( true );
658+ }
656659
657660 QgsStringRelay* relay = NULL ;
658661
@@ -708,7 +711,7 @@ QWidget *QgsAttributeEditor::createAttributeEditor( QWidget *parent, QWidget *ed
708711 case QgsVectorLayer::FileName:
709712 case QgsVectorLayer::Calendar:
710713 case QgsVectorLayer::Photo:
711- case QgsVectorLayer::Webview :
714+ case QgsVectorLayer::WebView :
712715 case QgsVectorLayer::Color:
713716 {
714717 QCalendarWidget *cw = qobject_cast<QCalendarWidget *>( editor );
@@ -721,6 +724,12 @@ QWidget *QgsAttributeEditor::createAttributeEditor( QWidget *parent, QWidget *ed
721724 QWebView *ww = qobject_cast<QWebView *>( editor );
722725 if ( ww )
723726 {
727+ ww->page ()->setNetworkAccessManager ( QgsNetworkAccessManager::instance () );
728+ ww->page ()->setLinkDelegationPolicy ( QWebPage::DelegateAllLinks );
729+ ww->settings ()->setAttribute ( QWebSettings::LocalContentCanAccessRemoteUrls, true );
730+ #ifdef QGISDEBUG
731+ ww->settings ()->setAttribute ( QWebSettings::DeveloperExtrasEnabled, true );
732+ #endif
724733 myWidget = ww;
725734 break ;
726735 }
@@ -753,47 +762,55 @@ QWidget *QgsAttributeEditor::createAttributeEditor( QWidget *parent, QWidget *ed
753762 }
754763 else
755764 {
756- le = new QgsFilterLineEdit ();
765+ myWidget = new QWidget ( parent );
766+ myWidget->setBackgroundRole ( QPalette::Window );
767+ myWidget->setAutoFillBackground ( true );
768+
769+ le = new QgsFilterLineEdit ( myWidget );
757770 switch ( editType )
758771 {
759772 case QgsVectorLayer::FileName:
760773 case QgsVectorLayer::Photo:
761- pb = new QPushButton ( tr ( " ..." ) );
774+ pb = new QPushButton ( tr ( " ..." ), myWidget );
762775 break ;
763776
764- case QgsVectorLayer::Webview :
765- pb = new QPushButton ( tr ( " <" ) );
777+ case QgsVectorLayer::WebView :
778+ pb = new QPushButton ( tr ( " <" ), myWidget );
766779 break ;
767780
768781 case QgsVectorLayer::Color:
769- pb = new QgsColorButton ();
782+ pb = new QgsColorButton ( myWidget );
770783 break ;
771784
772785 default :
773786 break ;
774787 }
775788
789+
776790 int row = 0 ;
777- QGridLayout *layout = new QGridLayout ();
791+ QGridLayout *layout = new QGridLayout ( myWidget );
778792 if ( editType == QgsVectorLayer::Photo )
779793 {
780- lw = new QLabel ();
794+ lw = new QLabel ( myWidget );
781795 layout->addWidget ( lw, 0 , 0 , 1 , 2 );
782796 row++;
783797 }
784- else if ( editType == QgsVectorLayer::Webview )
798+ else if ( editType == QgsVectorLayer::WebView )
785799 {
786- ww = new QWebView ();
800+ ww = new QWebView ( myWidget );
801+ ww->page ()->setNetworkAccessManager ( QgsNetworkAccessManager::instance () );
802+ ww->page ()->setLinkDelegationPolicy ( QWebPage::DelegateAllLinks );
803+ ww->settings ()->setAttribute ( QWebSettings::LocalContentCanAccessRemoteUrls, true );
804+ #ifdef QGISDEBUG
805+ ww->settings ()->setAttribute ( QWebSettings::DeveloperExtrasEnabled, true );
806+ #endif
787807 layout->addWidget ( ww, 0 , 0 , 1 , 2 );
788808 row++;
789809 }
790810
791811 layout->addWidget ( le, row, 0 );
792812 layout->addWidget ( pb, row, 1 );
793813
794- myWidget = new QWidget ( parent );
795- myWidget->setBackgroundRole ( QPalette::Window );
796- myWidget->setAutoFillBackground ( true );
797814 myWidget->setLayout ( layout );
798815 }
799816
@@ -813,7 +830,7 @@ QWidget *QgsAttributeEditor::createAttributeEditor( QWidget *parent, QWidget *ed
813830 {
814831 if ( editType == QgsVectorLayer::FileName || editType == QgsVectorLayer::Photo )
815832 connect ( pb, SIGNAL ( clicked () ), new QgsAttributeEditor ( pb ), SLOT ( selectFileName () ) );
816- if ( editType == QgsVectorLayer::Webview )
833+ if ( editType == QgsVectorLayer::WebView )
817834 connect ( pb, SIGNAL ( clicked () ), new QgsAttributeEditor ( pb ), SLOT ( updateUrl () ) );
818835 if ( editType == QgsVectorLayer::Calendar )
819836 connect ( pb, SIGNAL ( clicked () ), new QgsAttributeEditor ( pb ), SLOT ( selectDate () ) );
@@ -1197,7 +1214,7 @@ bool QgsAttributeEditor::setValue( QWidget *editor, QgsVectorLayer *vl, int idx,
11971214 case QgsVectorLayer::FileName:
11981215 case QgsVectorLayer::Calendar:
11991216 case QgsVectorLayer::Photo:
1200- case QgsVectorLayer::Webview :
1217+ case QgsVectorLayer::WebView :
12011218 case QgsVectorLayer::Color:
12021219 {
12031220 QCalendarWidget *cw = qobject_cast<QCalendarWidget *>( editor );
0 commit comments