You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdeadmin/kuser/kuservw.cpp

146 lines
3.9 KiB

/*
* Copyright (c) 1998 Denis Perchine <dyp@perchine.com>
* Copyright (c) 2004 Szombathelyi György <gyurco@freemail.hu>
* Former maintainer: Adriaan de Groot <groot@kde.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License version 2 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
**/
#include "kglobal_.h"
#include "misc.h"
#include "kuservw.h"
KUserViewItem::KUserViewItem(KListView *tqparent, KU::KUser *aku)
: KListViewItem(tqparent), mUser(aku)
{
}
int KUserViewItem::compare( TQListViewItem *i, int col, bool ascending ) const
{
if ( col == 0 ) {
uid_t uid1, uid2;
uid1 = mUser->getUID();
uid2 = ((KUserViewItem*) i)->mUser->getUID();
if ( uid1 == uid2 ) return 0;
return ( uid1 < uid2) ? -1: 1;
} else {
return TQListViewItem::compare( i, col, ascending );
}
}
void KUserViewItem::paintCell( TQPainter *p, const TQColorGroup &cg,
int column, int width, int tqalignment )
{
TQColorGroup _cg( cg );
TQColor c = _cg.text();
if ( mUser->getDisabled() )
_cg.setColor( TQColorGroup::Text, KGlobalSettings::visitedLinkColor() );
KListViewItem::paintCell( p, _cg, column, width, tqalignment );
_cg.setColor( TQColorGroup::Text, c );
}
TQString KUserViewItem::text(int num) const
{
switch(num)
{
case 0: return mUser->getCaps() & KU::KUser::Cap_POSIX ?
TQString::number( mUser->getUID() ) : TQString();
case 1: return mUser->getName();
case 2: return mUser->getFullName();
case 3: return mUser->getHomeDir();
case 4: return mUser->getShell();
case 5: return mUser->getSID().getDOM();
case 6: return mUser->getCaps() & KU::KUser::Cap_Samba ?
TQString::number( mUser->getSID().getRID() ) : TQString();
case 7: return mUser->getLoginScript();
case 8: return mUser->getProfilePath();
case 9: return mUser->getHomeDrive();
case 10: return mUser->getHomePath();
}
return TQString();
}
KUserView::KUserView(TQWidget *tqparent, const char *name)
: KListView( tqparent, name )
{
setSelectionMode( TQListView::Extended );
}
KUserView::~KUserView()
{
}
void KUserView::insertItem(KU::KUser *aku) {
KUserViewItem *userItem = new KUserViewItem(this, aku);
KListView::insertItem(userItem);
}
void KUserView::removeItem(KU::KUser *aku) {
KUserViewItem *userItem = (KUserViewItem *)firstChild();
while(userItem)
{
if (userItem->user() == aku)
{
delete userItem;
return;
}
userItem = (KUserViewItem*) userItem->nextSibling();
}
}
void KUserView::init()
{
while ( columns() > 5 ) {
removeColumn( 5 );
}
setAllColumnsShowFocus(true);
if ( columns() < 5 ) {
addColumn(i18n("UID"));
setColumnAlignment(0, AlignRight);
addColumn(i18n("User Login"));
addColumn(i18n("Full Name"));
addColumn(i18n("Home Directory"));
addColumn(i18n("Login Shell"));
}
if ( kug->getUsers().getCaps() & KU::KUsers::Cap_Samba ) {
addColumn(i18n("Domain SID"));
addColumn(i18n("RID"));
addColumn(i18n("Samba Login Script"));
addColumn(i18n("Samba Profile Path"));
addColumn(i18n("Samba Home Drive"));
addColumn(i18n("Samba Home Path"));
}
}
KU::KUser *KUserView::getCurrentUser() {
KUserViewItem *userItem = (KUserViewItem *)currentItem();
if (!userItem) return 0;
return userItem->user();
}
#include "kuservw.moc"