X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fmainwindow.cpp;h=518c7e1c2855f44421134f8ad07566eb2ee457a4;hb=fbc7272d5a8a2dad06db9ac1ae21264223127c55;hp=81497794cf1c1b0a2eeba0932afc35dff97fb6aa;hpb=ec1dcd3a4bc61d75bedeff148be3b17b2f5a5f4f;p=qcpufreq diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 8149779..518c7e1 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -28,13 +28,12 @@ #endif #define APPNAME "QCPUFreq" -#define APPVERSION "0.3.4" +#define APPVERSION "0.3.99" + MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), - //do not allow overclocking per default - allowOverclocking(false), //create helper process helperProcess( this ), //create a new, stackable help window @@ -42,11 +41,7 @@ MainWindow::MainWindow(QWidget *parent) : //create UI refresh timer refreshTimer( this ), //create a QGraphicsScene for the little chip icon - scene( this ), - //the settings widget - settings(this), - //show errors about the sudo setup only once - showSudoError( true ) + scene( this ) { //this is a stacked window on Maemo 5 #if defined(Q_WS_MAEMO_5) @@ -55,11 +50,14 @@ MainWindow::MainWindow(QWidget *parent) : ui->setupUi(this); + //Settings widget + settings = new Settings; + settings->hide(); + init(); - refresh(); - // enable auto rotation - setAutoRotation(); + //applies the settings from the settings dialog + applySettings(); //initialize orientation orientationChanged(); @@ -73,9 +71,8 @@ MainWindow::MainWindow(QWidget *parent) : #endif helpWindow.setWindowFlags( windowFlags() | Qt::Window ); - //Settings widget - //settings.setWindowFlags(Qt::Popup); - settings.hide(); + //show errors about the sudo setup only once + showSudoError = true; //connect signals and slots connect(ui->actionHelp, SIGNAL(triggered()), this, SLOT(showHelp())); @@ -84,19 +81,14 @@ 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->actionOverclocking, SIGNAL(toggled(bool)), this, SLOT(setOverclocking())); connect(ui->actionSettings, SIGNAL(triggered()), this, SLOT(showSettings())); - - - //disable overclocking button on vanilla kernels - if (!powerKernel) { - ui->actionOverclocking->setDisabled(true); - } + connect(settings, SIGNAL(settingsChanged()), this, SLOT(applySettings())); } MainWindow::~MainWindow() { + delete settings; delete ui; } @@ -133,13 +125,19 @@ void MainWindow::adjustFreq() //check for overclocking #if defined(Q_WS_MAEMO_5) - if (this->allowOverclocking == false && newmax > 600000) { - QMaemo5InformationBox::information(this, tr( "You need to enable overclocking in QCPUFreq's menu for setting frequencies above 600MHz!"), 0); + if (!settings->useOverclocking() && newmax > 600000) { + QMaemo5InformationBox::information(this, tr( "You need to enable overclocking in QCPUFreq's settings in order to set frequencies above 600MHz!"), 0); refresh(); return; } #endif + //check for 599MHz <-> 600MHz problem on power kernels + if (max == "600000" && settings->usePowerKernel()) { + //we really need to set the maximum to 599MHz + max = "599000"; + } + callHelper( "set_maxfreq", max ); refresh(); @@ -147,6 +145,19 @@ void MainWindow::adjustFreq() /** + * SLOT: applies the settings from the Settings dialog. + */ +void MainWindow::applySettings() +{ + setAutoRotation(); + setAdvancedTemperature(); + + //refresh the GUI after applying the settings + refresh(); +} + + +/** * Calls the QCPUFreq helper script with "sudo action param" * * @param action : the action of the helper script @@ -312,7 +323,6 @@ int MainWindow::getSmartReflexState() * - scalingSteps * - scalingFrequencies * - minFreq - * - powerKernel */ void MainWindow::init() { @@ -345,13 +355,6 @@ void MainWindow::init() } else { this->minFreq = min.toInt(); } - - //check if we are using a power kernel - if ( getScalingFreq(getScalingSteps()) > 600000 ) { - this->powerKernel = true; - } else { - this->powerKernel = false; - } } @@ -417,8 +420,6 @@ void MainWindow::refresh() ui->freq_adjust->setMinimum( 1 ); ui->freq_adjust->setMaximum( getScalingSteps() ); ui->freq_adjust->setSliderPosition( getScalingStep(getMaxFreq()) ); - - //ui->retranslateUi(this); } @@ -452,29 +453,24 @@ void MainWindow::orientationChanged() /** - * Enables the auto-rotation feature of Maemo5 devices + * Checks the settings if the "bq27x00_battery" needs to be loaded. */ -void MainWindow::setAutoRotation() +void MainWindow::setAdvancedTemperature() { -#if defined(Q_WS_MAEMO_5) - setAttribute(Qt::WA_Maemo5AutoOrientation, true); -#endif + if (settings->usePowerKernel() && settings->useAdvancedTemperature()) { + callHelper( "load_bq27", "null" ); + } } /** - * SLOT: enable/disable overclocking. + * Enables or disables the auto-rotation feature of Maemo5 devices. */ -void MainWindow::setOverclocking() +void MainWindow::setAutoRotation() { - if (ui->actionOverclocking->isChecked()) { - #if defined(Q_WS_MAEMO_5) - QMaemo5InformationBox::information(this, tr( "Please note that overclocking voids your warranty and may break your device! Be careful!"), 0); - #endif - this->allowOverclocking = true; - } else { - this->allowOverclocking = false; - } +#if defined(Q_WS_MAEMO_5) + setAttribute(Qt::WA_Maemo5AutoOrientation, settings->useAutoRotate()); +#endif } @@ -512,8 +508,8 @@ void MainWindow::showHelp() */ void MainWindow::showSettings() { - settings.reset(); - settings.show(); + settings->reset(); + settings->show(); }