#746: Nueva barra de estado del Browser con icono de OpenGnsys, barra de progreso, velocidad de conexión y reloj digital.

git-svn-id: https://opengnsys.es/svn/branches/version1.1@5292 a21b9725-9963-47de-94b9-378ad31fedc9
remotes/github/master
ramon 2017-05-11 09:50:29 +00:00
parent 0dff9e1f6e
commit c646cde579
4 changed files with 83 additions and 44 deletions

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OpenGnsys Client Browser 1.1.0\n"
"Report-Msgid-Bugs-To: http://opengnsys.es\n"
"POT-Creation-Date: 2017-05-09 10:49+0000\n"
"POT-Creation-Date: 2017-05-11 08:09+0000\n"
"PO-Revision-Date: 2016-05-03 10:25+0200\n"
"Last-Translator: Ramón M. Gómez <ramongomez@us.es>\n"
"Language-Team: CATALAN <LL@li.org>\n"
@ -30,77 +30,77 @@ msgstr "&Nova Terminal"
msgid "Salida"
msgstr "Sortida"
#: ../src/mainwindow.cpp:131
#: ../src/mainwindow.cpp:143
msgid "El fichero de log no ha podido ser abierto: "
msgstr ""
#: ../src/mainwindow.cpp:160
#: ../src/mainwindow.cpp:172
msgid "Hay otro proceso en ejecución. Por favor espere."
msgstr ""
#: ../src/mainwindow.cpp:175 ../src/mainwindow.cpp:214
#: ../src/mainwindow.cpp:187 ../src/mainwindow.cpp:226
msgid "AVISO"
msgstr "AVIS"
#: ../src/mainwindow.cpp:177
#: ../src/mainwindow.cpp:189
msgid ""
"La siguiente acci&oacute;n puede modificar datos o tardar varios minutos. El "
"equipo no podr&aacute; ser utilizado durante su ejecuci&oacute;n."
msgstr ""
#: ../src/mainwindow.cpp:178
#: ../src/mainwindow.cpp:190
msgid "Ejecutar"
msgstr "Executar"
#: ../src/mainwindow.cpp:179
#: ../src/mainwindow.cpp:191
msgid "Cancelar"
msgstr "Cancel-lar"
#: ../src/mainwindow.cpp:197
#: ../src/mainwindow.cpp:209
#, c-format
msgid "%p% Cargando"
msgstr "%p% Carregat"
#: ../src/mainwindow.cpp:216
#: ../src/mainwindow.cpp:228
msgid "La p&aacute;gina no se puede cargar."
msgstr ""
#: ../src/mainwindow.cpp:218
#: ../src/mainwindow.cpp:230
msgid "Recargar"
msgstr "Recarregar"
#: ../src/mainwindow.cpp:219
#: ../src/mainwindow.cpp:231
msgid "Abortar"
msgstr "Avortar"
#: ../src/mainwindow.cpp:250
#: ../src/mainwindow.cpp:262
msgid "Lanzado satisfactoriamente."
msgstr ""
#: ../src/mainwindow.cpp:284
#: ../src/mainwindow.cpp:296
msgid "Proceso acabado correctamente. Valor de retorno: "
msgstr ""
#: ../src/mainwindow.cpp:288
#: ../src/mainwindow.cpp:300
msgid "El proceso ha fallado inesperadamente. Salida: "
msgstr ""
#: ../src/mainwindow.cpp:299
#: ../src/mainwindow.cpp:311
msgid "Imposible lanzar el proceso."
msgstr ""
#: ../src/mainwindow.cpp:302
#: ../src/mainwindow.cpp:314
msgid "Error de escritura en el proceso."
msgstr ""
#: ../src/mainwindow.cpp:305
#: ../src/mainwindow.cpp:317
msgid "Error de lectura del proceso."
msgstr ""
#: ../src/mainwindow.cpp:313
#: ../src/mainwindow.cpp:325
msgid "Error desconocido."
msgstr ""
#: ../src/mainwindow.cpp:443
#: ../src/mainwindow.cpp:458
msgid "Lanzando el comando: "
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OpenGnsys Client Browser 1.1.0\n"
"Report-Msgid-Bugs-To: http://opengnsys.es\n"
"POT-Creation-Date: 2017-05-09 10:49+0000\n"
"POT-Creation-Date: 2017-05-11 08:09+0000\n"
"PO-Revision-Date: 2016-05-03 10:16+0200\n"
"Last-Translator: Ramón M. Gómez <ramongomez@us.es>\n"
"Language-Team: ENGLISH <LL@li.org>\n"
@ -30,19 +30,19 @@ msgstr "&New Terminal"
msgid "Salida"
msgstr "Output"
#: ../src/mainwindow.cpp:131
#: ../src/mainwindow.cpp:143
msgid "El fichero de log no ha podido ser abierto: "
msgstr "The log file could not be opened: "
#: ../src/mainwindow.cpp:160
#: ../src/mainwindow.cpp:172
msgid "Hay otro proceso en ejecución. Por favor espere."
msgstr "There is another process running. Please wait."
#: ../src/mainwindow.cpp:175 ../src/mainwindow.cpp:214
#: ../src/mainwindow.cpp:187 ../src/mainwindow.cpp:226
msgid "AVISO"
msgstr "WARNING"
#: ../src/mainwindow.cpp:177
#: ../src/mainwindow.cpp:189
msgid ""
"La siguiente acci&oacute;n puede modificar datos o tardar varios minutos. El "
"equipo no podr&aacute; ser utilizado durante su ejecuci&oacute;n."
@ -50,59 +50,59 @@ msgstr ""
"Following action can modify some data or take several minutes. This computer "
"may not be used during execution."
#: ../src/mainwindow.cpp:178
#: ../src/mainwindow.cpp:190
msgid "Ejecutar"
msgstr "Run"
#: ../src/mainwindow.cpp:179
#: ../src/mainwindow.cpp:191
msgid "Cancelar"
msgstr "Cancel"
#: ../src/mainwindow.cpp:197
#: ../src/mainwindow.cpp:209
#, c-format
msgid "%p% Cargando"
msgstr "%p% Loaded"
#: ../src/mainwindow.cpp:216
#: ../src/mainwindow.cpp:228
msgid "La p&aacute;gina no se puede cargar."
msgstr "Page can not be loaded."
#: ../src/mainwindow.cpp:218
#: ../src/mainwindow.cpp:230
msgid "Recargar"
msgstr "Reload"
#: ../src/mainwindow.cpp:219
#: ../src/mainwindow.cpp:231
msgid "Abortar"
msgstr "Abort"
#: ../src/mainwindow.cpp:250
#: ../src/mainwindow.cpp:262
msgid "Lanzado satisfactoriamente."
msgstr "Successfully launched."
#: ../src/mainwindow.cpp:284
#: ../src/mainwindow.cpp:296
msgid "Proceso acabado correctamente. Valor de retorno: "
msgstr "Process completed successfully. Return value: "
#: ../src/mainwindow.cpp:288
#: ../src/mainwindow.cpp:300
msgid "El proceso ha fallado inesperadamente. Salida: "
msgstr "The process crashed unexpectedly. Return value: "
#: ../src/mainwindow.cpp:299
#: ../src/mainwindow.cpp:311
msgid "Imposible lanzar el proceso."
msgstr "Unable to launch the process."
#: ../src/mainwindow.cpp:302
#: ../src/mainwindow.cpp:314
msgid "Error de escritura en el proceso."
msgstr "Error writing to the process."
#: ../src/mainwindow.cpp:305
#: ../src/mainwindow.cpp:317
msgid "Error de lectura del proceso."
msgstr "Error reading from the process."
#: ../src/mainwindow.cpp:313
#: ../src/mainwindow.cpp:325
msgid "Error desconocido."
msgstr "Unknown error."
#: ../src/mainwindow.cpp:443
#: ../src/mainwindow.cpp:458
msgid "Lanzando el comando: "
msgstr "Launching command: "

