]> rtime.felk.cvut.cz Git - sojka/lightdm.git/blobdiff - liblightdm-qt/QLightDM/greeter.h
First pass at reset support
[sojka/lightdm.git] / liblightdm-qt / QLightDM / greeter.h
index 77eab70ffda7eba4ae0acadd6df7f0ba0feb9e94..8abf5e9260ba686ca4cc4c0ae4335cdfc94384af 100644 (file)
  *
  * 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