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