@@ -27,8 +27,6 @@ QgsLoadStyleFromDBDialog::QgsLoadStyleFromDBDialog( QWidget *parent )
27
27
{
28
28
setupUi ( this );
29
29
setWindowTitle ( QStringLiteral ( " Database styles manager" ) );
30
- mSelectedStyleId = QLatin1String ( " " );
31
- mSelectedStyleName = QLatin1String ( " " );
32
30
33
31
mLoadButton ->setDisabled ( true );
34
32
mDeleteButton ->setDisabled ( true );
@@ -42,13 +40,13 @@ QgsLoadStyleFromDBDialog::QgsLoadStyleFromDBDialog( QWidget *parent )
42
40
mOthersTable ->setSelectionBehavior ( QTableWidget::SelectRows );
43
41
mOthersTable ->verticalHeader ()->setVisible ( false );
44
42
45
- connect ( mRelatedTable , SIGNAL ( itemSelectionChanged () ) , this , SLOT ( relatedTableSelectionChanged () ) );
46
- connect ( mOthersTable , SIGNAL ( itemSelectionChanged () ) , this , SLOT ( otherTableSelectionChanged () ) );
47
- connect ( mRelatedTable , SIGNAL ( doubleClicked ( QModelIndex ) ) , this , SLOT ( accept () ) );
48
- connect ( mOthersTable , SIGNAL ( doubleClicked ( QModelIndex ) ) , this , SLOT ( accept () ) );
49
- connect ( mCancelButton , SIGNAL ( clicked () ) , this , SLOT ( reject () ) );
50
- connect ( mDeleteButton , SIGNAL ( clicked () ) , this , SLOT ( deleteStyleFromDB () ) );
51
- connect ( mLoadButton , SIGNAL ( clicked () ) , this , SLOT ( accept () ) );
43
+ connect ( mRelatedTable -> selectionModel (), &QItemSelectionModel::selectionChanged , this , &QgsLoadStyleFromDBDialog::onRelatedTableSelectionChanged );
44
+ connect ( mOthersTable -> selectionModel (), &QItemSelectionModel::selectionChanged , this , &QgsLoadStyleFromDBDialog::onOthersTableSelectionChanged );
45
+ connect ( mRelatedTable , &QTableWidget:: doubleClicked, this , &QDialog:: accept );
46
+ connect ( mOthersTable , &QTableWidget:: doubleClicked, this , &QDialog:: accept );
47
+ connect ( mCancelButton , &QPushButton:: clicked, this , &QDialog:: reject );
48
+ connect ( mLoadButton , &QPushButton:: clicked, this , &QDialog::accept );
49
+ connect ( mDeleteButton , &QPushButton:: clicked, this , &QgsLoadStyleFromDBDialog::deleteStyleFromDB );
52
50
53
51
setTabOrder ( mRelatedTable , mOthersTable );
54
52
setTabOrder ( mOthersTable , mCancelButton );
@@ -57,7 +55,6 @@ QgsLoadStyleFromDBDialog::QgsLoadStyleFromDBDialog( QWidget *parent )
57
55
58
56
QSettings settings;
59
57
restoreGeometry ( settings.value ( QStringLiteral ( " /Windows/loadStyleFromDb/geometry" ) ).toByteArray () );
60
-
61
58
}
62
59
63
60
QgsLoadStyleFromDBDialog::~QgsLoadStyleFromDBDialog ()
@@ -110,40 +107,45 @@ QString QgsLoadStyleFromDBDialog::getSelectedStyleId()
110
107
void QgsLoadStyleFromDBDialog::setLayer ( QgsVectorLayer *l )
111
108
{
112
109
mLayer = l;
113
- if ( mLayer ->dataProvider ()->isDeleteStyleFromDBSupported () )
114
- {
115
- // QgsDebugMsg( "QgsLoadStyleFromDBDialog::setLayer → The dataProvider supports isDeleteStyleFromDBSupported" );
116
- mDeleteButton ->setVisible ( true );
117
- }
118
- else
119
- {
120
- // QgsDebugMsg( "QgsLoadStyleFromDBDialog::setLayer → The dataProvider does not supports isDeleteStyleFromDBSupported" );
121
- mDeleteButton ->setVisible ( false );
122
- }
110
+ mDeleteButton ->setVisible ( mLayer ->dataProvider ()->isDeleteStyleFromDbSupported () );
123
111
}
124
112
125
- void QgsLoadStyleFromDBDialog::relatedTableSelectionChanged ()
113
+ void QgsLoadStyleFromDBDialog::onRelatedTableSelectionChanged ()
126
114
{
127
115
selectionChanged ( mRelatedTable );
128
- // deselect any other row on the other table widget
129
- QTableWidgetSelectionRange range ( 0 , 0 , mOthersTable ->rowCount () - 1 , mOthersTable ->columnCount () - 1 );
130
- mOthersTable ->setRangeSelected ( range, false );
116
+ if ( mRelatedTable ->selectionModel ()->hasSelection () )
117
+ {
118
+ if ( mOthersTable ->selectionModel ()->hasSelection () )
119
+ {
120
+ disconnect ( mOthersTable ->selectionModel (), &QItemSelectionModel::selectionChanged, this , &QgsLoadStyleFromDBDialog::onOthersTableSelectionChanged );
121
+ QTableWidgetSelectionRange range ( 0 , 0 , mOthersTable ->rowCount () - 1 , mOthersTable ->columnCount () - 1 );
122
+ mOthersTable ->setRangeSelected ( range, false );
123
+ connect ( mOthersTable ->selectionModel (), &QItemSelectionModel::selectionChanged, this , &QgsLoadStyleFromDBDialog::onOthersTableSelectionChanged );
124
+ }
125
+ }
131
126
}
132
127
133
- void QgsLoadStyleFromDBDialog::otherTableSelectionChanged ()
128
+ void QgsLoadStyleFromDBDialog::onOthersTableSelectionChanged ()
134
129
{
135
130
selectionChanged ( mOthersTable );
136
- // deselect any other row on the other table widget
137
- QTableWidgetSelectionRange range ( 0 , 0 , mRelatedTable ->rowCount () - 1 , mRelatedTable ->columnCount () - 1 );
138
- mRelatedTable ->setRangeSelected ( range, false );
131
+ if ( mOthersTable ->selectionModel ()->hasSelection () )
132
+ {
133
+ if ( mRelatedTable ->selectionModel ()->hasSelection () )
134
+ {
135
+ disconnect ( mRelatedTable ->selectionModel (), &QItemSelectionModel::selectionChanged, this , &QgsLoadStyleFromDBDialog::onRelatedTableSelectionChanged );
136
+ QTableWidgetSelectionRange range ( 0 , 0 , mRelatedTable ->rowCount () - 1 , mRelatedTable ->columnCount () - 1 );
137
+ mRelatedTable ->setRangeSelected ( range, false );
138
+ connect ( mRelatedTable ->selectionModel (), &QItemSelectionModel::selectionChanged, this , &QgsLoadStyleFromDBDialog::onRelatedTableSelectionChanged );
139
+ }
140
+ }
139
141
}
140
142
141
143
void QgsLoadStyleFromDBDialog::selectionChanged ( QTableWidget *styleTable )
142
144
{
143
145
QTableWidgetItem *item;
144
146
QList<QTableWidgetItem *> selected = styleTable->selectedItems ();
145
147
146
- if ( selected.count () > 0 )
148
+ if ( ! selected.isEmpty () )
147
149
{
148
150
item = selected.at ( 0 );
149
151
mSelectedStyleName = item->text ();
@@ -153,27 +155,24 @@ void QgsLoadStyleFromDBDialog::selectionChanged( QTableWidget *styleTable )
153
155
}
154
156
else
155
157
{
156
- mSelectedStyleName = " " ;
157
- mSelectedStyleId = " " ;
158
+ mSelectedStyleName . clear () ;
159
+ mSelectedStyleId . clear () ;
158
160
mLoadButton ->setEnabled ( false );
159
161
mDeleteButton ->setEnabled ( false );
160
162
}
161
163
}
162
164
163
165
void QgsLoadStyleFromDBDialog::deleteStyleFromDB ()
164
166
{
165
- QString uri, msgError;
167
+ QString msgError;
166
168
QString opInfo = QObject::tr ( " Delete style %1 from %2" ).arg ( mSelectedStyleName , mLayer ->providerType () );
167
169
168
170
if ( QMessageBox::question ( nullptr , QObject::tr ( " Delete style" ),
169
171
QObject::tr ( " Are you sure you want to delete the style %1?" ).arg ( mSelectedStyleName ),
170
172
QMessageBox::Yes | QMessageBox::No, QMessageBox::No ) != QMessageBox::Yes )
171
173
return ;
172
174
173
- uri = mLayer ->dataProvider ()->dataSourceUri ();
174
- // mLayer->dataProvider()->deleteStyleById( uri, mSelectedStyleId, msgError );
175
175
mLayer ->deleteStyleFromDatabase ( mSelectedStyleId , msgError );
176
-
177
176
if ( !msgError.isNull () )
178
177
{
179
178
QgsDebugMsg ( opInfo + " failed." );
0 commit comments