added about box
[qbat.git] / powermanager.cpp
blob56a453739578381bee7b50f2504747ea915223f4
1 //
2 // C++ Implementation: cpowermanager
3 //
4 // Author: Oliver Groß <z.o.gross@gmx.de>, (C) 2008
5 //
6 // Copyright: See COPYING file that comes with this distribution
7 //
8 #include <QtGui>
9 #include "powermanager.h"
10 #include "common.h"
12 namespace qbat {
13 using namespace std;
15 CPowerManager::CPowerManager(QObject * parent) :
16 QObject(parent),
17 m_SysfsDir(UI_PATH_SYSFS_DIR),
18 m_DefaultTrayIcon(QIcon(UI_ICON_QBAT), this)
20 m_ContextMenu.addAction(tr("&Settings"))->setEnabled(false);
21 m_ContextMenu.addAction(tr("&About"), this, SLOT(showAbout()));
22 m_ContextMenu.addSeparator();
23 m_ContextMenu.addAction(tr("&Quit"), qApp, SLOT(quit()));
25 m_DefaultTrayIcon.setContextMenu(&m_ContextMenu);
27 timerEvent(NULL);
28 if (m_SysfsDir.exists()) {
29 m_Timer = startTimer(3000);
33 CPowerManager::~CPowerManager() {
34 killTimer(m_Timer);
37 void CPowerManager::timerEvent(QTimerEvent *) {
38 if (m_SysfsDir.exists()) {
39 bool acPlug = false;
40 QStringList powerSupplies = m_SysfsDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot);
42 QList<CBatteryIcon *> newBatteryIcons;
43 CBatteryIcon * currentBatteryIcon;
45 foreach(QString i, powerSupplies) {
46 string buffer = readStringSysFile(m_SysfsDir.filePath(i + "/type").toAscii().constData());
48 if (buffer == "Mains") {
49 if (1 == readIntSysFile(m_SysfsDir.filePath(i + "/online").toAscii().constData()))
50 acPlug = true;
52 else if (buffer == "Battery") {
53 if (!m_BatteryIcons.contains(i))
54 currentBatteryIcon = new CBatteryIcon(i, &m_ContextMenu, this);
55 else {
56 currentBatteryIcon = m_BatteryIcons.take(i);
57 currentBatteryIcon->updateData();
59 newBatteryIcons << currentBatteryIcon;
63 foreach(CBatteryIcon * i, m_BatteryIcons) {
64 delete i;
67 m_BatteryIcons.clear();
69 foreach(CBatteryIcon * i, newBatteryIcons)
70 m_BatteryIcons.insert(i->batteryName(), i);
72 if (acPlug)
73 m_DefaultTrayIcon.setToolTip("QBat - " + tr("AC adapter plugged in"));
74 else
75 m_DefaultTrayIcon.setToolTip("QBat - " + tr("AC adapter unplugged"));
77 else
78 m_DefaultTrayIcon.setToolTip("QBat - " + tr("no information available"));
80 m_DefaultTrayIcon.setVisible(m_BatteryIcons.isEmpty());
83 void CPowerManager::showAbout() {
84 QMessageBox aboutBox;
86 aboutBox.setWindowIcon(QIcon(UI_ICON_QBAT));
87 aboutBox.setIconPixmap(QPixmap(UI_ICON_QBAT));
88 aboutBox.setWindowTitle(tr("About QBat"));
89 aboutBox.setText(UI_NAME + "\nv" + QString(UI_VERSION));
90 aboutBox.setStandardButtons(QMessageBox::Ok);
92 aboutBox.exec();