Skip to content

Commit 4c2844e

Browse files
committedApr 29, 2015
browser properties path/uri without spaces wrap
1 parent 4645dd7 commit 4c2844e

File tree

4 files changed

+107
-53
lines changed

4 files changed

+107
-53
lines changed
 

‎src/app/qgsbrowserdockwidget.cpp

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,14 @@
1414
***************************************************************************/
1515
#include "qgsbrowserdockwidget.h"
1616

17+
#include <QAbstractTextDocumentLayout>
1718
#include <QHeaderView>
1819
#include <QTreeView>
1920
#include <QMenu>
2021
#include <QSettings>
2122
#include <QToolButton>
2223
#include <QFileDialog>
24+
#include <QPlainTextDocumentLayout>
2325
#include <QSortFilterProxyModel>
2426

2527
#include "qgsbrowsermodel.h"
@@ -243,6 +245,29 @@ class QgsBrowserTreeFilterProxyModel : public QSortFilterProxyModel
243245
}
244246
};
245247

248+
QgsBrowserPropertiesWrapLabel::QgsBrowserPropertiesWrapLabel( const QString& text, QWidget* parent )
249+
: QTextEdit( text, parent )
250+
{
251+
setReadOnly( true );
252+
setFrameStyle( QFrame::NoFrame );
253+
setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum );
254+
QPalette pal = palette();
255+
pal.setColor( QPalette::Base, Qt::transparent );
256+
setPalette( pal );
257+
setLineWrapMode( QTextEdit::WidgetWidth );
258+
setWordWrapMode( QTextOption::WrapAnywhere );
259+
connect( qobject_cast<QObject*>( document()->documentLayout() ), SIGNAL( documentSizeChanged( QSizeF ) ),
260+
this, SLOT( adjustHeight( QSizeF ) ) );
261+
setMaximumHeight( 20 );
262+
}
263+
264+
void QgsBrowserPropertiesWrapLabel::adjustHeight( const QSizeF& size )
265+
{
266+
int height = size.height() + 2 * frameWidth();
267+
setMinimumHeight( height );
268+
setMaximumHeight( height );
269+
}
270+
246271
QgsBrowserPropertiesWidget::QgsBrowserPropertiesWidget( QWidget* parent ) :
247272
QWidget( parent )
248273
{
@@ -268,6 +293,9 @@ QgsBrowserLayerProperties::QgsBrowserLayerProperties( QWidget* parent ) :
268293
QgsBrowserPropertiesWidget( parent )
269294
{
270295
setupUi( this );
296+
297+
mUriLabel = new QgsBrowserPropertiesWrapLabel( "", this );
298+
mHeaderGridLayout->addItem( new QWidgetItem( mUriLabel ), 1, 1 );
271299
}
272300

273301
void QgsBrowserLayerProperties::setItem( QgsDataItem* item )
@@ -363,6 +391,9 @@ QgsBrowserDirectoryProperties::QgsBrowserDirectoryProperties( QWidget* parent )
363391
, mDirectoryWidget( 0 )
364392
{
365393
setupUi( this );
394+
395+
mPathLabel = new QgsBrowserPropertiesWrapLabel( "", mHeaderWidget );
396+
mHeaderGridLayout->addItem( new QWidgetItem( mPathLabel ), 0, 1 );
366397
}
367398

368399
void QgsBrowserDirectoryProperties::setItem( QgsDataItem* item )

‎src/app/qgsbrowserdockwidget.h

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,17 @@ class QgsLayerItem;
3030
class QgsDataItem;
3131
class QgsBrowserTreeFilterProxyModel;
3232

33+
// hack to show wrapped text without spaces
34+
class QgsBrowserPropertiesWrapLabel : public QTextEdit
35+
{
36+
Q_OBJECT
37+
public:
38+
QgsBrowserPropertiesWrapLabel( const QString& text, QWidget* parent = 0 );
39+
40+
private slots:
41+
void adjustHeight( const QSizeF& size );
42+
};
43+
3344
class QgsBrowserPropertiesWidget : public QWidget
3445
{
3546
Q_OBJECT
@@ -44,8 +55,10 @@ class QgsBrowserLayerProperties : public QgsBrowserPropertiesWidget, private Ui:
4455
Q_OBJECT
4556
public:
4657
QgsBrowserLayerProperties( QWidget* parent = 0 );
47-
4858
void setItem( QgsDataItem* item ) override;
59+
60+
private:
61+
QgsBrowserPropertiesWrapLabel *mUriLabel;
4962
};
5063

5164
class QgsBrowserDirectoryProperties : public QgsBrowserPropertiesWidget , private Ui::QgsBrowserDirectoryPropertiesBase
@@ -57,6 +70,7 @@ class QgsBrowserDirectoryProperties : public QgsBrowserPropertiesWidget , privat
5770
void setItem( QgsDataItem* item ) override;
5871
private:
5972
QgsDirectoryParamWidget* mDirectoryWidget;
73+
QgsBrowserPropertiesWrapLabel *mPathLabel;
6074
};
6175

6276
class QgsBrowserPropertiesDialog : public QDialog , private Ui::QgsBrowserPropertiesDialogBase

