*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 3 of the License, or (at your option) any
- * later version. See http://www.gnu.org/copyleft/lgpl.html the full text of the
- * license.
+ * Software Foundation; either version 2 or version 3 of the License.
+ * See http://www.gnu.org/copyleft/lgpl.html the full text of the license.
*/
-#ifndef QLIGTHDM_GREETER_H
-#define QLIGTHDM_GREETER_H
+#ifndef QLIGHTDM_GREETER_H
+#define QLIGHTDM_GREETER_H
#include <QtCore/QObject>
#include <QtCore/QVariant>
-#include "user.h"
-#include "language.h"
-//#include "layout.h"
-
-class GreeterPrivate;
namespace QLightDM
{
- class Q_DECL_EXPORT Greeter : public QObject
- {
+ class GreeterPrivate;
+
+class Q_DECL_EXPORT Greeter : public QObject
+{
Q_OBJECT
- public:
- explicit Greeter(QObject* parent=0);
- virtual ~Greeter();
-
- Q_PROPERTY(bool canSuspend READ canSuspend);
- Q_PROPERTY(bool canHibernate READ canHibernate);
- Q_PROPERTY(bool canShutdown READ canShutdown);
- Q_PROPERTY(bool canRestart READ canRestart);
-
- Q_PROPERTY(QString hostname READ hostname CONSTANT);
-
- /** The hostname of the machine */
- QString hostname() const;
-
- QString timedLoginUser() const;
- int timedLoginDelay() const;
-
- QList<QLightDM::Language> languages() const;
- QString defaultLanguage() const;
-
- //QList<LdmLayout> layouts() const;
- QString layout() const;
-
- QString getHint(QString name) const;
- QString defaultSessionHint() const;
- bool showUsersHint() const;
- bool hasGuestAccountHint() const;
- QString selectUserHint() const;
- bool selectGuestHint() const;
- QString autologinUserHint() const;
- bool autologinGuestHint() const;
- int autologinTimeoutHint() const;
-
- bool inAuthentication() const;
- bool isAuthenticated() const;
- QString authenticationUser() const;
-
- bool canSuspend() const;
- bool canHibernate() const;
- bool canShutdown() const;
- bool canRestart() const;
-
- public slots:
- void suspend();
- void hibernate();
- void shutdown();
- void restart();
-
- void connectToServer();
- void login(const QString &username);
- void loginAsGuest();
- void respond(const QString &response);
- void cancelAuthentication();
- void startSession(const QString &session=QString());
-
- signals:
- void connected();
- void showPrompt(QString prompt);
- void showMessage(QString message);
- void showError(QString message);
- void authenticationComplete(bool isAuthenticated);
- void sessionFailed();
- void timedLogin(QString username);
- void quit();
-
- private slots:
- void onRead(int fd);
-
- private:
- GreeterPrivate *d;
- void writeInt(int value);
- void writeString(QString value);
- void writeHeader(int id, int length);
- void flush();
- int getPacketLength();
- int readInt(int *offset);
- QString readString(int *offset);
+
+ Q_PROPERTY(bool authenticated READ isAuthenticated ) //NOTFIY authenticationComplete
+ Q_PROPERTY(QString authenticationUser READ authenticationUser )
+ Q_PROPERTY(QString defaultSession READ defaultSessionHint CONSTANT)
+ Q_PROPERTY(QString selectUser READ selectUserHint CONSTANT)
+ Q_PROPERTY(bool selectGuest READ selectGuestHint CONSTANT)
+
+ Q_PROPERTY(QString hostname READ hostname CONSTANT)
+ Q_PROPERTY(bool hasGuestAccount READ hasGuestAccountHint CONSTANT)
+ Q_PROPERTY(bool locked READ lockHint CONSTANT)
+
+ Q_PROPERTY(QString hostname READ hostname CONSTANT)
+
+ Q_ENUMS(PromptType MessageType)
+
+public:
+ enum PromptType {
+ PromptTypeQuestion,
+ PromptTypeSecret
};
-};//end namespace
+ enum MessageType {
+ MessageTypeInfo,
+ MessageTypeError
+ };
-#endif // QLIGHDM_GREETER_H
+ explicit Greeter(QObject* parent=0);
+ virtual ~Greeter();
+
+ QString getHint(const QString &name) const;
+ QString defaultSessionHint() const;
+ bool hideUsersHint() const;
+ bool showManualLoginHint() const;
+ bool showRemoteLoginHint() const;
+ bool lockHint () const;
+ bool hasGuestAccountHint() const;
+ QString selectUserHint() const;
+ bool selectGuestHint() const;
+ QString autologinUserHint() const;
+ bool autologinGuestHint() const;
+ int autologinTimeoutHint() const;
+
+ bool inAuthentication() const;
+ bool isAuthenticated() const;
+ QString authenticationUser() const;
+ QString hostname() const;
+
+public Q_SLOTS:
+ bool connectSync();
+ void authenticate(const QString &username=QString());
+ void authenticateAsGuest();
+ void authenticateAutologin();
+ void authenticateRemote(const QString &session=QString(), const QString &username=QString());
+ void respond(const QString &response);
+ void cancelAuthentication();
+ void setLanguage (const QString &language);
+ void setResettable (bool resettable);
+ bool startSessionSync(const QString &session=QString());
+ QString ensureSharedDataDirSync(const QString &username);
+
+Q_SIGNALS:
+ void showMessage(QString text, QLightDM::Greeter::MessageType type);
+ void showPrompt(QString text, QLightDM::Greeter::PromptType type);
+ void authenticationComplete();
+ void autologinTimerExpired();
+ void idle();
+ void reset();
+
+private:
+ GreeterPrivate *d_ptr;
+ Q_DECLARE_PRIVATE(Greeter)
+
+};
+}
+
+#endif // QLIGHTDM_GREETER_H