kauthicon.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#include <unistd.h>
00023
00024
#include <qlayout.h>
00025
#include <qlabel.h>
00026
#include <qtimer.h>
00027
00028
#include <klocale.h>
00029
00030
#include "kauthicon.h"
00031
00032
00033
static const char *
const lock_xpm[] = {
00034
"22 22 5 1",
00035
" c None",
00036
". c #808080",
00037
"+ c #000000",
00038
"@ c #FFFFFF",
00039
"# c #C0C0C0",
00040
" ",
00041
" ",
00042
" ",
00043
" ",
00044
" .+++. ",
00045
" .@@@.+ ",
00046
" ..@+++@.. ",
00047
" +@+...+@+ ",
00048
" +@+. +@+. ",
00049
" +@+. +@+. ",
00050
" +++++++++++ ",
00051
" +#########+. ",
00052
" +#.......#+. ",
00053
" +#@@@@@@@#+. ",
00054
" +#.......#+. ",
00055
" +#########+. ",
00056
" +++++++++++. ",
00057
" ........... ",
00058
" ",
00059
" ",
00060
" ",
00061
" "};
00062
00063
00064
static const char *
const openlock_xpm[] = {
00065
"22 22 5 1",
00066
" c None",
00067
". c #808080",
00068
"+ c #000000",
00069
"@ c #FFFFFF",
00070
"# c #C0C0C0",
00071
" ",
00072
" ",
00073
" .+++. ",
00074
" .@@@.+ ",
00075
" ..@+++@.. ",
00076
" +@+...+@+ ",
00077
" +@+. +@+. ",
00078
" +@+. +@+. ",
00079
" +++. +@+. ",
00080
" ... +@+. ",
00081
" +@+. ",
00082
" +++++++++++ ",
00083
" +#########+. ",
00084
" +#.......#+. ",
00085
" +#@@@@@@@#+. ",
00086
" +#.......#+. ",
00087
" +#########+. ",
00088
" +++++++++++. ",
00089
" ........... ",
00090
" ",
00091
" ",
00092
" "};
00093
00094 KAuthIcon::KAuthIcon(
QWidget *parent,
const char *name)
00095 :
QWidget(parent, name),
00096 lockPM( const_cast< const char** >( lock_xpm)),
00097 openLockPM( const_cast< const char** >(openlock_xpm))
00098 {
00099 lockText = i18n(
"Editing disabled");
00100 openLockText = i18n(
"Editing enabled");
00101
00102 lockBox =
new QLabel(
this);
00103 lockBox->setFrameStyle(QFrame::WinPanel|QFrame::Raised);
00104 lockBox->setPixmap(lockPM);
00105 lockBox->setFixedSize(lockBox->sizeHint());
00106
00107 lockLabel =
new QLabel(
this);
00108 lockLabel->setFrameStyle(QFrame::NoFrame);
00109
00110
00111
if (lockLabel->fontMetrics().boundingRect(lockText).width() >
00112 lockLabel->fontMetrics().boundingRect(openLockText).width())
00113 lockLabel->setText(lockText);
00114
else
00115 lockLabel->setText(openLockText);
00116 lockLabel->setAlignment(AlignCenter);
00117 lockLabel->setMinimumSize(lockLabel->sizeHint());
00118 lockLabel->setText(lockText);
00119
00120 layout =
new QHBoxLayout(
this);
00121
00122 layout->addWidget(lockBox, 0, AlignLeft|AlignVCenter);
00123 layout->addSpacing(5);
00124 layout->addWidget(lockLabel, 0, AlignRight|AlignVCenter);
00125
00126 layout->activate();
00127 resize(sizeHint());
00128 }
00129
00130 KAuthIcon::~KAuthIcon()
00131 {
00132 }
00133
00134
00135
QSize KAuthIcon::sizeHint()
const
00136
{
00137
return layout->minimumSize();
00138 }
00139
00140
00141
00142
00143 KRootPermsIcon::KRootPermsIcon(
QWidget *parent,
const char *name)
00144 :
KAuthIcon(parent,
name)
00145 {
00146
updateStatus();
00147 }
00148
00149
00150 KRootPermsIcon::~KRootPermsIcon()
00151 {
00152 }
00153
00154 void KRootPermsIcon::updateStatus()
00155 {
00156
bool newRoot;
00157 newRoot = (geteuid() == 0);
00158 lockBox->setPixmap(newRoot ? openLockPM : lockPM);
00159 lockLabel->setText(newRoot ? openLockText : lockText);
00160 update();
00161
if (root != newRoot) {
00162 root = newRoot;
00163 emit authChanged(newRoot);
00164 }
00165 }
00166
00167
00168
00169 KWritePermsIcon::KWritePermsIcon(
const QString & fileName,
00170
QWidget *parent,
const char *name)
00171 :
KAuthIcon(parent, name)
00172 {
00173 fi.setFile(fileName);
00174
updateStatus();
00175 }
00176
00177
00178 KWritePermsIcon::~KWritePermsIcon()
00179 {
00180 }
00181
00182 void KWritePermsIcon::updateStatus()
00183 {
00184
bool newwrite;
00185 newwrite = fi.isWritable();
00186 lockBox->setPixmap(newwrite ? openLockPM : lockPM);
00187 lockLabel->setText(newwrite ? openLockText : lockText);
00188 update();
00189
if (writable != newwrite) {
00190 writable = newwrite;
00191 emit authChanged(newwrite);
00192 }
00193 }
00194
00195
void KAuthIcon::virtual_hook(
int,
void* )
00196 { }
00197
00198
void KRootPermsIcon::virtual_hook(
int id,
void* data )
00199 { KAuthIcon::virtual_hook(
id, data ); }
00200
00201
void KWritePermsIcon::virtual_hook(
int id,
void* data )
00202 { KAuthIcon::virtual_hook(
id, data ); }
00203
00204
#include "kauthicon.moc"
This file is part of the documentation for kdeui Library Version 3.2.3.