‎src/ui/qgsbrowserdirectorypropertiesbase.ui

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -11,35 +11,33 @@
1111
</rect>
1212
</property>
1313
<layout class="QVBoxLayout" name="verticalLayout">
14-
<property name="margin">
15-
<number>0</number>
16-
</property>
1714
<item>
18-
<layout class="QGridLayout" name="gridLayout">
19-
<item row="0" column="0">
20-
<widget class="QLabel" name="mPathTitleLabel">
21-
<property name="text">
22-
<string>Path</string>
23-
</property>
24-
</widget>
25-
</item>
26-
<item row="0" column="1">
27-
<widget class="QLabel" name="mPathLabel">
28-
<property name="sizePolicy">
29-
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
30-
<horstretch>0</horstretch>
31-
<verstretch>0</verstretch>
32-
</sizepolicy>
33-
</property>
34-
<property name="text">
35-
<string>path</string>
36-
</property>
37-
<property name="wordWrap">
38-
<bool>true</bool>
39-
</property>
40-
</widget>
41-
</item>
42-
</layout>
15+
<widget class="QWidget" name="mHeaderWidget" native="true">
16+
<property name="sizePolicy">
17+
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
18+
<horstretch>0</horstretch>
19+
<verstretch>0</verstretch>
20+
</sizepolicy>
21+
</property>
22+
<layout class="QGridLayout" name="mHeaderGridLayout">
23+
<property name="sizeConstraint">
24+
<enum>QLayout::SetMinimumSize</enum>
25+
</property>
26+
<item row="0" column="0">
27+
<widget class="QLabel" name="mPathTitleLabel">
28+
<property name="sizePolicy">
29+
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
30+
<horstretch>0</horstretch>
31+
<verstretch>0</verstretch>
32+
</sizepolicy>
33+
</property>
34+
<property name="text">
35+
<string>Path</string>
36+
</property>
37+
</widget>
38+
</item>
39+
</layout>
40+
</widget>
4341
</item>
4442
<item>
4543
<layout class="QVBoxLayout" name="mLayout"/>

‎src/ui/qgsbrowserlayerpropertiesbase.ui

Lines changed: 35 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<x>0</x>
88
<y>0</y>
99
<width>800</width>
10-
<height>284</height>
10+
<height>703</height>
1111
</rect>
1212
</property>
1313
<layout class="QVBoxLayout" name="verticalLayout">
@@ -16,32 +16,33 @@
1616
</property>
1717
<item>
1818
<widget class="QWidget" name="mHeaderWidget" native="true">
19-
<layout class="QGridLayout" name="gridLayout">
19+
<property name="sizePolicy">
20+
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
21+
<horstretch>0</horstretch>
22+
<verstretch>0</verstretch>
23+
</sizepolicy>
24+
</property>
25+
<layout class="QGridLayout" name="mHeaderGridLayout">
26+
<property name="sizeConstraint">
27+
<enum>QLayout::SetMinimumSize</enum>
28+
</property>
2029
<item row="0" column="0">
2130
<widget class="QLabel" name="mNameTitleLabel">
22-
<property name="text">
23-
<string>Name</string>
24-
</property>
25-
</widget>
26-
</item>
27-
<item row="1" column="0">
28-
<widget class="QLabel" name="mUriTitleLabel">
29-
<property name="text">
30-
<string>URI</string>
31+
<property name="sizePolicy">
32+
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
33+
<horstretch>0</horstretch>
34+
<verstretch>0</verstretch>
35+
</sizepolicy>
3136
</property>
32-
</widget>
33-
</item>
34-
<item row="2" column="0">
35-
<widget class="QLabel" name="mProviderTItleLabel">
3637
<property name="text">
37-
<string>Provider</string>
38+
<string>Name</string>
3839
</property>
3940
</widget>
4041
</item>
4142
<item row="0" column="1">
4243
<widget class="QLabel" name="mNameLabel">
4344
<property name="sizePolicy">
44-
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
45+
<sizepolicy hsizetype="Expanding" vsizetype="Minimum">
4546
<horstretch>0</horstretch>
4647
<verstretch>0</verstretch>
4748
</sizepolicy>
@@ -54,26 +55,36 @@
5455
</property>
5556
</widget>
5657
</item>
57-
<item row="1" column="1">
58-
<widget class="QLabel" name="mUriLabel">
58+
<item row="1" column="0">
59+
<widget class="QLabel" name="mUriTitleLabel">
5960
<property name="sizePolicy">
60-
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
61+
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
6162
<horstretch>0</horstretch>
6263
<verstretch>0</verstretch>
6364
</sizepolicy>
6465
</property>
6566
<property name="text">
66-
<string>uri</string>
67+
<string>URI</string>
6768
</property>
68-
<property name="wordWrap">
69-
<bool>true</bool>
69+
</widget>
70+
</item>
71+
<item row="2" column="0">
72+
<widget class="QLabel" name="mProviderTItleLabel">
73+
<property name="sizePolicy">
74+
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
75+
<horstretch>0</horstretch>
76+
<verstretch>0</verstretch>
77+
</sizepolicy>
78+
</property>
79+
<property name="text">
80+
<string>Provider</string>
7081
</property>
7182
</widget>
7283
</item>
7384
<item row="2" column="1">
7485
<widget class="QLabel" name="mProviderLabel">
7586
<property name="sizePolicy">
76-
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
87+
<sizepolicy hsizetype="Expanding" vsizetype="Minimum">
7788
<horstretch>0</horstretch>
7889
<verstretch>0</verstretch>
7990
</sizepolicy>

0 commit comments

Comments
 (0)
Please sign in to comment.