New release: 0.4.4
[qcpufreq] / src / helpwindow.cpp
1 /*
2  * QCPUFreq - a simple cpufreq GUI
3  * Copyright (C) 2010 Daniel Klaffenbach <danielklaffenbach@gmail.com>
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  */
18
19 #include "helpwindow.h"
20 #include "ui_helpwindow.h"
21 #include "settings.h"
22
23 #include <QFile>
24 #include <QLocale>
25 #include <QTextStream>
26 #include <QMessageBox>
27
28
29 HelpWindow::HelpWindow(QWidget *parent) :
30     QWidget(parent),
31     ui(new Ui::HelpWindow)
32 {
33     ui->setupUi(this);
34
35     setHelpText();
36 }
37
38
39 HelpWindow::~HelpWindow()
40 {
41     delete ui;
42 }
43
44
45 /**
46   * Assigns the help text to the QTextEdit
47   */
48 void HelpWindow::setHelpText()
49 {
50     //get the current locale name for lacalized help messages
51     QString locale = QLocale::system().name();
52     QStringList tmp = locale.split("_");
53     locale = tmp.first();
54
55     QString path = HELPPATH;
56     Settings settings;
57     QString suffix;
58
59     //determine if we need to display the help file for power kernel users
60     if (settings.usePowerKernel()) {
61         suffix = "_power.html";
62     } else
63     {
64         suffix = ".html";
65     }
66
67     //open help text
68     QFile help( path + "help_" + locale + suffix );
69
70     //open the file
71     if ( !help.exists() || !help.open( QIODevice::ReadOnly ) ) {
72         //try to open the file in english language instead
73         help.setFileName( path + "help_en" + suffix );
74         if ( !help.exists() || !help.open( QIODevice::ReadOnly ) ) {
75             QMessageBox::critical(this, tr("QCPUFreq"), tr("Cannot open help file!"));
76             return;
77         }
78     }
79
80     //read the file
81     QTextStream in( &help );
82     QString txt;
83     do {
84         txt += in.readLine();
85         txt += "\n";
86     } while ( !in.atEnd() );
87
88     ui->textBrowser->setText( txt );
89 }