!70 add grub delete function and fix some UI bugs
Merge pull request !70 from likehomedream/plymouthshow
This commit is contained in:
commit
9c4be69041
|
@ -221,5 +221,6 @@
|
|||
<file>resource/plymouth/1.png</file>
|
||||
<file>resource/background/custom-preview.png</file>
|
||||
<file>resource/background/1-openkylin.jpg</file>
|
||||
<file>resource/background/grub-background.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 15 MiB |
|
@ -52,7 +52,7 @@ private:
|
|||
QString m_coverpath = ":/resource/background/custom-preview.png";
|
||||
QString m_plymouthpath = ":/resource/background/openKylin.svg";
|
||||
QString m_plymouthdir = ":/resource/plymouth/";
|
||||
QString m_grubpath = ":/resource/background/1-warty-final-ubuntukylin.jpg";
|
||||
QString m_grubpath = ":/resource/background/grub-background.png";
|
||||
// QDir m_builderConfig;
|
||||
// QDir m_buildericons;
|
||||
// QDir m_builderappicon;
|
||||
|
|
|
@ -150,3 +150,71 @@ void GrubImageWidget::updateBackground(const QString &imagePath)
|
|||
graphicsView->resetTransform();
|
||||
graphicsView->scale(initialScale, initialScale);
|
||||
}
|
||||
|
||||
GrubEditButton::GrubEditButton(QWidget *parent) : closeIconRect(0, 0, 0, 0)
|
||||
{
|
||||
this->setMouseTracking(true);
|
||||
this->setFixedSize(160,100);
|
||||
initializeCloseIconRect();
|
||||
}
|
||||
|
||||
void GrubEditButton::showCloseIcon()
|
||||
{
|
||||
closeIconPixmap = QIcon::fromTheme("window-close-symbolic").pixmap(10, 10);
|
||||
this->update();
|
||||
}
|
||||
|
||||
void GrubEditButton::hideCloseIcon()
|
||||
{
|
||||
closeIconPixmap = QPixmap(); // 将关闭图标的pixmap置空
|
||||
update(); // 重新绘制以清除关闭图标
|
||||
}
|
||||
|
||||
void GrubEditButton::initializeCloseIconRect()
|
||||
{
|
||||
closeIconRect = QRect(width() - 15, 5, 10, 10);
|
||||
}
|
||||
|
||||
void GrubEditButton::drawCloseIcon(QPainter &painter)
|
||||
{
|
||||
if(!closeIconPixmap.isNull()){
|
||||
painter.drawPixmap(closeIconRect, closeIconPixmap);
|
||||
}
|
||||
}
|
||||
|
||||
void GrubEditButton::paintEvent(QPaintEvent *event)
|
||||
{
|
||||
QPushButton::paintEvent(event);
|
||||
QPainter painter(this);
|
||||
if (!pixmap.isNull()) {
|
||||
painter.drawPixmap(rect(), pixmap);
|
||||
}
|
||||
drawCloseIcon(painter); // 调用绘制关闭图标的函数
|
||||
}
|
||||
|
||||
void GrubEditButton::enterEvent(QEvent *event)
|
||||
{
|
||||
QPushButton::enterEvent(event);
|
||||
showCloseIcon(); // 在这个函数中显示“x”图标
|
||||
|
||||
}
|
||||
|
||||
void GrubEditButton::leaveEvent(QEvent *event)
|
||||
{
|
||||
QPushButton::leaveEvent(event);
|
||||
hideCloseIcon(); // 在这个函数中隐藏“x”图标
|
||||
}
|
||||
|
||||
void GrubEditButton::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
|
||||
if (closeIconRect.contains(event->pos())) {
|
||||
emit deleteCustomPic();
|
||||
hideCloseIcon(); // 在这个函数中隐藏“x”图标
|
||||
} else {
|
||||
// 处理其他点击事件
|
||||
QPushButton::mousePressEvent(event);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <QWheelEvent>
|
||||
#include <QPainter>
|
||||
#include <QtMath>
|
||||
#include <QPushButton>
|
||||
|
||||
class GrubGraphicsView : public QGraphicsView {
|
||||
public:
|
||||
|
@ -23,6 +24,30 @@ protected:
|
|||
|
||||
};
|
||||
|
||||
class GrubEditButton : public QPushButton {
|
||||
Q_OBJECT
|
||||
public:
|
||||
GrubEditButton(QWidget *parent = nullptr);
|
||||
|
||||
void setPixmap(const QPixmap& pixmap);
|
||||
void showCloseIcon();
|
||||
void hideCloseIcon();
|
||||
void initializeCloseIconRect();
|
||||
void drawCloseIcon(QPainter &painter);
|
||||
protected:
|
||||
void paintEvent(QPaintEvent* event) override;
|
||||
|
||||
void enterEvent(QEvent *event);
|
||||
void leaveEvent(QEvent *event);
|
||||
void mousePressEvent(QMouseEvent *event);
|
||||
signals:
|
||||
void deleteCustomPic();
|
||||
private:
|
||||
QRect closeIconRect;
|
||||
QPixmap pixmap;
|
||||
QPixmap closeIconPixmap;
|
||||
};
|
||||
|
||||
class GrubImageWidget : public QWidget {
|
||||
public:
|
||||
GrubImageWidget(QWidget *parent = nullptr);
|
||||
|
|
|
@ -90,15 +90,17 @@ void GrubThemeWidget::initEditWidget()
|
|||
QWidget *grubWidget = new QWidget();
|
||||
QHBoxLayout *widgetLayout = new QHBoxLayout();
|
||||
|
||||
m_showBtn = new QPushButton();
|
||||
m_showBtn = new GrubEditButton();
|
||||
m_showBtn->setFixedSize(160,100);
|
||||
|
||||
QPixmap pixmap(resourceGrubPath);
|
||||
m_showBtn->setIcon(QIcon(pixmap));
|
||||
m_showBtn->setIconSize(QSize(130,80));
|
||||
QLabel *tipLabel1 = new QLabel();
|
||||
tipLabel1->setText("<html>尺寸:3840*2160<br>大小:不超过 10 MB<br>格式:PNG</html>");
|
||||
|
||||
connect(m_showBtn, &QPushButton::clicked, this, [=]() {
|
||||
// 弹出文件选择对话框,选择图片文件
|
||||
QString newFilePath = QFileDialog::getOpenFileName(this, tr("Select picture file"), "", tr("Picture file (*.png *.jpg)"));
|
||||
QString newFilePath = QFileDialog::getOpenFileName(this, tr("Select picture file"), "", tr("Picture file (*.png)"));
|
||||
|
||||
// 如果选择的文件路径不为空
|
||||
if (!newFilePath.isEmpty()) {
|
||||
|
@ -110,7 +112,7 @@ void GrubThemeWidget::initEditWidget()
|
|||
QPixmap pixmap(newFilePath);
|
||||
// 设置按钮的图标为加载的图片文件对应的图标,并设置图标大小为按钮的大小
|
||||
m_showBtn->setIcon(QIcon(pixmap));
|
||||
m_showBtn->setIconSize(m_showBtn->size());
|
||||
m_showBtn->setIconSize(QSize(130,80));
|
||||
// 发出新的Grub文件路径信号
|
||||
emit newGrubFilePath(newFilePath);
|
||||
g_themeChange = true;
|
||||
|
@ -119,6 +121,13 @@ void GrubThemeWidget::initEditWidget()
|
|||
qDebug() << "Selected file path:" << newFilePath;
|
||||
}
|
||||
});
|
||||
connect(m_showBtn,&GrubEditButton::deleteCustomPic,this,[=](){
|
||||
m_preview->updateBackground(resourceGrubPath);
|
||||
QPixmap pixmap(resourceGrubPath);
|
||||
m_showBtn->setIcon(QIcon(pixmap));
|
||||
m_showBtn->setIconSize(QSize(130,80));
|
||||
emit newGrubFilePath(resourceGrubPath);
|
||||
});
|
||||
|
||||
widgetLayout->addWidget(m_showBtn);
|
||||
widgetLayout->addWidget(tipLabel1);
|
||||
|
@ -131,17 +140,20 @@ void GrubThemeWidget::initEditWidget()
|
|||
|
||||
void GrubThemeWidget::eidtInitWidget(const HistoryInfo &InfoData)
|
||||
{
|
||||
QString imagedirpath = InfoData.filepath+"/src/grubTheme/background.jpg";
|
||||
QString imagedirpath = InfoData.filepath+"/src/grubTheme/background.png";
|
||||
|
||||
m_preview->updateBackground(imagedirpath);
|
||||
QPixmap pixmap(imagedirpath);
|
||||
m_showBtn->setIcon(QIcon(pixmap));
|
||||
m_showBtn->setIconSize(m_showBtn->size());
|
||||
m_showBtn->setIconSize(QSize(130,80));
|
||||
}
|
||||
|
||||
void GrubThemeWidget::refresh()
|
||||
{
|
||||
m_preview->updateBackground(":/resource/background/1-warty-final-ubuntukylin.jpg");
|
||||
m_showBtn->setIcon(QPixmap());
|
||||
m_preview->updateBackground(resourceGrubPath);
|
||||
QPixmap pixmap(resourceGrubPath);
|
||||
m_showBtn->setIcon(QIcon(pixmap));
|
||||
m_showBtn->setIconSize(QSize(130,80));
|
||||
}
|
||||
|
||||
void GrubThemeWidget::addspaceritem()
|
||||
|
|
|
@ -26,12 +26,13 @@ public:
|
|||
signals:
|
||||
void newGrubFilePath(const QString& path);
|
||||
private:
|
||||
const QString resourceGrubPath = ":/resource/background/grub-background.png";
|
||||
QWidget *m_previewwidget;
|
||||
GrubImageWidget *m_preview;
|
||||
QWidget *m_rightwidget;
|
||||
QWidget *m_grubwidget;
|
||||
QVBoxLayout *m_previewlayout;
|
||||
QPushButton *m_showBtn;
|
||||
GrubEditButton *m_showBtn;
|
||||
};
|
||||
|
||||
#endif // GRUBTHEMEWIDGET_H
|
||||
|
|
|
@ -194,12 +194,13 @@ void HistoryButton::initUI()
|
|||
QVBoxLayout* layout = new QVBoxLayout(this);
|
||||
|
||||
QLabel* imageLabel = new QLabel;
|
||||
imageLabel->setFixedSize(QSize(208, 137));
|
||||
imageLabel->setAlignment(Qt::AlignCenter);
|
||||
|
||||
layout->addWidget(imageLabel);
|
||||
|
||||
QString imagePath = nullptr;
|
||||
if(nullptr == m_coverpath){
|
||||
imagePath = ":/resource/background/background-light.png";
|
||||
imagePath = ":/resource/background/custom-preview.png";
|
||||
}else{
|
||||
imagePath = m_coverpath;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue