}
-KStdGreeter::KStdGreeter()
- : KGreeter()
- , clock(0)
- , pixLabel(0)
-{
- QBoxLayout *main_box;
-#ifdef WITH_KDM_XCONSOLE
- if (consoleView) {
- QBoxLayout *ex_box = new QVBoxLayout(this);
- main_box = new QHBoxLayout();
- ex_box->addLayout(main_box);
- ex_box->addWidget(consoleView);
- } else
-#endif
- {
- main_box = new QHBoxLayout(this);
- }
- int rs = layout()->spacing();
- main_box->setSpacing(layout()->margin());
-
- if (userView)
- main_box->addWidget(userView);
-
- QBoxLayout *inner_box = new QVBoxLayout();
- main_box->addLayout(inner_box);
- inner_box->setSpacing(rs);
-
- if (!_authorized && _authComplain) {
- QLabel *complainLabel = new QLabel(
- i18n("Warning: this is an unsecured session"), this);
- complainLabel->setToolTip(
- i18n("This display requires no X authorization.\n"
- "This means that anybody can connect to it,\n"
- "open windows on it or intercept your input."));
- complainLabel->setAlignment(Qt::AlignCenter);
- complainLabel->setFont(*_failFont);
- QPalette p;
- p.setBrush(QPalette::WindowText,
- KColorScheme(QPalette::Active, KColorScheme::Window)
- .foreground(KColorScheme::NegativeText));
- complainLabel->setPalette(p);
- inner_box->addWidget(complainLabel);
- }
- if (!_greetString.isEmpty()) {
- QLabel *welcomeLabel = new QLabel(_greetString, this);
- welcomeLabel->setAlignment(Qt::AlignCenter);
- welcomeLabel->setFont(*_greetFont);
- inner_box->addWidget(welcomeLabel);
- }
-
- switch (_logoArea) {
- case LOGO_CLOCK:
- clock = new KdmClock(this);
- break;
- case LOGO_LOGO: {
- QMovie *movie = new QMovie(this);
- movie->setFileName(_logo);
- if (movie->isValid()) {
- movie->start();
- pixLabel = new QLabel(this);
- pixLabel->setMovie(movie);
- if (!movie->currentImage().hasAlphaChannel())
- pixLabel->setFrameStyle(QFrame::Panel | QFrame::Sunken);
- pixLabel->setIndent(0);
- } else {
- delete movie;
- }
- break; }
- }
-
- if (userView) {
- if (clock)
- inner_box->addWidget(clock, 0, Qt::AlignCenter);
- else if (pixLabel)
- inner_box->addWidget(pixLabel, 0, Qt::AlignCenter);
- inner_box->addSpacing(inner_box->spacing());
- } else {
- if (clock)
- main_box->addWidget(clock, 0, Qt::AlignCenter);
- else if (pixLabel)
- main_box->addWidget(pixLabel, 0, Qt::AlignCenter);
- }
-
- goButton = new QPushButton(i18nc("@action:button", "L&ogin"), this);
- goButton->setDefault(true);
- connect(goButton, SIGNAL(clicked()), SLOT(accept()));
- QPushButton *menuButton = new QPushButton(i18nc("@action:button", "&Menu"), this);
- //helpButton
-
- QWidget *prec;
- if (userView)
- prec = userView;
-#ifdef WITH_KDM_XCONSOLE
- else if (consoleView)
- prec = consoleView;
-#endif
- else
- prec = menuButton;
- KGStdVerify *sverify =
- new KGStdVerify(this, this, prec, QString(),
- pluginList, KGreeterPlugin::Authenticate,
- KGreeterPlugin::Login);
- inner_box->addLayout(sverify->getLayout());
- QMenu *plugMenu = sverify->getPlugMenu();
- sverify->selectPlugin(curPlugin);
- verify = sverify;
-
- inner_box->addWidget(new KSeparator(Qt::Horizontal, this));
-
- QBoxLayout *hbox2 = new QHBoxLayout();
- inner_box->addLayout(hbox2);
- hbox2->addWidget(goButton);
- hbox2->addStretch(1);
- hbox2->addWidget(menuButton);
- hbox2->addStretch(1);
-
- if (sessMenu->actions().count() > 1) {
- inserten(i18nc("@title:menu", "Session &Type"), Qt::ALT + Qt::Key_T, sessMenu);
- needSep = true;
- }
-
- if (plugMenu) {
- inserten(i18nc("@title:menu", "&Authentication Method"), Qt::ALT + Qt::Key_A, plugMenu);
- needSep = true;
- }
-
-#ifdef XDMCP
- completeMenu(LOGIN_LOCAL_ONLY, ex_choose, i18nc("@action:inmenu", "&Remote Login"), Qt::ALT + Qt::Key_R);
-#else
- completeMenu();
-#endif
-
- if (optMenu)
- menuButton->setMenu(optMenu);
- else
- menuButton->hide();
-
- pluginSetup();
-
- verify->start();
-}
-
-void
-KStdGreeter::pluginSetup()
-{
- inherited::pluginSetup();
- if (userView) {
- if (verify->entitiesLocal() && verify->entityPresettable())
- userView->show();
- else
- userView->hide();
- }
- adjustGeometry();
- update();
-}
-
-void
-KStdGreeter::verifyFailed()
-{
- goButton->setEnabled(false);
- inherited::verifyFailed();
-}
-
-void
-KStdGreeter::verifyRetry()
-{
- goButton->setEnabled(true);
- inherited::verifyRetry();
-}
-
-
KThemedGreeter::KThemedGreeter(KdmThemer *_themer)
: KGreeter(true)
, themer(_themer)