Manage KoBox extensions via USB

This commit is contained in:
Nicolas Mailloux 2021-05-13 21:40:05 -04:00
parent f224345c26
commit 5af7dbf07f
6 changed files with 139 additions and 44 deletions

View file

@ -42,6 +42,7 @@ namespace global {
inline bool usbmsDialog; inline bool usbmsDialog;
inline bool showUsbmsDialog; inline bool showUsbmsDialog;
inline bool launchUsbms; inline bool launchUsbms;
inline bool koboxExportExtensions;
} }
namespace settings { namespace settings {
inline bool settingsRebootDialog; inline bool settingsRebootDialog;

View file

@ -3,6 +3,7 @@
#include "functions.h" #include "functions.h"
#include <QFile> #include <QFile>
#include <QScreen>
koboxSettings::koboxSettings(QWidget *parent) : koboxSettings::koboxSettings(QWidget *parent) :
QWidget(parent), QWidget(parent),
@ -10,15 +11,16 @@ koboxSettings::koboxSettings(QWidget *parent) :
{ {
ui->setupUi(this); ui->setupUi(this);
// UI tweaks
ui->okBtn->setProperty("type", "borderless");
ui->pushButton->setProperty("type", "borderless");
// Stylesheet // Stylesheet
QFile stylesheetFile(":/resources/eink.qss"); QFile stylesheetFile(":/resources/eink.qss");
stylesheetFile.open(QFile::ReadOnly); stylesheetFile.open(QFile::ReadOnly);
this->setStyleSheet(stylesheetFile.readAll()); this->setStyleSheet(stylesheetFile.readAll());
stylesheetFile.close(); stylesheetFile.close();
// UI tweaks
ui->okBtn->setProperty("type", "borderless");
if(checkconfig("/external_root/boot/flags/X11_START") == true) { if(checkconfig("/external_root/boot/flags/X11_START") == true) {
ui->koboxStatusLabel->setText("KoBox is <b>enabled</b>"); ui->koboxStatusLabel->setText("KoBox is <b>enabled</b>");
not_user_change = true; not_user_change = true;
@ -80,3 +82,16 @@ void koboxSettings::on_spinBox_valueChanged(int arg1)
string number_str = number.toStdString(); string number_str = number.toStdString();
string_writeconfig(".config/00-kobox/dpiSetting", number_str); string_writeconfig(".config/00-kobox/dpiSetting", number_str);
} }
void koboxSettings::on_pushButton_clicked()
{
// Export Extensions disk image over USB with g_mass_storage
global::usbms::usbmsDialog = false;
global::usbms::launchUsbms = true;
global::usbms::koboxExportExtensions = true;
usbmsWindow = new usbms_splash();
usbmsWindow->setAttribute(Qt::WA_DeleteOnClose);
usbmsWindow->setGeometry(QRect(QPoint(0,0), screen()->geometry ().size()));
usbmsWindow->show();
}

View file

@ -4,6 +4,7 @@
#include <QWidget> #include <QWidget>
#include "generaldialog.h" #include "generaldialog.h"
#include "usbms_splash.h"
namespace Ui { namespace Ui {
class koboxSettings; class koboxSettings;
@ -23,12 +24,13 @@ public:
private slots: private slots:
void on_okBtn_clicked(); void on_okBtn_clicked();
void on_checkBox_toggled(bool checked); void on_checkBox_toggled(bool checked);
void on_spinBox_valueChanged(int arg1); void on_spinBox_valueChanged(int arg1);
void on_pushButton_clicked();
private: private:
Ui::koboxSettings *ui; Ui::koboxSettings *ui;
generalDialog *generalDialogWindow; generalDialog *generalDialogWindow;
usbms_splash *usbmsWindow;
}; };
#endif // KOBOXSETTINGS_H #endif // KOBOXSETTINGS_H

View file

@ -80,19 +80,6 @@ OK
</property> </property>
<item> <item>
<layout class="QGridLayout" name="gridLayout_2"> <layout class="QGridLayout" name="gridLayout_2">
<item row="6" column="0">
<widget class="QLabel" name="label_3">
<property name="font">
<font>
<family>Chivo</family>
<italic>true</italic>
</font>
</property>
<property name="text">
<string>Settings</string>
</property>
</widget>
</item>
<item row="3" column="0"> <item row="3" column="0">
<widget class="QLabel" name="koboxStatusLabel"> <widget class="QLabel" name="koboxStatusLabel">
<property name="text"> <property name="text">
@ -103,19 +90,6 @@ OK
</property> </property>
</widget> </widget>
</item> </item>
<item row="9" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="Line" name="line_3"> <widget class="Line" name="line_3">
<property name="frameShadow"> <property name="frameShadow">
@ -139,6 +113,45 @@ OK
</property> </property>
</widget> </widget>
</item> </item>
<item row="6" column="0">
<widget class="QLabel" name="label_5">
<property name="font">
<font>
<family>Chivo</family>
<italic>true</italic>
</font>
</property>
<property name="text">
<string>Extensions</string>
</property>
</widget>
</item>
<item row="9" column="0">
<widget class="QLabel" name="label_3">
<property name="font">
<font>
<family>Chivo</family>
<italic>true</italic>
</font>
</property>
<property name="text">
<string>Settings</string>
</property>
</widget>
</item>
<item row="12" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="0"> <item row="5" column="0">
<layout class="QGridLayout" name="gridLayout_3"> <layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="1"> <item row="0" column="1">
@ -176,17 +189,7 @@ OK
</item> </item>
</layout> </layout>
</item> </item>
<item row="7" column="0"> <item row="11" column="0">
<widget class="Line" name="line_4">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="8" column="0">
<layout class="QGridLayout" name="gridLayout_4"> <layout class="QGridLayout" name="gridLayout_4">
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>0</number>
@ -229,6 +232,67 @@ OK
</item> </item>
</layout> </layout>
</item> </item>
<item row="7" column="0">
<widget class="Line" name="line_5">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="10" column="0">
<widget class="Line" name="line_4">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="8" column="0">
<layout class="QGridLayout" name="usbmsGridLayout">
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="2">
<widget class="QPushButton" name="pushButton">
<property name="font">
<font>
<family>Inter</family>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Go</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Manage extensions over USB</string>
</property>
</widget>
</item>
<item row="0" column="1">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout> </layout>
</item> </item>
</layout> </layout>

View file

@ -52,11 +52,12 @@ MainWindow::MainWindow(QWidget *parent)
ui->quoteHeadingLabel->setStyleSheet("padding: 30px"); ui->quoteHeadingLabel->setStyleSheet("padding: 30px");
ui->homeBtn->setStyleSheet("padding: 5px"); ui->homeBtn->setStyleSheet("padding: 5px");
// Variables // Initializing some variables
global::battery::showLowBatteryDialog = true; global::battery::showLowBatteryDialog = true;
global::battery::showCriticalBatteryAlert = true; global::battery::showCriticalBatteryAlert = true;
global::usbms::showUsbmsDialog = true; global::usbms::showUsbmsDialog = true;
global::usbms::launchUsbms = false; global::usbms::launchUsbms = false;
global::usbms::koboxExportExtensions = false;
global::mainwindow::tabSwitcher::repaint = true; global::mainwindow::tabSwitcher::repaint = true;
// Getting the screen's size // Getting the screen's size

View file

@ -60,7 +60,12 @@ void usbms_splash::usbms_launch()
{ {
QString umount_prog ("umount"); QString umount_prog ("umount");
QStringList umount_args; QStringList umount_args;
if(global::usbms::koboxExportExtensions == true) {
umount_args << "/dev/loop10";
}
else {
umount_args << "/dev/loop0"; umount_args << "/dev/loop0";
}
QProcess *umount_proc = new QProcess(); QProcess *umount_proc = new QProcess();
umount_proc->start(umount_prog, umount_args); umount_proc->start(umount_prog, umount_args);
umount_proc->waitForFinished(); umount_proc->waitForFinished();
@ -81,7 +86,14 @@ void usbms_splash::usbms_launch()
QString prog_1 ("insmod"); QString prog_1 ("insmod");
QStringList args_1; QStringList args_1;
if(global::usbms::koboxExportExtensions == true) {
args_1 << "/external_root/modules/g_mass_storage.ko" << "file=/external_root/opt/storage/extensions.img" << "removable=y" << "stall=0";
}
else {
args_1 << "/external_root/modules/g_mass_storage.ko" << "file=/external_root/opt/storage/onboard" << "removable=y" << "stall=0"; args_1 << "/external_root/modules/g_mass_storage.ko" << "file=/external_root/opt/storage/onboard" << "removable=y" << "stall=0";
}
QProcess *proc_1 = new QProcess(); QProcess *proc_1 = new QProcess();
proc_1->start(prog_1, args_1); proc_1->start(prog_1, args_1);
proc_1->waitForFinished(); proc_1->waitForFinished();