151 m_ui.listWidget->setViewMode(QListView::IconMode);
152 m_ui.listWidget->setMovement(QListView::Static);
153 m_ui.listWidget->setTextElideMode(Qt::ElideRight);
154 m_ui.listWidget->setResizeMode(QListWidget::Adjust);
155 m_ui.listWidget->setIconSize(QSize(64, 64));
156 m_ui.listWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
158 QPalette pal = m_ui.listWidget->viewport()->palette();
160 QPixmap pm(2 * pixSize, 2 * pixSize);
162 QColor c1 = palette().color(QPalette::Midlight);
163 QColor c2 = palette().color(QPalette::Dark);
165 pmp.fillRect(0, 0, pixSize, pixSize, c1);
166 pmp.fillRect(pixSize, pixSize, pixSize, pixSize, c1);
167 pmp.fillRect(0, pixSize, pixSize, pixSize, c2);
168 pmp.fillRect(pixSize, 0, pixSize, pixSize, c2);
170 pal.setBrush(QPalette::Base, QBrush(pm));
171 m_ui.listWidget->viewport()->setPalette(pal);
173 connect(m_ui.listWidget, &QListWidget::itemDoubleClicked,
this, &QtGradientView::slotGradientActivated);
174 connect(m_ui.listWidget, &QListWidget::itemChanged,
this, &QtGradientView::slotRenameGradientItem);
175 connect(m_ui.listWidget, &QListWidget::currentItemChanged,
this, &QtGradientView::slotCurrentItemChanged);
177 m_newAction =
new QAction(QIcon(
":/qt-project.org/qtgradienteditor/images/plus.png"_L1), tr(
"New..."),
this);
178 m_editAction =
new QAction(QIcon(
":/qt-project.org/qtgradienteditor/images/edit.png"_L1), tr(
"Edit..."),
this);
179 m_renameAction =
new QAction(tr(
"Rename"),
this);
180 m_removeAction =
new QAction(QIcon(
":/qt-project.org/qtgradienteditor/images/minus.png"_L1), tr(
"Remove"),
this);
182 connect(m_newAction, &QAction::triggered,
this, &
QtGradientView::slotNewGradient);
183 connect(m_editAction, &QAction::triggered,
this, &
QtGradientView::slotEditGradient);
184 connect(m_removeAction, &QAction::triggered,
this, &
QtGradientView::slotRemoveGradient);
185 connect(m_renameAction, &QAction::triggered,
this, &
QtGradientView::slotRenameGradient);
187 m_ui.listWidget->addAction(m_newAction);
188 m_ui.listWidget->addAction(m_editAction);
189 m_ui.listWidget->addAction(m_renameAction);
190 m_ui.listWidget->addAction(m_removeAction);
192 m_ui.newButton->setDefaultAction(m_newAction);
193 m_ui.editButton->setDefaultAction(m_editAction);
194 m_ui.renameButton->setDefaultAction(m_renameAction);
195 m_ui.removeButton->setDefaultAction(m_removeAction);
197 m_ui.listWidget->setContextMenuPolicy(Qt::ActionsContextMenu);
202 if (m_manager == manager)
206 disconnect(m_manager, &QtGradientManager::gradientAdded,
207 this, &QtGradientView::slotGradientAdded);
208 disconnect(m_manager, &QtGradientManager::gradientRenamed,
209 this, &QtGradientView::slotGradientRenamed);
210 disconnect(m_manager, &QtGradientManager::gradientChanged,
211 this, &QtGradientView::slotGradientChanged);
212 disconnect(m_manager, &QtGradientManager::gradientRemoved,
213 this, &QtGradientView::slotGradientRemoved);
215 m_ui.listWidget->clear();
225 QMap<QString, QGradient> gradients = m_manager->gradients();
226 for (
auto itGrad = gradients.cbegin(), end = gradients.cend(); itGrad != end; ++itGrad)
227 slotGradientAdded(itGrad.key(), itGrad.value());
229 connect(m_manager, &QtGradientManager::gradientAdded,
230 this, &QtGradientView::slotGradientAdded);
231 connect(m_manager, &QtGradientManager::gradientRenamed,
232 this, &QtGradientView::slotGradientRenamed);
233 connect(m_manager, &QtGradientManager::gradientChanged,
234 this, &QtGradientView::slotGradientChanged);
235 connect(m_manager, &QtGradientManager::gradientRemoved,
236 this, &QtGradientView::slotGradientRemoved);