| 12 | #include "T_IconDelegate.h" |
| 13 | #include "T_IconModel.h" |
| 14 | T_Icon::T_Icon(QWidget* parent) |
| 15 | : T_BasePage(parent) |
| 16 | { |
| 17 | // 预览窗口标题 |
| 18 | setWindowTitle("ElaIcon"); |
| 19 | // 顶部元素 |
| 20 | createCustomWidget("一堆常用图标被放置于此,左键单击以复制其枚举"); |
| 21 | |
| 22 | _metaEnum = QMetaEnum::fromType<ElaIconType::IconName>(); |
| 23 | QWidget* centralWidget = new QWidget(this); |
| 24 | QVBoxLayout* centerVLayout = new QVBoxLayout(centralWidget); |
| 25 | centerVLayout->setContentsMargins(0, 0, 5, 0); |
| 26 | centralWidget->setWindowTitle("ElaIcon"); |
| 27 | // ListView |
| 28 | _iconView = new ElaListView(this); |
| 29 | _iconView->setIsTransparent(true); |
| 30 | _iconView->setFlow(QListView::LeftToRight); |
| 31 | _iconView->setViewMode(QListView::IconMode); |
| 32 | _iconView->setResizeMode(QListView::Adjust); |
| 33 | connect(_iconView, &ElaListView::clicked, this, [=](const QModelIndex& index) { |
| 34 | QString iconName = _iconModel->getIconNameFromModelIndex(index); |
| 35 | if (iconName.isEmpty()) |
| 36 | { |
| 37 | return; |
| 38 | } |
| 39 | qApp->clipboard()->setText(iconName); |
| 40 | ElaMessageBar::success(ElaMessageBarType::Top, "复制完成", iconName + "已被复制到剪贴板", 1000, this); |
| 41 | }); |
| 42 | _iconModel = new T_IconModel(this); |
| 43 | _iconDelegate = new T_IconDelegate(this); |
| 44 | _iconView->setModel(_iconModel); |
| 45 | _iconView->setItemDelegate(_iconDelegate); |
| 46 | _iconView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); |
| 47 | |
| 48 | _searchEdit = new ElaLineEdit(this); |
| 49 | _searchEdit->setPlaceholderText("搜索图标"); |
| 50 | _searchEdit->setFixedSize(300, 35); |
| 51 | connect(_searchEdit, &ElaLineEdit::textEdited, this, &T_Icon::onSearchEditTextEdit); |
| 52 | connect(_searchEdit, &ElaLineEdit::focusIn, this, &T_Icon::onSearchEditTextEdit); |
| 53 | |
| 54 | centerVLayout->addSpacing(13); |
| 55 | centerVLayout->addWidget(_searchEdit); |
| 56 | centerVLayout->addWidget(_iconView); |
| 57 | this->addCentralWidget(centralWidget, true, true, 0); |
| 58 | } |
| 59 | |
| 60 | T_Icon::~T_Icon() |
| 61 | { |
nothing calls this directly
no test coverage detected