X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fmainwindow.cpp;h=cf9f702a3c695f076cdeedf91273a9a0948f5c3c;hb=8a80270b3742a33d233376f0508749c556f840a0;hp=518c7e1c2855f44421134f8ad07566eb2ee457a4;hpb=fbc7272d5a8a2dad06db9ac1ae21264223127c55;p=qcpufreq diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 518c7e1..cf9f702 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -28,7 +28,7 @@ #endif #define APPNAME "QCPUFreq" -#define APPVERSION "0.3.99" +#define APPVERSION "0.4.1" MainWindow::MainWindow(QWidget *parent) : @@ -54,6 +54,10 @@ MainWindow::MainWindow(QWidget *parent) : settings = new Settings; settings->hide(); + //load preset dialog + loadPresetDialog = new LoadPreset; + loadPresetDialog->hide(); + init(); //applies the settings from the settings dialog @@ -81,13 +85,17 @@ MainWindow::MainWindow(QWidget *parent) : connect(QApplication::desktop(), SIGNAL(resized(int)), this, SLOT(orientationChanged())); connect(ui->sr_box, SIGNAL(clicked()), this, SLOT(setSmartReflex())); connect(&refreshTimer, SIGNAL(timeout()), this, SLOT(refresh())); + connect(ui->actionSave, SIGNAL(triggered()), this, SLOT(save())); + connect(ui->actionLoad, SIGNAL(triggered()), loadPresetDialog, SLOT(show())); connect(ui->actionSettings, SIGNAL(triggered()), this, SLOT(showSettings())); connect(settings, SIGNAL(settingsChanged()), this, SLOT(applySettings())); + connect(loadPresetDialog, SIGNAL(load(QString)), this, SLOT(loadPreset(QString))); } MainWindow::~MainWindow() { + delete loadPresetDialog; delete settings; delete ui; } @@ -152,6 +160,13 @@ void MainWindow::applySettings() setAutoRotation(); setAdvancedTemperature(); + //if overclocking is/was enabled we can also enable the "Load preset" option + if (settings->useOverclocking() && settings->usePowerKernel() && settings->isKernelConfigInstalled()) { + ui->actionLoad->setEnabled(true); + } else { + ui->actionLoad->setEnabled(false); + } + //refresh the GUI after applying the settings refresh(); } @@ -180,7 +195,7 @@ int MainWindow::callHelper(QString action, QString param) helperProcess.start( "sudo", arguments, QIODevice::NotOpen ); - if ( showSudoError && !helperProcess.waitForFinished( 400 )) { + if ( showSudoError && !helperProcess.waitForFinished( 2000 )) { //do not show this error again showSudoError = false; QMessageBox::critical(this, tr("QCPUFreq"), tr("There seems to be a problem with your sudo setup!")); @@ -355,6 +370,36 @@ void MainWindow::init() } else { this->minFreq = min.toInt(); } + file.close(); + + //enable save and load option on power kernels + if (settings->usePowerKernel() && settings->isKernelConfigInstalled()) { + ui->actionSave->setEnabled(true); + //loading presets may cause overclocking - only enable it if overclokcing is enabled + if (settings->useOverclocking()) { + ui->actionLoad->setEnabled(true); + } + } +} + + +/** + * Loads a voltage preset by calling kernel-config. + * + * Available presets are: + * - default + * - ideal + * - lv + * - ulv + * - xlv + * - custom -> any preset named "custom" + */ +void MainWindow::loadPreset(QString presetName) +{ + #if defined(Q_WS_MAEMO_5) + callHelper("loadpreset", presetName); + QMaemo5InformationBox::information(this, tr( "The preset was loaded." ), QMaemo5InformationBox::DefaultTimeout); + #endif } @@ -453,6 +498,20 @@ void MainWindow::orientationChanged() /** + * Saves the current maximim frequency as default (only on power kernel). + */ +void MainWindow::save() +{ + if (settings->usePowerKernel()) { + callHelper( "save", "null" ); + #if defined(Q_WS_MAEMO_5) + QMaemo5InformationBox::information(this, tr( "The current frequency settings have been saved as default." ), QMaemo5InformationBox::DefaultTimeout); + #endif + } +} + + +/** * Checks the settings if the "bq27x00_battery" needs to be loaded. */ void MainWindow::setAdvancedTemperature() @@ -470,6 +529,8 @@ void MainWindow::setAutoRotation() { #if defined(Q_WS_MAEMO_5) setAttribute(Qt::WA_Maemo5AutoOrientation, settings->useAutoRotate()); + loadPresetDialog->setAttribute(Qt::WA_Maemo5AutoOrientation, settings->useAutoRotate()); + settings->setAttribute(Qt::WA_Maemo5AutoOrientation, settings->useAutoRotate()); #endif }