本文整理汇总了C++中KUser::isValid方法的典型用法代码示例。如果您正苦于以下问题:C++ KUser::isValid方法的具体用法?C++ KUser::isValid怎么用?C++ KUser::isValid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KUser
的用法示例。
在下文中一共展示了KUser::isValid方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: user
SessionWidget::SessionWidget( QGraphicsItem * parent, Qt::WindowFlags wFlags)
: QGraphicsWidget ( parent, wFlags)
{
this->setFocusPolicy(Qt::ClickFocus);
m_signalMapper = new QSignalMapper(this);
QGraphicsLinearLayout* mainLayout = new QGraphicsLinearLayout(Qt::Vertical);
mainLayout->setSpacing(0);
mainLayout->addStretch();
this->setLayout(mainLayout);
connect( m_signalMapper, SIGNAL(mapped(int)),
this, SLOT(slotSwitchSession(int)));
Q_ASSERT(mainLayout->count() == 0);
//Cache the icon pixmaps
QSize iconSize = QSize(KIconLoader::SizeSmallMedium, KIconLoader::SizeSmallMedium);
SessList sessions;
KDisplayManager manager;
manager.localSessions(sessions);
QList<QGraphicsWidget*> entries;
foreach(SessEnt session, sessions) {
QPixmap pixmap;
KUser user (session.user);
if (!user.isValid())
continue;
if (session.tty)
continue;
Plasma::IconWidget* entry = createButton(this);
pixmap = getUserIcon(user);
entry->setIcon(pixmap);
QString username = getUsername(false, user);
entry->setText(username);
connect(entry, SIGNAL(clicked()), m_signalMapper, SLOT(map()));
m_signalMapper->setMapping(entry, session.vt);
if (session.self)
entry->setEnabled(false);
entries << entry;
}
示例2: filterUri
bool KShortUriFilter::filterUri( KUriFilterData& data ) const
{
/*
* Here is a description of how the shortURI deals with the supplied
* data. First it expands any environment variable settings and then
* deals with special shortURI cases. These special cases are the "smb:"
* URL scheme which is very specific to KDE, "#" and "##" which are
* shortcuts for man:/ and info:/ protocols respectively. It then handles
* local files. Then it checks to see if the URL is valid and one that is
* supported by KDE's IO system. If all the above checks fails, it simply
* lookups the URL in the user-defined list and returns without filtering
* if it is not found. TODO: the user-defined table is currently only manually
* hackable and is missing a config dialog.
*/
KUrl url = data.uri();
QString cmd = data.typedString();
// WORKAROUND: Allow the use of '@' in the username component of a URL since
// other browsers such as firefox in their infinite wisdom allow such blatant
// violations of RFC 3986. BR# 69326/118413.
if (cmd.count(QLatin1Char('@')) > 1) {
const int lastIndex = cmd.lastIndexOf(QLatin1Char('@'));
// Percent encode all but the last '@'.
QString encodedCmd = QUrl::toPercentEncoding(cmd.left(lastIndex), ":/");
encodedCmd += cmd.mid(lastIndex);
KUrl u (encodedCmd);
if (u.isValid()) {
cmd = encodedCmd;
url = u;
}
}
const bool isMalformed = !url.isValid();
QString protocol = url.protocol();
kDebug(7023) << cmd;
// Fix misparsing of "foo:80", QUrl thinks "foo" is the protocol and "80" is the path.
// However, be careful not to do that for valid hostless URLs, e.g. file:///foo!
if (!protocol.isEmpty() && url.host().isEmpty() && !url.path().isEmpty()
&& cmd.contains(':') && !KProtocolInfo::protocols().contains(protocol)) {
protocol.clear();
}
//kDebug(7023) << "url=" << url << "cmd=" << cmd << "isMalformed=" << isMalformed;
if (!isMalformed &&
(protocol.length() == 4) &&
(protocol != QLatin1String("http")) &&
(protocol[0]=='h') &&
(protocol[1]==protocol[2]) &&
(protocol[3]=='p'))
{
// Handle "encrypted" URLs like: h++p://www.kde.org
url.setProtocol( QLatin1String("http"));
setFilteredUri( data, url);
setUriType( data, KUriFilterData::NetProtocol );
return true;
}
// TODO: Make this a bit more intelligent for Minicli! There
// is no need to make comparisons if the supplied data is a local
// executable and only the argument part, if any, changed! (Dawit)
// You mean caching the last filtering, to try and reuse it, to save stat()s? (David)
const QString starthere_proto = QL1S("start-here:");
if (cmd.indexOf(starthere_proto) == 0 )
{
setFilteredUri( data, KUrl("system:/") );
setUriType( data, KUriFilterData::LocalDir );
return true;
}
// Handle MAN & INFO pages shortcuts...
const QString man_proto = QL1S("man:");
const QString info_proto = QL1S("info:");
if( cmd[0] == '#' ||
cmd.indexOf( man_proto ) == 0 ||
cmd.indexOf( info_proto ) == 0 )
{
if( cmd.left(2) == QL1S("##") )
cmd = QL1S("info:/") + cmd.mid(2);
else if ( cmd[0] == '#' )
cmd = QL1S("man:/") + cmd.mid(1);
else if ((cmd==info_proto) || (cmd==man_proto))
cmd+='/';
setFilteredUri( data, KUrl( cmd ));
setUriType( data, KUriFilterData::Help );
return true;
}
// Detect UNC style (aka windows SMB) URLs
if ( cmd.startsWith( QLatin1String( "\\\\") ) )
{
// make sure path is unix style
cmd.replace('\\', '/');
cmd.prepend( QLatin1String( "smb:" ) );
//.........这里部分代码省略.........
示例3: EqualSid
bool KUser::operator==(const KUser &user) const
{
if (!isValid() || !user.isValid())
return false;
return EqualSid(d->sid, user.d->sid);
}