1
0
forked from BRT/arc
arc/views/common/PaddedItemDelegate.h
slava dd66adf455 Add bank management functionality with UI and DAO improvements
Introduce `BankSettingsWindow` for managing bank data, added `EditBankDialog` for editing bank details, and created reusable `PaddedItemDelegate` for list padding. Refactor DAO to support fetching multiple applications by device ID for improved data handling. Adjust existing components to integrate new bank-related features.
2025-05-27 14:25:33 +07:00

36 lines
1.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <QStyledItemDelegate>
#include <QMargins>
class PaddedItemDelegate final : public QStyledItemDelegate {
Q_OBJECT
public:
explicit PaddedItemDelegate(const QMargins &margins, QObject *parent = nullptr)
: QStyledItemDelegate(parent), m_margins(margins) {
}
void initStyleOption(QStyleOptionViewItem *option, const QModelIndex &index) const override {
QStyledItemDelegate::initStyleOption(option, index);
// «вырезаем» рамки со всех сторон
option->rect = option->rect.adjusted(
m_margins.left(),
m_margins.top(),
-m_margins.right(),
-m_margins.bottom()
);
}
// расширяем sizeHint — чтобы ResizeToContents «увидел» отступы
[[nodiscard]] QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override {
const QSize baseSize = QStyledItemDelegate::sizeHint(option, index);
return QSize(
baseSize.width() + m_margins.left() + m_margins.right(),
baseSize.height() + m_margins.top() + m_margins.bottom()
);
}
private:
QMargins m_margins;
};