Example #1
0
void Settings::loadConfig( bool dialogRejected )
{
    settings.beginGroup( "General" );
    ui.refreshCombo->setCurrentIndex( settings.value( "refresh-index", 3 ).toInt() );

    int lang = ui.languageCombo->findData( settings.value( "language", QLocale::system().name() ).toString() );
    if ( lang == -1 )
        lang = 0;
    ui.languageCombo->setCurrentIndex( lang );

    ui.confirmDeletionBox->setChecked( settings.value( "confirmTweetDeletion", true ).toBool() );
    ui.notificationsBox->setChecked( settings.value( "notifications", true ).toBool() );
    settings.endGroup();
    settings.beginGroup( "Network" );
    settings.beginGroup( "Proxy" );
    ui.proxyBox->setChecked( settings.value( "enabled", false ).toBool() );
    ui.hostEdit->setText( settings.value( "host" ).toString() );
    ui.portEdit->setText( settings.value( "port" ).toString() );
    settings.endGroup();
    settings.beginGroup( "updates" );
    ui.updatesCheckBox->setChecked( settings.value( "check", true ).toBool() );
    ui.lastChecked->setText( settings.value( "last", tr( "never" ) ).toString() );
    settings.endGroup();
#ifdef Q_WS_X11
    useCustomBrowserCheckBox->setChecked( settings.value( "customBrowser", Qt::Unchecked ).toBool() );
    selectBrowserEdit->setText( settings.value( "browser" ).toString() );
#endif
    settings.endGroup();
    settings.beginGroup( "Appearance" );
    ui.statusCountBox->setValue( settings.value( "tweet count", 20 ).toInt() );
    ui.colorBox->setCurrentIndex( settings.value( "color scheme", 2 ).toInt() );
    int displayMode = settings.value( "display-mode", 0 ).toInt();
    switch (displayMode) {
    case StatusModel::DisplayNames:
        ui.displayNamesButton->setChecked( true );
        break;
    case StatusModel::DisplayNicks:
        ui.displayNicksButton->setChecked( true );
        break;
    case StatusModel::DisplayBoth:
        ui.displayBothButton->setChecked( true );
        break;
    }
    int trayIcon = settings.value( "tray-icon", 0 ).toInt();
    switch (trayIcon) {
    case MainWindow::VisibleAlways:
        ui.trayIconAlwaysVisible->setChecked( true );
        break;
    case MainWindow::VisibleWhenMinimized:
        ui.trayIconVisibleWhenMinimized->setChecked( true );
        break;
    default:;
    }
    int closeButton = settings.value( "close-button", 0 ).toInt();
    switch (closeButton) {
    case MainWindow::CloseButtonHidesApp:
        ui.radioHide->setChecked(true);
        break;
    case MainWindow::CloseButtonClosesApp:
        ui.radioClose->setChecked(true);
        break;
    default:;
    }
    settings.endGroup();

    ui.hostEdit->setEnabled( (bool) ui.proxyBox->checkState() );
    ui.portEdit->setEnabled( (bool) ui.proxyBox->checkState() );

    if ( !dialogRejected ) {
        settings.beginGroup( "MainWindow" );
        if ( QTwitterApp::mainWindow() ) {
            QPoint offset( settings.value( "pos", QPoint(500,200) ).toPoint() );
            if ( QApplication::desktop()->width() < offset.x() + settings.value( "size" ).toSize().width() ) {
                offset.setX( QApplication::desktop()->width() - settings.value( "size" ).toSize().width() );
            }
            if ( QApplication::desktop()->height() < offset.y() + settings.value( "size" ).toSize().height() ) {
                offset.setY( QApplication::desktop()->height() - settings.value( "size" ).toSize().height() );
            }
            QTwitterApp::mainWindow()->resize( settings.value( "size", QSize(350,450) ).toSize() );
            QTwitterApp::mainWindow()->move( offset );
        }
        settings.endGroup();
        QPoint offset = settings.value( "SettingsWindow/pos", QPoint(350,200) ).toPoint();
        if ( QApplication::desktop()->width() < offset.x() + size().width() ) {
            offset.setX( QApplication::desktop()->width() - size().width() );
        }
        if ( QApplication::desktop()->height() < offset.y() + size().height() ) {
            offset.setY( QApplication::desktop()->height() - size().height() );
        }
        move( offset );
        applySettings();
    }

    settings.beginGroup( "Plugins" );
    foreach( ConfigFileInterface *iface, configFilePlugins ) {
        iface->loadConfig( &settings );
    }