1
0
Fork 0
mirror of https://github.com/eliboa/TegraRcmGUI.git synced 2024-11-08 19:52:07 +00:00
TegraRcmGUI/qsettings.cpp
2020-12-11 12:46:53 +01:00

89 lines
2.7 KiB
C++

#include "qsettings.h"
#include "ui_qsettings.h"
#include "qutils.h"
#include <QProcess>
qSettings::qSettings(TegraRcmGUI *parent) : QWidget(parent),
ui(new Ui::qSettings), parent(parent)
{
ui->setupUi(this);
m_kourou = parent->m_kourou;
m_device = &parent->m_device;
/// Stylesheets
// Apply stylesheet to all buttons
auto btnSs = GetStyleSheetFromResFile(":/res/QPushButton.qss");
auto buttons = this->findChildren<QPushButton*>();
for (int i = 0; i < buttons.count(); i++)
{
buttons.at(i)->setStyleSheet(btnSs);
buttons.at(i)->setCursor(Qt::PointingHandCursor);
}
for (auto it : {ui->minTrayFrame, ui->driverFrame, ui->PkgmFrame})
it->setStyleSheet(GetStyleSheetFromResFile(":/res/QFrame_box02.qss"));
for (auto it : { ui->minTrayLbl, ui->driverLbl, ui->PkgmLbl})
it->setStyleSheet(GetStyleSheetFromResFile(":/res/QLabel_title02.qss"));
// Switch
minTraySwitch = new Switch(parent->userSettings->contains("minToTray") && parent->userSettings->value("minToTray").toBool() ? true : false, 50);
ui->minTrayLayout->addWidget(minTraySwitch);
connect(minTraySwitch, SIGNAL(clicked()), this, SLOT(on_minToTraySwitch_toggled()));
}
qSettings::~qSettings()
{
delete ui;
}
void qSettings::on_driverMissing()
{
QString message(tr("The required APX device driver is missing.\nDo you wan to install it now ?"));
if(QMessageBox::question(this, "Warning", message, QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes)
{
on_installDriverButton_clicked();
}
}
void qSettings::on_installDriverButton_clicked()
{
QString q_path = QDir(".").absolutePath() + "/apx_driver/InstallDriver.exe";
QFile file(q_path);
if (!file.exists())
{
QMessageBox::critical(this, "Error", tr("InstallDriver.exe not found!\nExpected location: ") + q_path);
return;
}
std::wstring w_path = q_path.toStdWString();
LPCWSTR path = (const wchar_t*) w_path.c_str();
SHELLEXECUTEINFO shExInfo = { 0 };
shExInfo.cbSize = sizeof(shExInfo);
shExInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
shExInfo.hwnd = nullptr;
shExInfo.lpVerb = _T("runas");
shExInfo.lpFile = path;
shExInfo.lpDirectory = nullptr;
shExInfo.nShow = SW_SHOW;
shExInfo.hInstApp = nullptr;
if (ShellExecuteEx(&shExInfo))
{
CloseHandle(shExInfo.hProcess);
}
}
void qSettings::on_minToTraySwitch_toggled()
{
parent->userSettings->setValue("minToTray", minTraySwitch->getState());
}
void qSettings::on_packagesButton_clicked()
{
auto dialog = new PackageManager(&parent->m_pkgs, parent);
dialog->setAttribute(Qt::WA_DeleteOnClose);
dialog->exec();
//delete dialog;
}