mirror of
https://github.com/KDE/latte-dock.git
synced 2025-01-03 21:17:49 +03:00
detailsdlg:provide scheme custom item delegate
This commit is contained in:
parent
7dca67cb68
commit
703c2bd6f6
@ -1,6 +1,7 @@
|
||||
set(lattedock-app_SRCS
|
||||
${lattedock-app_SRCS}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/colorcmbitemdelegate.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/schemecmbitemdelegate.cpp
|
||||
PARENT_SCOPE
|
||||
)
|
||||
|
||||
|
@ -0,0 +1,53 @@
|
||||
/*
|
||||
SPDX-FileCopyrightText: 2020 Michail Vourlakos <mvourlakos@gmail.com>
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include "schemecmbitemdelegate.h"
|
||||
|
||||
// local
|
||||
#include "../schemesmodel.h"
|
||||
#include "../../generic/generictools.h"
|
||||
|
||||
// Qt
|
||||
#include <QColor>
|
||||
#include <QDebug>
|
||||
#include <QModelIndex>
|
||||
#include <QPainter>
|
||||
#include <QString>
|
||||
|
||||
|
||||
namespace Latte {
|
||||
namespace Settings {
|
||||
namespace Details {
|
||||
namespace Delegate {
|
||||
|
||||
SchemeCmbItemDelegate::SchemeCmbItemDelegate(QObject *parent)
|
||||
: QStyledItemDelegate(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void SchemeCmbItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
|
||||
{
|
||||
QStyleOptionViewItem myOptions = option;
|
||||
|
||||
//! background
|
||||
Latte::drawBackground(painter, option);
|
||||
|
||||
QColor backcolor = index.data(Model::Schemes::BACKGROUNDCOLORROLE).value<QColor>();
|
||||
QColor textcolor = index.data(Model::Schemes::TEXTCOLORROLE).value<QColor>();
|
||||
|
||||
//! icon
|
||||
QRect remained = Latte::remainedFromColorSchemeIcon(myOptions, Qt::AlignLeft, 4, 2);
|
||||
Latte::drawColorSchemeIcon(painter, myOptions, textcolor, backcolor, Qt::AlignLeft, 5, 2); //+1px in order to take into account popup window border
|
||||
myOptions.rect = remained;
|
||||
|
||||
//!
|
||||
QStyledItemDelegate::paint(painter, myOptions, index);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
34
app/settings/detailsdialog/delegates/schemecmbitemdelegate.h
Normal file
34
app/settings/detailsdialog/delegates/schemecmbitemdelegate.h
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
SPDX-FileCopyrightText: 2020 Michail Vourlakos <mvourlakos@gmail.com>
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#ifndef SCHEMECMBITEMDELEGATE_H
|
||||
#define SCHEMECMBITEMDELEGATE_H
|
||||
|
||||
// Qt
|
||||
#include <QStyledItemDelegate>
|
||||
|
||||
class QModelIndex;
|
||||
class QWidget;
|
||||
|
||||
namespace Latte {
|
||||
namespace Settings {
|
||||
namespace Details {
|
||||
namespace Delegate {
|
||||
|
||||
class SchemeCmbItemDelegate : public QStyledItemDelegate
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
SchemeCmbItemDelegate(QObject *parent = 0);
|
||||
|
||||
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
@ -12,6 +12,7 @@
|
||||
#include "patternwidget.h"
|
||||
#include "schemesmodel.h"
|
||||
#include "delegates/colorcmbitemdelegate.h"
|
||||
#include "delegates/schemecmbitemdelegate.h"
|
||||
#include "../settingsdialog/layoutscontroller.h"
|
||||
#include "../settingsdialog/layoutsmodel.h"
|
||||
#include "../settingsdialog/delegates/layoutcmbitemdelegate.h"
|
||||
@ -59,6 +60,7 @@ void DetailsHandler::init()
|
||||
|
||||
//! Schemes
|
||||
m_ui->customSchemeCmb->setModel(m_schemesModel);
|
||||
m_ui->customSchemeCmb->setItemDelegate(new Settings::Details::Delegate::SchemeCmbItemDelegate(this));
|
||||
|
||||
//! Background Pattern
|
||||
m_backButtonsGroup = new QButtonGroup(this);
|
||||
|
Loading…
Reference in New Issue
Block a user