| 21 | #include "ElaToolButton.h" |
| 22 | Q_TAKEOVER_NATIVEEVENT_CPP(ElaColorDialog, d_func()->_appBar); |
| 23 | ElaColorDialog::ElaColorDialog(QWidget* parent) |
| 24 | : QDialog{parent}, d_ptr(new ElaColorDialogPrivate()) |
| 25 | { |
| 26 | Q_D(ElaColorDialog); |
| 27 | d->q_ptr = this; |
| 28 | setFixedSize(600, 600); // 默认宽高 |
| 29 | setObjectName("ElaColorDialog"); |
| 30 | setWindowTitle("ElaColorDialog"); |
| 31 | setWindowModality(Qt::ApplicationModal); |
| 32 | |
| 33 | // 自定义AppBar |
| 34 | d->_appBar = new ElaAppBar(this); |
| 35 | d->_appBar->setAppBarHeight(30); |
| 36 | d->_appBar->setIsFixedSize(true); |
| 37 | d->_appBar->setIsStayTop(true); |
| 38 | d->_appBar->setWindowButtonFlags(ElaAppBarType::CloseButtonHint); |
| 39 | d->_appBar->setIsDefaultClosed(false); |
| 40 | connect(d->_appBar, &ElaAppBar::closeButtonClicked, this, [=]() { |
| 41 | close(); |
| 42 | }); |
| 43 | |
| 44 | // 颜色选择器 |
| 45 | ElaText* colorPickerText = new ElaText("编辑颜色", this); |
| 46 | colorPickerText->setTextPixelSize(17); |
| 47 | QHBoxLayout* colorPickerTextLayout = new QHBoxLayout(); |
| 48 | colorPickerTextLayout->setContentsMargins(0, 0, 0, 0); |
| 49 | colorPickerTextLayout->addSpacing(3); |
| 50 | colorPickerTextLayout->addWidget(colorPickerText); |
| 51 | |
| 52 | d->_colorPicker = new ElaColorPicker(this); |
| 53 | connect(d->_colorPicker, &ElaColorPicker::selectedColorChanged, d, &ElaColorDialogPrivate::onColorPickerColorChanged); |
| 54 | |
| 55 | QVBoxLayout* colorPickerLayout = new QVBoxLayout(); |
| 56 | colorPickerLayout->setContentsMargins(0, 0, 0, 0); |
| 57 | colorPickerLayout->addWidget(d->_colorPicker); |
| 58 | colorPickerLayout->addStretch(); |
| 59 | |
| 60 | // 颜色预览 |
| 61 | d->_colorPreview = new ElaColorPreview(this); |
| 62 | QVBoxLayout* colorPreviewLayout = new QVBoxLayout(); |
| 63 | colorPreviewLayout->setContentsMargins(0, 0, 0, 0); |
| 64 | colorPreviewLayout->addWidget(d->_colorPreview); |
| 65 | colorPreviewLayout->addStretch(); |
| 66 | |
| 67 | // 颜色value控制 |
| 68 | d->_colorValueSlider = new QSlider(this); |
| 69 | d->_colorValueSlider->setFixedHeight(257); |
| 70 | d->_colorValueSlider->setOrientation(Qt::Vertical); |
| 71 | d->_colorValueSlider->setRange(0, 255); |
| 72 | d->_colorValueSlider->setValue(255); |
| 73 | d->_colorValueSliderStyle = new ElaColorValueSliderStyle(); |
| 74 | d->_colorValueSlider->setStyle(d->_colorValueSliderStyle); |
| 75 | connect(d->_colorValueSlider, &QSlider::valueChanged, d, &ElaColorDialogPrivate::onColorValueSliderChanged); |
| 76 | QVBoxLayout* colorValueSliderLayout = new QVBoxLayout(); |
| 77 | colorValueSliderLayout->setContentsMargins(0, 0, 0, 0); |
| 78 | colorValueSliderLayout->addWidget(d->_colorValueSlider); |
| 79 | colorValueSliderLayout->addStretch(); |
| 80 |
nothing calls this directly
no test coverage detected