コード例 #1
0
ファイル: mainwindow.cpp プロジェクト: Jille/FBP
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;
}
コード例 #2
0
/**
 * @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();
}