diff --git a/README.md b/README.md index 2643deb..0e6ca09 100644 --- a/README.md +++ b/README.md @@ -64,3 +64,8 @@ El administrador dispone de una consola y mas información sobre la ejecución d Se activa estableciendo la variable de entorno `ogactiveadmin=true` +## Modo quiosco + +Se puede activar el modo quiosco que impide la salida del navegador con Alt+F4. + +Se activa estableciendo la variable de entorno `OGKIOSKMODE=true` \ No newline at end of file diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index f1aeb90..25170ce 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -42,6 +42,7 @@ MainWindow::MainWindow(QWidget *parent) readEnvironmentValues(); m_is_admin = qgetenv("ogactiveadmin") == "true"; + m_kiosk_mode = qgetenv("OGKIOSKMODE") == "true"; // Open the log file for append if(m_env.contains("OGLOGFILE") && m_env["OGLOGFILE"]!="") @@ -164,6 +165,14 @@ MainWindow::MainWindow(QWidget *parent) showFullScreen(); } +void MainWindow::closeEvent(QCloseEvent *event) { + if (isKioskMode()) { + qInfo() << "Modo quiosco activado, ignorando intento de cerrar ventana"; + event->ignore(); + } +} + + MainWindow::~MainWindow() { if(m_logfile) diff --git a/src/mainwindow.h b/src/mainwindow.h index 0a8d2b1..518bf38 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -48,6 +48,8 @@ class MainWindow : public QMainWindow public: MainWindow(QWidget *parent = 0); + void closeEvent(QCloseEvent *event) override; + ~MainWindow(); public slots: @@ -76,10 +78,12 @@ class MainWindow : public QMainWindow private: bool isAdmin() const { return m_is_admin; } + bool isKioskMode() const { return m_kiosk_mode; } void registerScheme(const QString &name); void registerHandler(const QString &name, bool confirm, bool output); bool m_is_admin{false}; + bool m_kiosk_mode{false}; //Functions