some polishing

This commit is contained in:
Dorian Zedler 2020-11-30 13:42:49 +01:00
parent e6d21804ef
commit bdcb7f670a
Signed by: dorian
GPG key ID: D3B255CB8BC7CD37
14 changed files with 203 additions and 212 deletions

View file

@ -75,32 +75,6 @@
</widget>
</widget>
</widget>
<widget class="QPushButton" name="shutdownButton">
<property name="geometry">
<rect>
<x>600</x>
<y>390</y>
<width>33</width>
<height>33</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QPushButton" name="rebootButton">
<property name="geometry">
<rect>
<x>600</x>
<y>436</y>
<width>33</width>
<height>33</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="timeLabel">
<property name="geometry">
<rect>
@ -351,7 +325,7 @@
<rect>
<x>10</x>
<y>390</y>
<width>581</width>
<width>620</width>
<height>80</height>
</rect>
</property>

View file

@ -34,6 +34,11 @@
#include "linboimage.h"
#include "linbodiskpartition.h"
/**
* @brief The LinboBackend class is used to execute Linbo commands (control linbo_cmd) very comfortable.
*
* The LinboBackend class offeres some easy to use functions to manage all Linbo functionality
*/
class LinboBackend : public QObject
{
Q_OBJECT

View file

@ -25,42 +25,42 @@ class linboLogConsole;
class linboPasswordBoxImpl : public QWidget, public Ui::linboPasswordBox, public linboDialog
{
Q_OBJECT
Q_OBJECT
private:
QWidget* myMainApp,*myParent;
linboGUIImpl* app;
QStringList myCommand, arguments;
QProcess* process;
QString line;
QTextEdit *Console;
linboCounterImpl* myCounter;
QTimer* myTimer;
int currentTimeout;
linboLogConsole *logConsole;
QWidget* myMainApp,*myParent;
linboGUIImpl* app;
QStringList myCommand, arguments;
QProcess* process;
QString line;
QTextEdit *Console;
linboCounterImpl* myCounter;
QTimer* myTimer;
int currentTimeout;
linboLogConsole *logConsole;
public:
linboPasswordBoxImpl( QDialog* parent = 0 );
linboPasswordBoxImpl( QDialog* parent = 0 );
~linboPasswordBoxImpl();
~linboPasswordBoxImpl();
virtual void precmd();
virtual void setMainApp( QWidget* newMainApp );
virtual void setCommand(const QStringList& arglist);
virtual QStringList getCommand();
virtual void precmd();
virtual void setMainApp( QWidget* newMainApp );
virtual void setCommand(const QStringList& arglist);
virtual QStringList getCommand();
void setTextBrowser( const QString& new_consolefontcolorstdout,
const QString& new_consolefontcolorstderr,
QTextEdit* newBrowser );
void setTextBrowser( const QString& new_consolefontcolorstdout,
const QString& new_consolefontcolorstderr,
QTextEdit* newBrowser );
public slots:
virtual void postcmd();
void readFromStdout();
void readFromStderr();
void processTimeout();
void processFinished( int retval,
QProcess::ExitStatus status);
virtual void postcmd();
void readFromStdout();
void readFromStderr();
void processTimeout();
void processFinished( int retval,
QProcess::ExitStatus status);

View file

@ -3,12 +3,10 @@ DEPENDPATH += .
INCLUDEPATH += .
CFLAGS += -DQWS -static
QT += \
qt3support \
widgets \
widgets \
widgets \
widgets \
#qt3support \
gui \
svg
QMAKE_POST_LINK=strip $(TARGET)
# deployment

View file

@ -45,7 +45,7 @@ QString LinboLogger::logTypeToString(LinboLogType logType) {
void LinboLogger::log(QString logText, LinboLogType logType) {
if(logText.isEmpty() || logText == "")
return;
qDebug() << qPrintable("[" + this->logTypeToString(logType) + "]") << logText;
qDebug() << qPrintable("[" + this->logTypeToString(logType) + "] " + logText);
LinboLog latestLog {logText, logType, QDateTime::currentDateTime()};
this->logHistory.append(latestLog);

View file

@ -109,6 +109,8 @@ void linboConsoleImpl::readFromStderr()
void linboConsoleImpl::processFinished( int retval,
QProcess::ExitStatus status) {
Q_UNUSED(retval)
Q_UNUSED(status)
// nothing to do
static_cast<linboGUIImpl*>(myMainApp)->restoreButtonsState();
}

View file

@ -69,6 +69,8 @@ void linboCounterImpl::setCommand(const QStringList& arglist)
void linboCounterImpl::processFinished( int retval,
QProcess::ExitStatus status) {
Q_UNUSED(retval)
Q_UNUSED(status)
// nothing to do
}

View file

@ -304,7 +304,7 @@ linboGUIImpl::linboGUIImpl(QWidget* parent) : QDialog(parent)
logfilepath = QString("/tmp/linbo.log");
// connect our shutdown and reboot buttons
connect( shutdownButton, SIGNAL(clicked()), this, SLOT(shutdown()) );
/*connect( shutdownButton, SIGNAL(clicked()), this, SLOT(shutdown()) );
connect( rebootButton, SIGNAL(clicked()), this, SLOT(reboot()) );
// set and scale up our icons
@ -314,7 +314,7 @@ linboGUIImpl::linboGUIImpl(QWidget* parent) : QDialog(parent)
shutdownButton->setIconSet( QIcon(":/icons/system-shutdown-32x32.png" ) );
shutdownButton->setIconSize(QSize(32,32));
QToolTip::add( shutdownButton, QString("Schaltet den Rechner aus.") );
QToolTip::add( shutdownButton, QString("Schaltet den Rechner aus.") );*/
hdlogowidget->setPixmap( QPixmap(":/icons/drive-harddisk-64x64.png" ) );
// hdlogowidget->setIconSize(QSize(64,64));
@ -409,17 +409,17 @@ linboGUIImpl::linboGUIImpl(QWidget* parent) : QDialog(parent)
// since some tabs can be hidden, we have to maintain this counter
int nextPosForTabInsert = 0;
int horizontalOffset = 0;
//int horizontalOffset = 0;
// this is for separating the elements
int innerVerticalOffset = 32;
//int innerVerticalOffset = 32;
for( unsigned int i = 0; i < elements.size(); i++ ) {
// this determines our vertical offset
if( i % 2 == 1 ) {
// an odd element is moved to the right
horizontalOffset = 300;
//horizontalOffset = 300;
} else {
horizontalOffset = 0;
//horizontalOffset = 0;
}
int n = elements[i].find_current_image();

View file

@ -287,9 +287,9 @@ void linboImageSelectorImpl::postcmd() {
upload = false;
if ( this->checkShutdown->isChecked() ) {
system("busybox poweroff");
QProcess::execute("busybox poweroff");
} else if ( this->checkReboot->isChecked() ) {
system("busybox reboot");
QProcess::execute("busybox reboot");
}
this->close();
}

View file

@ -9,40 +9,40 @@
linboImageUploadImpl::linboImageUploadImpl( QWidget* parent ) : linboDialog()
{
Ui_linboImageUpload::setupUi((QDialog*)this);
process = new QProcess( this );
Ui_linboImageUpload::setupUi((QDialog*)this);
process = new QProcess( this );
if( parent )
myParent = parent;
if( parent )
myParent = parent;
connect( cancelButton, SIGNAL(pressed()), this, SLOT(close()) );
connect( okButton, SIGNAL(pressed()), this, SLOT(postcmd()) );
connect( cancelButton, SIGNAL(pressed()), this, SLOT(close()) );
connect( okButton, SIGNAL(pressed()), this, SLOT(postcmd()) );
// connect SLOT for finished process
connect( process, SIGNAL(finished(int, QProcess::ExitStatus) ),
this, SLOT(processFinished(int, QProcess::ExitStatus)) );
// connect SLOT for finished process
connect( process, SIGNAL(finished(int, QProcess::ExitStatus) ),
this, SLOT(processFinished(int, QProcess::ExitStatus)) );
// connect stdout and stderr to linbo console
connect( process, SIGNAL(readyReadStandardOutput()),
this, SLOT(readFromStdout()) );
connect( process, SIGNAL(readyReadStandardError()),
this, SLOT(readFromStderr()) );
// connect stdout and stderr to linbo console
connect( process, SIGNAL(readyReadStandardOutput()),
this, SLOT(readFromStdout()) );
connect( process, SIGNAL(readyReadStandardError()),
this, SLOT(readFromStderr()) );
Qt::WindowFlags flags;
flags = Qt::Dialog | Qt::WindowStaysOnTopHint | Qt::WindowTitleHint;
setWindowFlags( flags );
Qt::WindowFlags flags;
flags = Qt::Dialog | Qt::WindowStaysOnTopHint | Qt::WindowTitleHint;
setWindowFlags( flags );
progwindow = new linboProgressImpl(0);
progwindow = new linboProgressImpl(0);
logConsole = new linboLogConsole(0);
logConsole = new linboLogConsole(0);
QRect qRect(QApplication::desktop()->screenGeometry());
// open in the center of our screen
int xpos=qRect.width()/2-this->width()/2;
int ypos=qRect.height()/2-this->height()/2;
this->move(xpos,ypos);
this->setFixedSize( this->width(), this->height() );
QRect qRect(QApplication::desktop()->screenGeometry());
// open in the center of our screen
int xpos=qRect.width()/2-this->width()/2;
int ypos=qRect.height()/2-this->height()/2;
this->move(xpos,ypos);
this->setFixedSize( this->width(), this->height() );
}
linboImageUploadImpl::~linboImageUploadImpl()
@ -50,105 +50,105 @@ linboImageUploadImpl::~linboImageUploadImpl()
}
void linboImageUploadImpl::setTextBrowser( const QString& new_consolefontcolorstdout,
const QString& new_consolefontcolorstderr,
QTextEdit* newBrowser )
const QString& new_consolefontcolorstderr,
QTextEdit* newBrowser )
{
logConsole->setLinboLogConsole( new_consolefontcolorstdout,
new_consolefontcolorstderr,
newBrowser );
logConsole->setLinboLogConsole( new_consolefontcolorstdout,
new_consolefontcolorstderr,
newBrowser );
}
void linboImageUploadImpl::setMainApp( QWidget* newMainApp ) {
myMainApp = newMainApp;
myMainApp = newMainApp;
}
void linboImageUploadImpl::precmd() {
// nothing to do
// nothing to do
}
void linboImageUploadImpl::postcmd() {
app = static_cast<linboGUIImpl*>( myMainApp );
app = static_cast<linboGUIImpl*>( myMainApp );
this->hide();
arguments[6] = listBox->currentText();
this->hide();
arguments[6] = listBox->currentText();
if( app ) {
// do something
if( app ) {
// do something
progwindow->setProcess( process );
// connect( process, SIGNAL(processExited()), progwindow, SLOT(close()));
progwindow->show();
progwindow->raise();
progwindow->setProcess( process );
// connect( process, SIGNAL(processExited()), progwindow, SLOT(close()));
progwindow->show();
progwindow->raise();
progwindow->setActiveWindow();
progwindow->setUpdatesEnabled( true );
progwindow->setEnabled( true );
progwindow->setActiveWindow();
progwindow->setUpdatesEnabled( true );
progwindow->setEnabled( true );
app->disableButtons();
app->disableButtons();
QStringList processargs( arguments );
QString command = processargs.takeFirst();
QStringList processargs( arguments );
QString command = processargs.takeFirst();
logConsole->writeStdErr( QString("Executing ") + command + processargs.join(" ") );
logConsole->writeStdErr( QString("Executing ") + command + processargs.join(" ") );
progwindow->startTimer();
process->start( command, processargs );
progwindow->startTimer();
process->start( command, processargs );
while( process->state() == QProcess::Running ) {
for( int i = 0; i <= 100; i++ ) {
usleep(10000);
progwindow->progressBar->setValue(i);
progwindow->update();
while( process->state() == QProcess::Running ) {
for( int i = 0; i <= 100; i++ ) {
usleep(10000);
progwindow->progressBar->setValue(i);
progwindow->update();
qApp->processEvents();
}
qApp->processEvents();
}
}
}
}
if ( this->checkShutdown->isChecked() ) {
system("busybox poweroff");
} else if ( this->checkReboot->isChecked() ) {
system("busybox reboot");
}
if ( this->checkShutdown->isChecked() ) {
QProcess::execute("busybox poweroff");
} else if ( this->checkReboot->isChecked() ) {
QProcess::execute("busybox reboot");
}
this->close();
this->close();
}
void linboImageUploadImpl::setCommand(const QStringList& arglist)
{
arguments = arglist;
arguments = arglist;
}
QStringList linboImageUploadImpl::getCommand()
{
return arguments;
return arguments;
}
void linboImageUploadImpl::readFromStdout()
{
logConsole->writeStdOut( process->readAllStandardOutput() );
logConsole->writeStdOut( process->readAllStandardOutput() );
}
void linboImageUploadImpl::readFromStderr()
{
logConsole->writeStdErr( process->readAllStandardError() );
logConsole->writeStdErr( process->readAllStandardError() );
}
void linboImageUploadImpl::processFinished( int retval,
QProcess::ExitStatus status) {
QProcess::ExitStatus status) {
logConsole->writeResult( retval, status, process->error() );
logConsole->writeResult( retval, status, process->error() );
app->restoreButtonsState();
app->restoreButtonsState();
if( progwindow ) {
progwindow->close();
}
if( progwindow ) {
progwindow->close();
}
}

View file

@ -23,11 +23,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
#include "linboLogConsole.hh"
linboLogConsole::linboLogConsole( QWidget* parent,
const char* name )
const char* name )
{
consolefontcolorstdout = QColor( QString("white") );
consolefontcolorstderr = QColor( QString("red") );
Console = 0;
Q_UNUSED(parent)
Q_UNUSED(name)
consolefontcolorstdout = QColor( QString("white") );
consolefontcolorstderr = QColor( QString("red") );
Console = 0;
}
linboLogConsole::~linboLogConsole() {
@ -36,93 +38,93 @@ linboLogConsole::~linboLogConsole() {
void linboLogConsole::setLinboLogConsole( const QString& new_consolefontcolorstdout,
const QString& new_consolefontcolorstderr,
QTextEdit* new_console ) {
const QString& new_consolefontcolorstderr,
QTextEdit* new_console ) {
consolefontcolorstdout = QColor( new_consolefontcolorstdout );
consolefontcolorstderr = QColor( new_consolefontcolorstderr );
consolefontcolorstdout = QColor( new_consolefontcolorstdout );
consolefontcolorstderr = QColor( new_consolefontcolorstderr );
if ( new_console != 0 )
Console = new_console;
if ( new_console != 0 )
Console = new_console;
}
void linboLogConsole::writeStdOut( const QByteArray& stdoutdata ) {
if ( Console != 0 ) {
Console->setColor( consolefontcolorstdout );
Console->insert( stdoutdata );
Console->moveCursor(QTextCursor::End);
Console->ensureCursorVisible();
}
if ( Console != 0 ) {
Console->setColor( consolefontcolorstdout );
Console->insert( stdoutdata );
Console->moveCursor(QTextCursor::End);
Console->ensureCursorVisible();
}
}
void linboLogConsole::writeStdOut( const QString& stdoutdata ) {
if ( Console != 0 ) {
Console->setColor( consolefontcolorstdout );
Console->insert( stdoutdata );
Console->insert(QString(QChar::LineSeparator));
Console->moveCursor(QTextCursor::End);
Console->ensureCursorVisible();
}
if ( Console != 0 ) {
Console->setColor( consolefontcolorstdout );
Console->insert( stdoutdata );
Console->insert(QString(QChar::LineSeparator));
Console->moveCursor(QTextCursor::End);
Console->ensureCursorVisible();
}
}
void linboLogConsole::writeStdErr( const QByteArray& stderrdata ) {
if ( Console != 0 ) {
if ( Console != 0 ) {
Console->setColor( consolefontcolorstderr );
Console->insert( stderrdata );
Console->setColor( consolefontcolorstdout );
Console->moveCursor(QTextCursor::End);
Console->ensureCursorVisible();
}
Console->setColor( consolefontcolorstderr );
Console->insert( stderrdata );
Console->setColor( consolefontcolorstdout );
Console->moveCursor(QTextCursor::End);
Console->ensureCursorVisible();
}
}
void linboLogConsole::writeStdErr( const QString& stderrdata ) {
if ( Console != 0 ) {
if ( Console != 0 ) {
Console->setColor( consolefontcolorstderr );
Console->insert( stderrdata );
Console->insert(QString(QChar::LineSeparator));
Console->setColor( consolefontcolorstdout );
Console->moveCursor(QTextCursor::End);
Console->ensureCursorVisible();
}
Console->setColor( consolefontcolorstderr );
Console->insert( stderrdata );
Console->insert(QString(QChar::LineSeparator));
Console->setColor( consolefontcolorstdout );
Console->moveCursor(QTextCursor::End);
Console->ensureCursorVisible();
}
}
void linboLogConsole::writeResult( const int& processRetval,
QProcess::ExitStatus status,
const int& errorstatus ) {
QProcess::ExitStatus status,
const int& errorstatus ) {
if ( Console != 0 ) {
Console->setColor( consolefontcolorstderr );
Console->insert( QString("Command executed with exit value ") + QString::number( processRetval ) );
if ( Console != 0 ) {
Console->setColor( consolefontcolorstderr );
Console->insert( QString("Command executed with exit value ") + QString::number( processRetval ) );
if( status == 0)
Console->insert( QString("Exit status: ") + QString("The process exited normally.") );
else
Console->insert( QString("Exit status: ") + QString("The process crashed.") );
if( status == 0)
Console->insert( QString("Exit status: ") + QString("The process exited normally.") );
else
Console->insert( QString("Exit status: ") + QString("The process crashed.") );
if( status == 1 ) {
switch ( errorstatus ) {
case 0: Console->insert( QString("The process failed to start. Either the invoked program is missing, or you may have insufficient permissions to invoke the program.") ); break;
case 1: Console->insert( QString("The process crashed some time after starting successfully.") ); break;
case 2: Console->insert( QString("The last waitFor...() function timed out.") ); break;
case 3: Console->insert( QString("An error occurred when attempting to write to the process. For example, the process may not be running, or it may have closed its input channel.") ); break;
case 4: Console->insert( QString("An error occurred when attempting to read from the process. For example, the process may not be running.") ); break;
case 5: Console->insert( QString("An unknown error occurred.") ); break;
}
if( status == 1 ) {
switch ( errorstatus ) {
case 0: Console->insert( QString("The process failed to start. Either the invoked program is missing, or you may have insufficient permissions to invoke the program.") ); break;
case 1: Console->insert( QString("The process crashed some time after starting successfully.") ); break;
case 2: Console->insert( QString("The last waitFor...() function timed out.") ); break;
case 3: Console->insert( QString("An error occurred when attempting to write to the process. For example, the process may not be running, or it may have closed its input channel.") ); break;
case 4: Console->insert( QString("An error occurred when attempting to read from the process. For example, the process may not be running.") ); break;
case 5: Console->insert( QString("An unknown error occurred.") ); break;
}
}
Console->insert(QString(QChar::LineSeparator));
Console->setColor( consolefontcolorstdout );
Console->moveCursor(QTextCursor::End);
Console->ensureCursorVisible();
}
Console->insert(QString(QChar::LineSeparator));
Console->setColor( consolefontcolorstdout );
Console->moveCursor(QTextCursor::End);
Console->ensureCursorVisible();
}
}

View file

@ -85,6 +85,8 @@ void linboMsgImpl::readFromStderr()
void linboMsgImpl::processFinished( int retval,
QProcess::ExitStatus status) {
Q_UNUSED(retval)
Q_UNUSED(status)
// let user read the process results
this->close();
}

View file

@ -62,7 +62,6 @@ void linboPasswordBoxImpl::precmd() {
void linboPasswordBoxImpl::postcmd() {
this->hide();
app = static_cast<linboGUIImpl*>( myMainApp );
if( app ) {
@ -145,12 +144,17 @@ void linboPasswordBoxImpl::postcmd() {
myCounter->show();
myCounter->raise();
myCounter->move( QPoint( 5, 5 ) );
this->close();
}
}
else {
this->passwordLabel->setText("Falsches Passwort!");
this->passwordLabel->setStyleSheet("QLabel { color : red; }");
}
}
passwordInput->clear();
this->close();
}
void linboPasswordBoxImpl::setCommand(const QStringList& arglist)

View file

@ -90,6 +90,8 @@ void linboProgressImpl::processTimer() {
void linboProgressImpl::processFinished( int retval,
QProcess::ExitStatus status) {
Q_UNUSED(retval)
Q_UNUSED(status)
myTimer->stop();
this->close();
}