Applets
leavemodel.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "core/leavemodel.h"
00022
00023
00024 #include <QFileInfo>
00025
00026
00027 #include <KLocalizedString>
00028 #include <KIcon>
00029 #include <solid/powermanagement.h>
00030
00031
00032 #include "core/models.h"
00033
00034 using namespace Kickoff;
00035
00036 class LeaveModel::Private
00037 {
00038 };
00039
00040 QStandardItem* LeaveModel::createStandardItem(const QString& url)
00041 {
00042
00043 QStandardItem *item = new QStandardItem();
00044 const QString basename = QFileInfo(url).baseName();
00045 if (basename == "logout") {
00046 item->setText(i18n("Logout"));
00047 item->setIcon(KIcon("system-log-out"));
00048 item->setData(i18n("End session"),Kickoff::SubTitleRole);
00049 }
00050 else if (basename == "lock") {
00051 item->setText(i18n("Lock"));
00052 item->setIcon(KIcon("system-lock-screen"));
00053 item->setData(i18n("Lock the screen"),Kickoff::SubTitleRole);
00054 }
00055 else if (basename == "switch") {
00056 item->setText(i18n("Switch User"));
00057 item->setIcon(KIcon("system-switch-user"));
00058 item->setData(i18n("Start a parallel session as a different user"),Kickoff::SubTitleRole);
00059 }
00060 else if (basename == "sleep") {
00061 item->setText(i18n("Sleep"));
00062 item->setIcon(KIcon("system-suspend"));
00063 item->setData(url,Kickoff::SubTitleRole);
00064 }
00065 else if (basename == "hibernate") {
00066 item->setText(i18n("Hibernate"));
00067 item->setIcon(KIcon("system-suspend-hibernate"));
00068 item->setData(url,Kickoff::SubTitleRole);
00069 }
00070 else if (basename == "shutdown") {
00071 item->setText(i18n("Shutdown"));
00072 item->setIcon(KIcon("system-shutdown"));
00073 item->setData(i18n("Turn off the computer"),Kickoff::SubTitleRole);
00074 }
00075 else if (basename == "restart") {
00076 item->setText(i18n("Restart"));
00077 item->setIcon(KIcon("system-restart"));
00078 item->setData(i18n("Restart the computer"),Kickoff::SubTitleRole);
00079 }
00080 else {
00081 item->setText(basename);
00082 item->setData(url,Kickoff::SubTitleRole);
00083 }
00084 item->setData(url,Kickoff::UrlRole);
00085 return item;
00086 }
00087
00088 LeaveModel::LeaveModel(QObject *parent)
00089 : QStandardItemModel(parent)
00090 , d(0)
00091 {
00092
00093 QStandardItem *sessionOptions = new QStandardItem(i18n("Session"));
00094
00095
00096 QStandardItem *logoutOption = createStandardItem("leave:/logout");
00097 sessionOptions->appendRow(logoutOption);
00098
00099
00100 QStandardItem *lockOption = createStandardItem("leave:/lock");
00101 sessionOptions->appendRow(lockOption);
00102
00103
00104 QStandardItem *switchUserOption = createStandardItem("leave:/switch");
00105 sessionOptions->appendRow(switchUserOption);
00106
00107
00108 QStandardItem *systemOptions = new QStandardItem(i18n("System"));
00109
00110 using namespace Solid::PowerManagement;
00111 QSet<SleepState> sleepStates = supportedSleepStates();
00112
00113
00114 if (sleepStates.contains(SuspendState)) {
00115 QStandardItem *sleepOption = createStandardItem("leave:/sleep");
00116 systemOptions->appendRow(sleepOption);
00117 }
00118
00119
00120 if (sleepStates.contains(HibernateState)) {
00121 QStandardItem *hibernateOption = createStandardItem("leave:/hibernate");
00122 systemOptions->appendRow(hibernateOption);
00123 }
00124
00125
00126 QStandardItem *shutDownOption = createStandardItem("leave:/shutdown");
00127 systemOptions->appendRow(shutDownOption);
00128
00129
00130 QStandardItem *restartOption = createStandardItem("leave:/restart");
00131 systemOptions->appendRow(restartOption);
00132
00133 appendRow(sessionOptions);
00134 appendRow(systemOptions);
00135 }
00136 LeaveModel::~LeaveModel()
00137 {
00138 delete d;
00139 }
00140
00141 #include "leavemodel.moc"
00142