Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ Build-Depends: debhelper-compat (=11),
libegl1-mesa-dev,
libstartup-notification0-dev,
libdtkwidget-dev,
libgtest-dev
libgtest-dev,
libpolkit-qt5-1-dev
Standards-Version: 4.5.1
Homepage: https://github.com/linuxdeepin/deepin-boot-maker
Vcs-Git: https://salsa.debian.org/pkg-deepin-team/deepin-boot-maker.git
Expand Down
25 changes: 25 additions & 0 deletions src/app/bmwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -160,14 +160,39 @@ BMWindow::BMWindow(QWidget *parent)
closeflags = false;
this->setVisible(true);
#endif

DWindowManagerHelper::instance()->setMotifFunctions(windowHandle(), DWindowManagerHelper::FUNC_CLOSE, false);
titlebar()->setQuitMenuDisabled(true);
d->usbWidget->setEnabled(false);

#ifdef Q_OS_WIN
slideWidget(d->usbWidget, d->progressWidget);
d->wsib->setCurrentPage(2);
#endif

auto isoFilePath = property("bmISOFilePath").toString();
qDebug() << "call interface install" << partition << format;
emit d->interface->startInstall(isoFilePath, "", partition, format);
// Linux: wait for startInstallRet() polkit authorization check result, then animate the widget.
});

#ifndef Q_OS_WIN
// Check polkit authorization success, not availiable on windows.
connect(d->interface, &BMInterface::startInstallRet, this, [ = ](bool success) {
if (success) {
slideWidget(d->usbWidget, d->progressWidget);
d->wsib->setCurrentPage(2);
} else {
qWarning() << "call interface install return failed";

d->usbWidget->resetStartInstall();
d->usbWidget->setEnabled(true);
titlebar()->setQuitMenuDisabled(false);
DWindowManagerHelper::instance()->setMotifFunctions(windowHandle(), DWindowManagerHelper::FUNC_CLOSE, true);
}
});
#endif

connect(d->progressWidget, &ProgressView::testCancel, this, [ = ] {
setWindowFlags(windowFlags() | Qt::WindowCloseButtonHint);
d->resultWidget->updateResult(BMHandler::SyscExecFailed, "title", "description");
Expand Down
33 changes: 19 additions & 14 deletions src/app/view/usbselectview.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -146,25 +146,25 @@ UsbSelectView::UsbSelectView(DWidget *parent) : DWidget(parent)
usbPanelLayout->addSpacing(15);
usbPanelLayout->addLayout(checkBoxLayout);

DSuggestButton *start = new DSuggestButton;
start->setAccessibleName("usbSelectWidget_startButton");
start->setFocusPolicy(Qt::NoFocus);
start->setObjectName("StartMake");
start->setText(tr("Start"));
DFontSizeManager::instance()->bind(start, DFontSizeManager::T6);
start->setDisabled(true);
start->setFixedHeight(36);
m_start = new DSuggestButton;
m_start->setAccessibleName("usbSelectWidget_startButton");
m_start->setFocusPolicy(Qt::NoFocus);
m_start->setObjectName("StartMake");
m_start->setText(tr("Start"));
DFontSizeManager::instance()->bind(m_start, DFontSizeManager::T6);
m_start->setDisabled(true);
m_start->setFixedHeight(36);
DPushButton* pBackBtn = new DPushButton(tr("Back", "button"));
pBackBtn->setAccessibleName("usbSelectWidget_backBuuton");
pBackBtn->setFocusPolicy(Qt::NoFocus);
DFontSizeManager::instance()->bind(start, DFontSizeManager::T6);
DFontSizeManager::instance()->bind(m_start, DFontSizeManager::T6);
pBackBtn->setDisabled(false);
pBackBtn->setFixedHeight(36);
QHBoxLayout* pHlayout = new QHBoxLayout;
pHlayout->setContentsMargins(20, 0, 20, 0);
pHlayout->setSpacing(10);
pHlayout->addWidget(pBackBtn);
pHlayout->addWidget(start);
pHlayout->addWidget(m_start);

mainLayout->addWidget(m_title, 0, Qt::AlignHCenter);
mainLayout->addStretch();
Expand Down Expand Up @@ -282,7 +282,7 @@ UsbSelectView::UsbSelectView(DWidget *parent) : DWidget(parent)
}
}

