Skip to content

Commit b132738

Browse files
committed
external resource widget config: use single combobox rather than checkable group box + combobox
this will allow to use a data defined button later on
1 parent 1e5f649 commit b132738

File tree

2 files changed

+111
-77
lines changed

2 files changed

+111
-77
lines changed

src/gui/editorwidgets/qgsexternalresourceconfigdlg.cpp

+11-19
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ QgsExternalResourceConfigDlg::QgsExternalResourceConfigDlg( QgsVectorLayer *vl,
3535
// By default, uncheck some options
3636
mUseLink->setChecked( false );
3737
mFullUrl->setChecked( false );
38-
mDocumentViewerGroupBox->setChecked( false );
3938

4039
QString defpath = QgsProject::instance()->fileName().isEmpty() ? QDir::homePath() : QgsProject::instance()->fileInfo().absolutePath();
4140

@@ -61,10 +60,6 @@ QgsExternalResourceConfigDlg::QgsExternalResourceConfigDlg( QgsVectorLayer *vl,
6160
mRelativeButtonGroup->setId( mRelativeDefault, QgsFileWidget::RelativeDefaultPath );
6261
mRelativeProject->setChecked( true );
6362

64-
mDocumentViewerContentComboBox->addItem( tr( "Image" ), QgsExternalResourceWidget::Image );
65-
mDocumentViewerContentComboBox->addItem( tr( "Web view" ), QgsExternalResourceWidget::Web );
66-
67-
6863
connect( mFileWidgetGroupBox, &QGroupBox::toggled, this, &QgsEditorConfigWidget::changed );
6964
connect( mFileWidgetButtonGroupBox, &QGroupBox::toggled, this, &QgsEditorConfigWidget::changed );
7065
connect( mFileWidgetFilterLineEdit, SIGNAL( textChanged( QString ) ), this, SIGNAL( changed() ) );
@@ -74,9 +69,14 @@ QgsExternalResourceConfigDlg::QgsExternalResourceConfigDlg( QgsVectorLayer *vl,
7469
connect( mStorageButtonGroup, SIGNAL( buttonClicked( int ) ), this, SIGNAL( changed() ) );
7570
connect( mRelativeGroupBox, &QGroupBox::toggled, this, &QgsEditorConfigWidget::changed );
7671
connect( mDocumentViewerGroupBox, &QGroupBox::toggled, this, &QgsEditorConfigWidget::changed );
77-
connect( mDocumentViewerContentComboBox, SIGNAL( currentIndexChanged( int ) ), this, SIGNAL( changed() ) );
78-
connect( mDocumentViewerHeight, SIGNAL( valueChanged( int ) ), this, SIGNAL( changed() ) );
79-
connect( mDocumentViewerWidth, SIGNAL( valueChanged( int ) ), this, SIGNAL( changed() ) );
72+
connect( mDocumentViewerContentComboBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, [ = ]( int idx )
73+
{ mDocumentViewerContentSettingsWidget->setEnabled( ( QgsExternalResourceWidget::DocumentViewerContent )idx != QgsExternalResourceWidget::NoContent ); } );
74+
connect( mDocumentViewerHeight, static_cast<void ( QSpinBox::* )( int )>( &QSpinBox::valueChanged ), this, &QgsEditorConfigWidget::changed );
75+
connect( mDocumentViewerWidth, static_cast<void ( QSpinBox::* )( int )>( &QSpinBox::valueChanged ), this, &QgsEditorConfigWidget::changed );
76+
77+
mDocumentViewerContentComboBox->addItem( tr( "No content" ), QgsExternalResourceWidget::NoContent );
78+
mDocumentViewerContentComboBox->addItem( tr( "Image" ), QgsExternalResourceWidget::Image );
79+
mDocumentViewerContentComboBox->addItem( tr( "Web view" ), QgsExternalResourceWidget::Web );
8080
}
8181

8282
void QgsExternalResourceConfigDlg::chooseDefaultPath()
@@ -164,16 +164,9 @@ QVariantMap QgsExternalResourceConfigDlg::config()
164164
cfg.insert( QStringLiteral( "RelativeStorage" ), ( int )QgsFileWidget::Absolute );
165165
}
166166

167-
if ( mDocumentViewerGroupBox->isChecked() )
168-
{
169-
cfg.insert( QStringLiteral( "DocumentViewer" ), mDocumentViewerContentComboBox->currentData().toInt() );
170-
cfg.insert( QStringLiteral( "DocumentViewerHeight" ), mDocumentViewerHeight->value() );
171-
cfg.insert( QStringLiteral( "DocumentViewerWidth" ), mDocumentViewerWidth->value() );
172-
}
173-
else
174-
{
175-
cfg.insert( QStringLiteral( "DocumentViewer" ), ( int )QgsExternalResourceWidget::NoContent );
176-
}
167+
cfg.insert( QStringLiteral( "DocumentViewer" ), mDocumentViewerContentComboBox->currentData().toInt() );
168+
cfg.insert( QStringLiteral( "DocumentViewerHeight" ), mDocumentViewerHeight->value() );
169+
cfg.insert( QStringLiteral( "DocumentViewerWidth" ), mDocumentViewerWidth->value() );
177170

178171
return cfg;
179172
}
@@ -235,7 +228,6 @@ void QgsExternalResourceConfigDlg::setConfig( const QVariantMap &config )
235228
if ( config.contains( QStringLiteral( "DocumentViewer" ) ) )
236229
{
237230
QgsExternalResourceWidget::DocumentViewerContent content = ( QgsExternalResourceWidget::DocumentViewerContent )config.value( QStringLiteral( "DocumentViewer" ) ).toInt();
238-
mDocumentViewerGroupBox->setChecked( content != QgsExternalResourceWidget::NoContent );
239231
int idx = mDocumentViewerContentComboBox->findData( content );
240232
if ( idx >= 0 )
241233
{

src/ui/editorwidgets/qgsexternalresourceconfigdlg.ui

+100-58
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
<property name="geometry">
4646
<rect>
4747
<x>0</x>
48-
<y>0</y>
48+
<y>-17</y>
4949
<width>467</width>
5050
<height>715</height>
5151
</rect>
@@ -325,62 +325,9 @@
325325
<string>Integrated document viewer</string>
326326
</property>
327327
<property name="checkable">
328-
<bool>true</bool>
328+
<bool>false</bool>
329329
</property>
330330
<layout class="QGridLayout" name="gridLayout">
331-
<item row="2" column="1">
332-
<widget class="QLabel" name="label_13">
333-
<property name="text">
334-
<string>Height</string>
335-
</property>
336-
</widget>
337-
</item>
338-
<item row="2" column="2">
339-
<widget class="QgsSpinBox" name="mDocumentViewerHeight">
340-
<property name="specialValueText">
341-
<string>Auto</string>
342-
</property>
343-
<property name="suffix">
344-
<string> px</string>
345-
</property>
346-
<property name="prefix">
347-
<string/>
348-
</property>
349-
<property name="maximum">
350-
<number>10000</number>
351-
</property>
352-
</widget>
353-
</item>
354-
<item row="1" column="2">
355-
<widget class="QgsSpinBox" name="mDocumentViewerWidth">
356-
<property name="specialValueText">
357-
<string>Auto</string>
358-
</property>
359-
<property name="suffix">
360-
<string> px</string>
361-
</property>
362-
<property name="maximum">
363-
<number>10000</number>
364-
</property>
365-
</widget>
366-
</item>
367-
<item row="1" column="1">
368-
<widget class="QLabel" name="label_12">
369-
<property name="text">
370-
<string>Width</string>
371-
</property>
372-
</widget>
373-
</item>
374-
<item row="1" column="3" rowspan="2">
375-
<widget class="QLabel" name="label_2">
376-
<property name="text">
377-
<string>Specify the size of the preview. If you leave it set to Auto, an optimal size will be calculated.</string>
378-
</property>
379-
<property name="wordWrap">
380-
<bool>true</bool>
381-
</property>
382-
</widget>
383-
</item>
384331
<item row="0" column="1">
385332
<widget class="QLabel" name="label_3">
386333
<property name="text">
@@ -391,6 +338,103 @@
391338
<item row="0" column="2">
392339
<widget class="QComboBox" name="mDocumentViewerContentComboBox"/>
393340
</item>
341+
<item row="0" column="3">
342+
<spacer name="horizontalSpacer">
343+
<property name="orientation">
344+
<enum>Qt::Horizontal</enum>
345+
</property>
346+
<property name="sizeHint" stdset="0">
347+
<size>
348+
<width>40</width>
349+
<height>20</height>
350+
</size>
351+
</property>
352+
</spacer>
353+
</item>
354+
<item row="1" column="1" colspan="3">
355+
<widget class="QWidget" name="mDocumentViewerContentSettingsWidget" native="true">
356+
<layout class="QGridLayout" name="gridLayout_4">
357+
<property name="leftMargin">
358+
<number>0</number>
359+
</property>
360+
<property name="topMargin">
361+
<number>0</number>
362+
</property>
363+
<property name="rightMargin">
364+
<number>0</number>
365+
</property>
366+
<property name="bottomMargin">
367+
<number>0</number>
368+
</property>
369+
<item row="0" column="2" rowspan="2">
370+
<widget class="QLabel" name="label_2">
371+
<property name="text">
372+
<string>Specify the size of the preview. If you leave it set to Auto, an optimal size will be calculated.</string>
373+
</property>
374+
<property name="wordWrap">
375+
<bool>true</bool>
376+
</property>
377+
</widget>
378+
</item>
379+
<item row="0" column="0">
380+
<widget class="QLabel" name="label_12">
381+
<property name="text">
382+
<string>Width</string>
383+
</property>
384+
</widget>
385+
</item>
386+
<item row="1" column="1">
387+
<widget class="QgsSpinBox" name="mDocumentViewerHeight">
388+
<property name="specialValueText">
389+
<string>Auto</string>
390+
</property>
391+
<property name="suffix">
392+
<string> px</string>
393+
</property>
394+
<property name="prefix">
395+
<string/>
396+
</property>
397+
<property name="maximum">
398+
<number>10000</number>
399+
</property>
400+
</widget>
401+
</item>
402+
<item row="0" column="1">
403+
<widget class="QgsSpinBox" name="mDocumentViewerWidth">
404+
<property name="specialValueText">
405+
<string>Auto</string>
406+
</property>
407+
<property name="suffix">
408+
<string> px</string>
409+
</property>
410+
<property name="maximum">
411+
<number>10000</number>
412+
</property>
413+
</widget>
414+
</item>
415+
<item row="1" column="0">
416+
<widget class="QLabel" name="label_13">
417+
<property name="text">
418+
<string>Height</string>
419+
</property>
420+
</widget>
421+
</item>
422+
<item row="0" column="3">
423+
<spacer name="horizontalSpacer_2">
424+
<property name="orientation">
425+
<enum>Qt::Horizontal</enum>
426+
</property>
427+
<property name="sizeHint" stdset="0">
428+
<size>
429+
<width>40</width>
430+
<height>20</height>
431+
</size>
432+
</property>
433+
</spacer>
434+
</item>
435+
</layout>
436+
</widget>
437+
</item>
394438
</layout>
395439
</widget>
396440
</item>
@@ -440,13 +484,11 @@
440484
<tabstop>mFullUrl</tabstop>
441485
<tabstop>mDocumentViewerGroupBox</tabstop>
442486
<tabstop>mDocumentViewerContentComboBox</tabstop>
443-
<tabstop>mDocumentViewerWidth</tabstop>
444-
<tabstop>mDocumentViewerHeight</tabstop>
445487
</tabstops>
446488
<resources/>
447489
<connections/>
448490
<buttongroups>
449-
<buttongroup name="mRelativeButtonGroup"/>
450491
<buttongroup name="mStorageButtonGroup"/>
492+
<buttongroup name="mRelativeButtonGroup"/>
451493
</buttongroups>
452494
</ui>

0 commit comments

Comments
 (0)