bool MainWindow::checkDirWritable( const QDir &d ) { QMessageBox *mb = new QMessageBox; if( !d.exists() ) { mb->setText( "The directory you have chosen doesn't exist."); mb->show(); return false; } QTemporaryFile tf( d.absolutePath() + d.separator() + "fbp_test_XXXXXX" ); if( !tf.open() ) { mb->setText( "The directory you have chosen does not seem to be writable."); mb->show(); return false; } tf.remove(); return true; }
/** * @TODO: move to separate class * * @brief MainWindow::loadSettings * @param ini_file */ void MainWindow::loadSettings(QString ini_file) { if (!ini_file.length()) { mainSettings = new QSettings(QSettings::IniFormat, QSettings::UserScope, "QtWebkitKiosk", "config", this); } else { mainSettings = new QSettings(ini_file, QSettings::IniFormat, this); } qDebug() << "Ini file: " << mainSettings->fileName(); if (!mainSettings->contains("application/organization")) { mainSettings->setValue("application/organization", "Organization" ); } if (!mainSettings->contains("application/organization-domain")) { mainSettings->setValue("application/organization-domain", "www.example.com" ); } if (!mainSettings->contains("application/name")) { mainSettings->setValue("application/name", "QtWebkitKiosk" ); } if (!mainSettings->contains("application/version")) { mainSettings->setValue("application/version", VERSION ); } if (!mainSettings->contains("application/icon")) { mainSettings->setValue("application/icon", ICON ); } if (!mainSettings->contains("proxy/enable")) { mainSettings->setValue("proxy/enable", false); } if (!mainSettings->contains("proxy/system")) { mainSettings->setValue("proxy/system", true); } if (!mainSettings->contains("proxy/host")) { mainSettings->setValue("proxy/host", "proxy.example.com"); } if (!mainSettings->contains("proxy/port")) { mainSettings->setValue("proxy/port", 3128); } if (!mainSettings->contains("proxy/auth")) { mainSettings->setValue("proxy/auth", false); } if (!mainSettings->contains("proxy/username")) { mainSettings->setValue("proxy/username", "username"); } if (!mainSettings->contains("proxy/password")) { mainSettings->setValue("proxy/password", "password"); } if (!mainSettings->contains("view/fullscreen")) { mainSettings->setValue("view/fullscreen", true); } if (!mainSettings->contains("view/maximized")) { mainSettings->setValue("view/maximized", false); } if (!mainSettings->contains("view/fixed-size")) { mainSettings->setValue("view/fixed-size", false); } if (!mainSettings->contains("view/fixed-width")) { mainSettings->setValue("view/fixed-width", 800); } if (!mainSettings->contains("view/fixed-height")) { mainSettings->setValue("view/fixed-height", 600); } if (!mainSettings->contains("view/minimal-width")) { mainSettings->setValue("view/minimal-width", 320); } if (!mainSettings->contains("view/minimal-height")) { mainSettings->setValue("view/minimal-height", 200); } if (!mainSettings->contains("view/fixed-centered")) { mainSettings->setValue("view/fixed-centered", true); } if (!mainSettings->contains("view/fixed-x")) { mainSettings->setValue("view/fixed-x", 0); } if (!mainSettings->contains("view/fixed-y")) { mainSettings->setValue("view/fixed-y", 0); } if (!mainSettings->contains("view/startup_resize_delayed")) { mainSettings->setValue("view/startup_resize_delayed", true); } if (!mainSettings->contains("view/startup_resize_delay")) { mainSettings->setValue("view/startup_resize_delay", 200); } if (!mainSettings->contains("view/hide_scrollbars")) { mainSettings->setValue("view/hide_scrollbars", true); } if (!mainSettings->contains("view/stay_on_top")) { mainSettings->setValue("view/stay_on_top", false); } if (!mainSettings->contains("view/disable_selection")) { mainSettings->setValue("view/disable_selection", true); } if (!mainSettings->contains("view/show_load_progress")) { mainSettings->setValue("view/show_load_progress", true); } if (!mainSettings->contains("view/page_scale")) { mainSettings->setValue("view/page_scale", 1.0); } if (!mainSettings->contains("browser/homepage")) { mainSettings->setValue("browser/homepage", RESOURCES"default.html"); } if (!mainSettings->contains("browser/javascript")) { mainSettings->setValue("browser/javascript", true); } if (!mainSettings->contains("browser/javascript_can_open_windows")) { mainSettings->setValue("browser/javascript_can_open_windows", false); } if (!mainSettings->contains("browser/javascript_can_close_windows")) { mainSettings->setValue("browser/javascript_can_close_windows", false); } if (!mainSettings->contains("browser/webgl")) { mainSettings->setValue("browser/webgl", false); } if (!mainSettings->contains("browser/java")) { mainSettings->setValue("browser/java", false); } if (!mainSettings->contains("browser/plugins")) { mainSettings->setValue("browser/plugins", true); } // Don't break on SSL errors if (!mainSettings->contains("browser/ignore_ssl_errors")) { mainSettings->setValue("browser/ignore_ssl_errors", true); } if (!mainSettings->contains("browser/cookiejar")) { mainSettings->setValue("browser/cookiejar", false); } // Show default homepage if window closed by javascript if (!mainSettings->contains("browser/show_homepage_on_window_close")) { mainSettings->setValue("browser/show_homepage_on_window_close", true); } if (!mainSettings->contains("browser/startup_load_delayed")) { mainSettings->setValue("browser/startup_load_delayed", true); } if (!mainSettings->contains("browser/startup_load_delay")) { mainSettings->setValue("browser/startup_load_delay", 100); } if (!mainSettings->contains("browser/disable_hotkeys")) { mainSettings->setValue("browser/disable_hotkeys", false); } if (!mainSettings->contains("signals/enable")) { mainSettings->setValue("signals/enable", true); } if (!mainSettings->contains("signals/SIGUSR1")) { mainSettings->setValue("signals/SIGUSR1", ""); } if (!mainSettings->contains("signals/SIGUSR2")) { mainSettings->setValue("signals/SIGUSR2", ""); } if (!mainSettings->contains("inspector/enable")) { mainSettings->setValue("inspector/enable", false); } if (!mainSettings->contains("inspector/visible")) { mainSettings->setValue("inspector/visible", false); } if (!mainSettings->contains("event-sounds/enable")) { mainSettings->setValue("event-sounds/enable", false); } if (!mainSettings->contains("event-sounds/window-clicked")) { mainSettings->setValue("event-sounds/window-clicked", RESOURCES"window-clicked.ogg"); } if (!mainSettings->contains("event-sounds/link-clicked")) { mainSettings->setValue("event-sounds/link-clicked", RESOURCES"window-clicked.ogg"); } if (!mainSettings->contains("cache/enable")) { mainSettings->setValue("cache/enable", false); } if (!mainSettings->contains("cache/location")) { #ifdef QT5 QString location = QStandardPaths::writableLocation(QStandardPaths::CacheLocation); #else QString location = QDesktopServices::storageLocation(QDesktopServices::CacheLocation); #endif QDir d = QDir(location); location += d.separator(); location += mainSettings->value("application/name").toString(); d.setPath(location); mainSettings->setValue("cache/location", d.absolutePath()); } if (!mainSettings->contains("cache/size")) { mainSettings->setValue("cache/size", 100*1000*1000); } if (!mainSettings->contains("cache/clear-on-start")) { mainSettings->setValue("cache/clear-on-start", false); } if (!mainSettings->contains("cache/clear-on-exit")) { mainSettings->setValue("cache/clear-on-exit", false); } if (!mainSettings->contains("printing/enable")) { mainSettings->setValue("printing/enable", false); } if (!mainSettings->contains("printing/show-printer-dialog")) { mainSettings->setValue("printing/show-printer-dialog", false); } if (!mainSettings->contains("printing/printer")) { mainSettings->setValue("printing/printer", "default"); } if (!mainSettings->contains("printing/page_margin_left")) { mainSettings->setValue("printing/page_margin_left", 5); } if (!mainSettings->contains("printing/page_margin_top")) { mainSettings->setValue("printing/page_margin_top", 5); } if (!mainSettings->contains("printing/page_margin_right")) { mainSettings->setValue("printing/page_margin_right", 5); } if (!mainSettings->contains("printing/page_margin_bottom")) { mainSettings->setValue("printing/page_margin_bottom", 5); } if (!mainSettings->contains("attach/javascripts")) { mainSettings->setValue("attach/javascripts", ""); } if (!mainSettings->contains("attach/styles")) { mainSettings->setValue("attach/styles", ""); } if (!mainSettings->contains("view/hide_mouse_cursor")) { mainSettings->setValue("view/hide_mouse_cursor", false); } mainSettings->sync(); }