start->setDisabled(!hasPartitionSelected);
m_start->setDisabled(!hasPartitionSelected);

if (!hasPartitionSelected) {
this->setProperty("last_path", "");
Expand Down Expand Up @@ -332,13 +332,13 @@ UsbSelectView::UsbSelectView(DWidget *parent) : DWidget(parent)
infoItem->setCheck(true);
this->setProperty("last_path", infoItem->property("path").toString());
this->setProperty("last_fstype", infoItem->property("fstype").toString());
start->setDisabled(false);
m_start->setDisabled(false);
}
m_previous = current;
});


connect(start, &DPushButton::clicked, this, [ = ] {
connect(m_start, &DPushButton::clicked, this, [ = ] {
auto format = m_formatDiskCheck->isChecked();

QString usbMountPoint = XSys::DiskUtil::MountPoint(this->property("last_path").toString());
Expand Down Expand Up @@ -368,7 +368,7 @@ UsbSelectView::UsbSelectView(DWidget *parent) : DWidget(parent)
return;
}

start->setEnabled(false);
m_start->setEnabled(false);
#ifdef Q_OS_LINUX
if (!m_formatDiskCheck->isChecked() && "vfat" != this->property("last_fstype").toString())
{
Expand All @@ -390,3 +390,8 @@ void UsbSelectView::getIsoFileSelectedPath(QString isoPath)
{
this->setProperty("isoFilePath",isoPath);
}

void UsbSelectView::resetStartInstall()
{
m_start->setEnabled(true);
}
4 changes: 4 additions & 0 deletions src/app/view/usbselectview.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include <DWidget>
#include <DFrame>
#include <DLabel>
#include <DSuggestButton>
#include <bminterface.h>
#include <QListWidgetItem>

Expand All @@ -24,11 +25,14 @@ class UsbSelectView : public DWidget
void deviceSelected(const QString &partition, bool format);
void finish(quint32 error, const QString &title, const QString &description);
void backToPrevUI();

public slots:
void getIsoFileSelectedPath(QString isoPath);
void resetStartInstall();

private:
QList<DeviceInfo> m_mountDevs;
QListWidgetItem *m_previous = nullptr;
DSuggestButton *m_start = nullptr;
};

20 changes: 13 additions & 7 deletions src/libdbm/backend/bmdbushandler.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ class BMDbusHandler : public BMHandler
if (!m_dbus->isValid()) {
qDebug() << "m_dbus isValid false error:" << m_dbus->lastError();
}

// Not default timeout (~25s), waiting for polkit authorization to complete.
m_dbus->setTimeout(INT_MAX);

qDebug() << "m_dbus isValid true";
connect(m_dbus, &BMDBusInterface::DeviceListChanged,
this, [ = ](const QString & addlistJson, const QString& dellistJson) {
Expand All @@ -43,24 +47,24 @@ class BMDbusHandler : public BMHandler
}

public slots:
void reboot()
void reboot() override
{
m_dbus->Reboot();
}

void start()
void start() override
{
qDebug() << "start";
m_dbus->Start();
qDebug() << "m_dbus Start error:" << m_dbus->lastError();
}

void stop()
void stop() override
{
m_dbus->Stop();
}

const QList<DeviceInfo> deviceList() const
const QList<DeviceInfo> deviceList() const override
{
qDebug() << "deviceList";
return deviceListFromJson(m_dbus->DeviceList());
Expand All @@ -69,13 +73,15 @@ public slots:
bool install(const QString &image,
const QString &device,
const QString &partition,
bool formatDevice)
bool formatDevice) override
{
qDebug() << "install";
return m_dbus->Install(image, device, partition, formatDevice);
bool ret = m_dbus->Install(image, device, partition, formatDevice);
Q_EMIT startInstallRet(ret);
return ret;
}

bool checkfile(const QString &filepath)
bool checkfile(const QString &filepath) override
{
qDebug() << "checkfile";
return m_dbus->CheckFile(filepath);
Expand Down
4 changes: 2 additions & 2 deletions src/libdbm/backend/bmhandler.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ class BMHandler : public QObject
void removablePartitionsChanged(const QList<DeviceInfo> &addlist, const QList<DeviceInfo>& reducelist);
void finished(int errcode, const QString &description);
void reportProgress(int current, int error, const QString &title, const QString &description);
void reportProgress1(int current, int error, const QString &title, const QString &description);
// void checkFileResult(bool result);
void reportProgress1(int current, int error, const QString &title, const QString &description);
void startInstallRet(bool success);

public slots:
virtual void reboot() = 0;
Comment thread
rb-union marked this conversation as resolved.
Expand Down
28 changes: 12 additions & 16 deletions src/libdbm/backend/bootmaker.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ class BootMaker : public BMHandler
Q_OBJECT
public:
explicit BootMaker(QObject *parent = nullptr);
virtual ~BootMaker() {

virtual ~BootMaker() override
{
if (m_pInstaller != nullptr) {
delete m_pInstaller;
m_pInstaller = nullptr;
Expand All @@ -27,22 +27,18 @@ class BootMaker : public BMHandler
m_monitorWork->wait();
m_monitorWork->deleteLater();
}

}

public slots:
void reboot();
void start();
void stop();
const QList<DeviceInfo> deviceList() const;
bool install(const QString &image,
const QString &device,
const QString &partition,
bool formatDevice);
bool checkfile(const QString &filepath);
void reboot() override;
void start() override;
void stop() override;
const QList<DeviceInfo> deviceList() const override;
bool install(const QString &image, const QString &device, const QString &partition, bool formatDevice) override;
bool checkfile(const QString &filepath) override;

private:
DeviceMonitor* m_usbDeviceMonitor = nullptr;
QtBaseInstaller* m_pInstaller;
QThread* m_monitorWork;
DeviceMonitor *m_usbDeviceMonitor = nullptr;
QtBaseInstaller *m_pInstaller = nullptr;
QThread *m_monitorWork = nullptr;
};

2 changes: 2 additions & 0 deletions src/libdbm/bminterface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ BMInterface::BMInterface(QObject *parent) :
this,&BMInterface::reportProgress1);
connect(this, &BMInterface::startInstall,
d->handler, &BMHandler::startInstall );
connect(d->handler, &BMHandler::startInstallRet,
this, &BMInterface::startInstallRet);
}

BMInterface::~BMInterface()
Expand Down
3 changes: 2 additions & 1 deletion src/libdbm/bminterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ class BMInterface : public QObject, public Dtk::Core::DSingleton<BMInterface>
const QString &device,
const QString &partition,
bool formatDevice);
// void checkFileResult(bool result);
void startInstallRet(bool success);

public slots:
void start();
void stop();
Expand Down
8 changes: 5 additions & 3 deletions src/service/LogManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ void DBMLogManager::initConsoleAppender()
{
m_consoleAppender = new ConsoleAppender;
m_consoleAppender->setFormat(m_format);
logger->registerAppender(m_consoleAppender);
loggerInstance()->registerAppender(m_consoleAppender);
}

void DBMLogManager::initRollingFileAppender()
Expand All @@ -25,15 +25,17 @@ void DBMLogManager::initRollingFileAppender()
cachePath = QString("/var/log/%1").arg(qApp->organizationName());
}
if (!QDir(cachePath).exists()) {
QDir(cachePath).mkpath(cachePath);
if (!QDir(cachePath).mkpath(cachePath)) {
return;
}
}
m_logPath = joinPath(cachePath, QString("%1.log").arg(qApp->applicationName()));

m_rollingFileAppender = new RollingFileAppender(m_logPath);
m_rollingFileAppender->setFormat(m_format);
m_rollingFileAppender->setLogFilesLimit(5);
m_rollingFileAppender->setDatePattern(RollingFileAppender::DailyRollover);
logger->registerAppender(m_rollingFileAppender);
loggerInstance()->registerAppender(m_rollingFileAppender);
}

//! Registers the appender to write the log records to the Console
Expand Down
Loading