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