|
@@ -1,4 +1,4 @@
|
|
|
-#include "AddSchemeWidget.h"
|
|
|
+#include "CreateSchemeWidget.h"
|
|
|
|
|
|
#include <Widgets/Button.h>
|
|
|
#include <Widgets/LineEdit.h>
|
|
@@ -8,7 +8,9 @@
|
|
|
#include <QDebug>
|
|
|
#include <QFileDialog>
|
|
|
|
|
|
-AddSchemeWidget::AddSchemeWidget(QWidget *parent) : QDialog(parent)
|
|
|
+static const QString kNullImageTag = "无效图片";
|
|
|
+
|
|
|
+CreateSchemeWidget::CreateSchemeWidget(QWidget *parent) : QDialog(parent)
|
|
|
{
|
|
|
initWindow();
|
|
|
initialize();
|
|
@@ -16,13 +18,14 @@ AddSchemeWidget::AddSchemeWidget(QWidget *parent) : QDialog(parent)
|
|
|
connectSignalsAndSlots();
|
|
|
}
|
|
|
|
|
|
-void AddSchemeWidget::clearInputs()
|
|
|
+void CreateSchemeWidget::clearInputs()
|
|
|
{
|
|
|
m_nameEdit->clear();
|
|
|
m_schemeEdit->clear();
|
|
|
+ m_picLine->clear();
|
|
|
}
|
|
|
|
|
|
-void AddSchemeWidget::initWindow()
|
|
|
+void CreateSchemeWidget::initWindow()
|
|
|
{
|
|
|
setWindowTitle("新建方案");
|
|
|
setModal(true);
|
|
@@ -31,7 +34,7 @@ void AddSchemeWidget::initWindow()
|
|
|
resize(370, 350);
|
|
|
}
|
|
|
|
|
|
-void AddSchemeWidget::initialize()
|
|
|
+void CreateSchemeWidget::initialize()
|
|
|
{
|
|
|
m_vBoxLayout = new QVBoxLayout(this);
|
|
|
m_gridLayout = new QGridLayout();
|
|
@@ -54,7 +57,7 @@ void AddSchemeWidget::initialize()
|
|
|
m_confirButton->setEnabled(false);
|
|
|
}
|
|
|
|
|
|
-void AddSchemeWidget::initLayout()
|
|
|
+void CreateSchemeWidget::initLayout()
|
|
|
{
|
|
|
m_vBoxLayout->setMargin(15);
|
|
|
|
|
@@ -74,41 +77,40 @@ void AddSchemeWidget::initLayout()
|
|
|
m_hBoxLayout->addWidget(m_confirButton);
|
|
|
}
|
|
|
|
|
|
-void AddSchemeWidget::connectSignalsAndSlots()
|
|
|
+void CreateSchemeWidget::connectSignalsAndSlots()
|
|
|
{
|
|
|
- connect(m_picButton, &QPushButton::clicked, this, &AddSchemeWidget::slotSelectPic);
|
|
|
- connect(m_nameEdit, &LineEdit::textChanged, this, &AddSchemeWidget::slotContentChanged);
|
|
|
- connect(m_schemeEdit, &TextEdit::textChanged, this, &AddSchemeWidget::slotContentChanged);
|
|
|
- connect(m_picLine, &LineEdit::textChanged, this, &AddSchemeWidget::slotContentChanged);
|
|
|
- connect(m_confirButton, &PushButton::clicked, this, &AddSchemeWidget::slotConfirmed);
|
|
|
+ connect(m_picButton, &QPushButton::clicked, this, &CreateSchemeWidget::slotSelectPic);
|
|
|
+ connect(m_nameEdit, &LineEdit::textChanged, this, &CreateSchemeWidget::slotContentChanged);
|
|
|
+ connect(m_schemeEdit, &TextEdit::textChanged, this, &CreateSchemeWidget::slotContentChanged);
|
|
|
+ connect(m_picLine, &LineEdit::textChanged, this, &CreateSchemeWidget::slotContentChanged);
|
|
|
+ connect(m_confirButton, &PushButton::clicked, this, &CreateSchemeWidget::slotConfirmed);
|
|
|
}
|
|
|
|
|
|
-void AddSchemeWidget::slotSelectPic()
|
|
|
+void CreateSchemeWidget::slotSelectPic()
|
|
|
{
|
|
|
- qDebug() << __FUNCTION__ << __LINE__ << endl;
|
|
|
- QFileDialog::Options options;
|
|
|
- options |= QFileDialog::DontUseNativeDialog;
|
|
|
- QString selectedFilter;
|
|
|
- QString fileName = QFileDialog::getOpenFileName(this, "选择图片", "", "图片(*.jpg *.png *jpeg *bmp)",
|
|
|
- &selectedFilter, options);
|
|
|
-
|
|
|
- bool fileValid = true;
|
|
|
- if (fileName.isEmpty() || fileName.size() <= 0) {
|
|
|
- fileValid = false;
|
|
|
- return;
|
|
|
+ QString fileName = QFileDialog::getOpenFileName(nullptr, "Open Image", "", "images(*.bmp *.png *.jpg *.webp)");
|
|
|
+
|
|
|
+ QFile file(fileName);
|
|
|
+ file.open(QIODevice::ReadOnly);
|
|
|
+ QByteArray data = file.readAll();
|
|
|
+ QPixmap pixmap;
|
|
|
+ pixmap.loadFromData(data);
|
|
|
+
|
|
|
+ if (pixmap.isNull()) {
|
|
|
+ m_picLine->setText(kNullImageTag);
|
|
|
+ } else {
|
|
|
+ m_picLine->setText(fileName);
|
|
|
}
|
|
|
-
|
|
|
- m_picLine->setText(fileName);
|
|
|
}
|
|
|
|
|
|
-void AddSchemeWidget::slotContentChanged()
|
|
|
+void CreateSchemeWidget::slotContentChanged()
|
|
|
{
|
|
|
bool valid = m_nameEdit->text().length() > 0 && m_schemeEdit->toPlainText().length() > 0
|
|
|
- && m_picLine->text().length() > 0;
|
|
|
+ && m_picLine->text().length() > 0 && m_picLine->text() != kNullImageTag;
|
|
|
m_confirButton->setEnabled(valid);
|
|
|
}
|
|
|
|
|
|
-void AddSchemeWidget::slotConfirmed()
|
|
|
+void CreateSchemeWidget::slotConfirmed()
|
|
|
{
|
|
|
emit sigSchemeInfoConfirmed(m_nameEdit->text(), m_schemeEdit->toPlainText(), m_picLine->text());
|
|
|
close();
|