View File

@ -87,8 +87,23 @@ MainWindow::MainWindow(QWidget *parent)
// Status bar
QStatusBar* st=statusBar();
st->setSizeGripEnabled(false);
// OpenGnsys logo (or alternate text)
m_logo=new QLabel();
QPixmap logo;
if (logo.load("/opt/opengnsys/lib/pictures/oglogo.png"))
m_logo->setPixmap(logo);
else
m_logo->setText("OG");
// Progress bar
m_progressBar=new QProgressBar(this);
m_progressBar->setRange(0,100);
// Connection speed
QString speed=readSpeed();
m_speedInfo=new QLabel(speed);
m_speedInfo->setAlignment(Qt::AlignCenter);
if (speed.compare("1000Mb/s"))
m_speedInfo->setStyleSheet("background-color: darkred; color: white; font-weight: bold;");
// Clock
m_clock=new DigitalClock(this);
m_web->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
@ -99,8 +114,7 @@ MainWindow::MainWindow(QWidget *parent)
connect(m_web,SIGNAL(loadStarted()),this,SLOT(slotWebLoadStarted()));
connect(m_web,SIGNAL(loadFinished(bool)),this,SLOT(slotWebLoadFinished(bool)));
connect(m_web,SIGNAL(loadProgress(int)),this,SLOT(slotWebLoadProgress(int)));
connect(m_web,SIGNAL(urlChanged(const QUrl&)),this,
SLOT(slotUrlChanged(const QUrl&)));
connect(m_web,SIGNAL(urlChanged(const QUrl&)),this,SLOT(slotUrlChanged(const QUrl&)));
// Ignore SSL errors.
connect(m_web->page()->networkAccessManager(),
SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError> &)), this,
@ -390,7 +404,8 @@ void MainWindow::print(QString s)
{
if(!s.endsWith("\n"))
s+="\n";
if(m_logstream) {
if(m_logstream)
{
*m_logstream<<CURRENT_TIME()<<": "<<s;
m_logstream->flush();
}
@ -413,13 +428,15 @@ void MainWindow::captureOutputForStatusBar(QString output)
}
}
// Iniciar barra de progreso con reloj digital
// Init status bar
void MainWindow::startProgressBar()
{
QStatusBar* st=statusBar();
st->clearMessage();
st->addWidget(m_logo);
st->addWidget(m_progressBar,90);
st->addWidget(m_clock,10);
st->addWidget(m_speedInfo,5);
st->addWidget(m_clock,5);
m_progressBar->show();
m_clock->show();
m_web->setEnabled(false);
@ -437,7 +454,7 @@ void MainWindow::executeCommand(QString &string)
QStringList list=string.split(" ",QString::SkipEmptyParts);
QString program=list.takeFirst();
m_process->setReadChannel(QProcess::StandardOutput);
// Assign the same Browser's environment to the process.
// Assign the same Browser's environment to the process
m_process->setEnvironment(QProcess::systemEnvironment());
m_process->start(program,list);
print(tr(gettext("Lanzando el comando: ")));
@ -446,3 +463,21 @@ void MainWindow::executeCommand(QString &string)
m_output->setTextColor(QColor(Qt::black));
startProgressBar();
}
// Returns communication speed
QString MainWindow::readSpeed() {
if(m_env.contains("OGLOGFILE"))
{
QString infoFile=m_env["OGLOGFILE"].replace(".log", ".info.html");
QString command = "grep -hoe \"[0-9]*Mb/s\" "+infoFile+" 2>/dev/null";
QProcess process;
process.start(command);
process.waitForFinished();
QString speed(process.readAllStandardOutput());
return speed.simplified();
}
else
{
return QString("");
}
}

View File

@ -26,6 +26,7 @@ class QTextStream;
class QTermWidget;
class QProgressBar;
class QLineEdit;
class QLabel;
class MainWindow : public QMainWindow
{
@ -66,12 +67,15 @@ class MainWindow : public QMainWindow
void startProgressBar();
void finishProgressBar();
void executeCommand(QString &string);
QString readSpeed();
protected:
QWebView *m_web;
QTextEdit *m_output;
QLabel *m_logo;
QProgressBar *m_progressBar;
QLabel *m_speedInfo;
DigitalClock *m_clock;
QTabWidget *m_tabs;
QLineEdit *m_webBar;