本文整理汇总了C++中KStandardDirs::addKDEDefaults方法的典型用法代码示例。如果您正苦于以下问题:C++ KStandardDirs::addKDEDefaults方法的具体用法?C++ KStandardDirs::addKDEDefaults怎么用?C++ KStandardDirs::addKDEDefaults使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KStandardDirs
的用法示例。
在下文中一共展示了KStandardDirs::addKDEDefaults方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: fi
KdeSudo::KdeSudo(QWidget *parent, const char *name,const QString& icon, const QString& generic, bool withIgnoreButton)
: KPasswordDialog(KPasswordDialog::Password, false, (withIgnoreButton ? User1: false), icon, parent, name)
{
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
QString defaultComment = i18n("<b>%1</b> needs administrative privileges. Please enter your password for verification.");
p=NULL;
bError=false;
m_pCookie = new KCookie;
// Set vars
bool newDcop = args->isSet("newdcop");
bool realtime = args->isSet("r");
bool priority = args->isSet("p");
bool showCommand = (!args->isSet("d"));
bool changeUID = true;
bool noExec = false;
keepPwd = (!args->isSet("n"));
emptyPwd = args->isSet("s");
QString runas = args->getOption("u");
QString cmd;
if (!args->isSet("c") && !args->count() && (!args->isSet("s")))
{
KMessageBox::information(NULL, i18n("No command arguments supplied!\nUsage: kdesudo [-u <runas>] <command>\nKdeSudo will now exit..."));
noExec = true;
}
p = new KProcess;
p->clearArguments();
// Parsins args
/* Get the comment out of cli args */
QByteArray commentBytes = args->getOption("comment");
QTextCodec* tCodecConv = QTextCodec::codecForLocale();
QString comment = tCodecConv->toUnicode(commentBytes, commentBytes.size());
if (args->isSet("f"))
{
// If file is writeable, do not change uid
QString filename = QFile::decodeName(args->getOption("f"));
QString file = filename;
if (!file.isEmpty())
{
if (file.at(0) != '/')
{
KStandardDirs dirs;
dirs.addKDEDefaults();
file = dirs.findResource("config", file);
if (file.isEmpty())
{
kdError(1206) << "Config file not found: " << file << "\n";
exit(1);
}
}
QFileInfo fi(file);
if (!fi.exists())
{
kdError(1206) << "File does not exist: " << file << "\n";
exit(1);
}
if (fi.isWritable())
{
changeUID = false;
}
}
}
if (withIgnoreButton)
{
setButtonText(User1, i18n("&Ignore"));
}
// Apologies for the C code, taken from kdelibs/kdesu/kdesu_stub.c
// KControl and other places need to use the user's existing DCOP server
// For that we set DCOPSERVER. Create a file in /tmp and use iceauth to add magic cookies
// from the existing server and set ICEAUTHORITY to point to the file
if (!newDcop) {
dcopServer = m_pCookie->dcopServer();
QCString dcopAuth = m_pCookie->dcopAuth();
QCString iceAuth = m_pCookie->iceAuth();
FILE *fout;
char iceauthority[200];
char *host, *auth;
host = qstrdup(dcopServer);
auth = qstrdup(iceAuth);
int tempfile;
int oldumask = umask(077);
strcpy(iceauthority, "/tmp/iceauth.XXXXXXXXXX");
tempfile = mkstemp(iceauthority);
umask(oldumask);
if (tempfile == -1) {
kdError() << "error in kdesudo mkstemp" << endl;
exit(1);
} else {
// close(tempfile); //FIXME why does this make the connect() call later crash?
//.........这里部分代码省略.........
示例2: startApp
static int startApp()
{
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
// Stop daemon and exit?
if (args->isSet("s"))
{
KDEsuClient client;
if (client.ping() == -1)
{
kdError(1206) << "Daemon not running -- nothing to stop\n";
exit(1);
}
if (client.stopServer() != -1)
{
kdDebug(1206) << "Daemon stopped\n";
exit(0);
}
kdError(1206) << "Could not stop daemon\n";
exit(1);
}
QString icon;
if ( args->isSet("i"))
icon = args->getOption("i");
bool prompt = true;
if ( args->isSet("d"))
prompt = false;
// Get target uid
QCString user = args->getOption("u");
QCString auth_user = user;
struct passwd *pw = getpwnam(user);
if (pw == 0L)
{
kdError(1206) << "User " << user << " does not exist\n";
exit(1);
}
bool change_uid = (getuid() != pw->pw_uid);
// If file is writeable, do not change uid
QString file = QFile::decodeName(args->getOption("f"));
if (change_uid && !file.isEmpty())
{
if (file.at(0) != '/')
{
KStandardDirs dirs;
dirs.addKDEDefaults();
file = dirs.findResource("config", file);
if (file.isEmpty())
{
kdError(1206) << "Config file not found: " << file << "\n";
exit(1);
}
}
QFileInfo fi(file);
if (!fi.exists())
{
kdError(1206) << "File does not exist: " << file << "\n";
exit(1);
}
change_uid = !fi.isWritable();
}
// Get priority/scheduler
QCString tmp = args->getOption("p");
bool ok;
int priority = tmp.toInt(&ok);
if (!ok || (priority < 0) || (priority > 100))
{
KCmdLineArgs::usage(i18n("Illegal priority: %1").arg(tmp));
exit(1);
}
int scheduler = SuProcess::SchedNormal;
if (args->isSet("r"))
scheduler = SuProcess::SchedRealtime;
if ((priority > 50) || (scheduler != SuProcess::SchedNormal))
{
change_uid = true;
auth_user = "root";
}
// Get command
if (args->isSet("c"))
{
command = args->getOption("c");
for (int i=0; i<args->count(); i++)
{
QString arg = QFile::decodeName(args->arg(i));
KRun::shellQuote(arg);
command += " ";
command += QFile::encodeName(arg);
}
}
else
{
if( args->count() == 0 )
{
KCmdLineArgs::usage(i18n("No command specified."));
exit(1);
//.........这里部分代码省略.........