Skip to content
This repository
Browse code

Added razorqt-lightdm-greeter - a razor frontend to lightdm

  • Loading branch information...
commit 922f71a451ceee7ea650f4b8aedc4e0e804a03de 1 parent 60df890
Christian Surlykke authored March 04, 2012

Showing 21 changed files with 7,314 additions and 1 deletion. Show diff stats Hide diff stats

  1. 2  CMakeLists.txt
  2. 75  razorqt-lightdm-greeter/CMakeLists.txt
  3. 117  razorqt-lightdm-greeter/loginform.cpp
  4. 36  razorqt-lightdm-greeter/loginform.h
  5. 224  razorqt-lightdm-greeter/loginform.ui
  6. 12  razorqt-lightdm-greeter/main.cpp
  7. 31  razorqt-lightdm-greeter/mainwindow.cpp
  8. 23  razorqt-lightdm-greeter/mainwindow.h
  9. 6  razorqt-lightdm-greeter/resources/lightdm-razor-greeter.desktop
  10. 6  razorqt-lightdm-greeter/test/lightdm-razor-greeter.desktop
  11. 3  razorqt-lightdm-greeter/test/lightdm.conf
  12. 3  razorqt-lightdm-greeter/test/test.sh
  13. 6,397  razorqt-resources/graphics/rqt-2.svg
  14. 80  razorqt-resources/themes/a-mego/razor-lightdm-greeter/leaveIcon.svg
  15. 15  razorqt-resources/themes/a-mego/razor-lightdm-greeter/razor-lightdm-greeter.qss
  16. 80  razorqt-resources/themes/ambiance/razor-lightdm-greeter/leaveIcon.svg
  17. 15  razorqt-resources/themes/ambiance/razor-lightdm-greeter/razor-lightdm-greeter.qss
  18. 80  razorqt-resources/themes/green/razor-lightdm-greeter/leaveIcon.svg
  19. 15  razorqt-resources/themes/green/razor-lightdm-greeter/razor-lightdm-greeter.qss
  20. 80  razorqt-resources/themes/light/razor-lightdm-greeter/leaveIcon.svg
  21. 15  razorqt-resources/themes/light/razor-lightdm-greeter/razor-lightdm-greeter.qss
2  CMakeLists.txt
@@ -68,7 +68,7 @@ add_subdirectory( razorqt-runner )
68 68
 add_subdirectory( razorqt-config )
69 69
 add_subdirectory( razorqt-power )
70 70
 add_subdirectory( razorqt-policykit )
71  
-
  71
+add_subdirectory( razorqt-lightdm-greeter )
72 72
 
73 73
 ########### Add uninstall target ###############
74 74
 CONFIGURE_FILE(
75  razorqt-lightdm-greeter/CMakeLists.txt
... ...
@@ -0,0 +1,75 @@
  1
+set(PROJECT razor-lightdm-greeter)
  2
+project($PROJECT)
  3
+
  4
+include(FindPkgConfig)
  5
+pkg_check_modules(LIGHTDM_QT liblightdm-qt-1)
  6
+
  7
+
  8
+if(NOT LIGHTDM_QT_INCLUDE_DIRS)
  9
+    message(STATUS "Qt bindings for liblightdm not found. Razor-lightdm-greeter won't be built")
  10
+    message(STATUS "Hint: On debian or debian-derived distributions you could probably do: sudo apt-get liblightdm-qt-1-dev")
  11
+elseif(NOT LIGHTDM_QT_LIBRARIES)
  12
+    message(STATUS "lightdm-qt library not found. Razor-lightdm-greeter won't be built")
  13
+    message(STATUS "Hint: On debian or debian-derived distributions the package would be something like: liblightdm-qt-1-0")
  14
+else()
  15
+
  16
+    ############### Patch #############################################################
  17
+    # liblightdm-qt-1.pc (pkg-config file) erroneously reports includedir as
  18
+    # /usr/include/lightdm-qt-0 and the library as lightdm-qt-0. So we have to patch
  19
+    # Bug filed: https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/943914
  20
+
  21
+    foreach(INCLUDEDIR ${LIGHTDM_QT_INCLUDE_DIRS})
  22
+        string(REPLACE "-qt-0" "-qt-1" INCLUDEDIR ${INCLUDEDIR})
  23
+        list(APPEND TMP1 ${INCLUDEDIR})
  24
+    endforeach()
  25
+    set(LIGHTDM_QT_INCLUDE_DIRS ${TMP1})
  26
+
  27
+    foreach(LIBRARY ${LIGHTDM_QT_LIBRARIES})
  28
+        string(REPLACE "-qt-0" "-qt-1" LIBRARY ${LIBRARY})
  29
+        list(APPEND TMP2 ${LIBRARY})
  30
+    endforeach()
  31
+    set(LIGHTDM_QT_LIBRARIES ${TMP2})
  32
+    ############## End patch #########################################################
  33
+
  34
+    include_directories (
  35
+            ${CMAKE_CURRENT_SOURCE_DIR}
  36
+            ${CMAKE_CURRENT_BINARY_DIR}
  37
+            ${CMAKE_SOURCE_DIR}/libraries/
  38
+            ${CMAKE_SOURCE_DIR}/libraries/razorqt
  39
+            ${LIGHTDM_QT_INCLUDE_DIRS}
  40
+            )
  41
+
  42
+    set ( razor-lightdm-greeter_SRCS
  43
+          main.cpp
  44
+          mainwindow.cpp
  45
+          loginform.cpp
  46
+        )
  47
+
  48
+    set ( razor-lightdm-greeter_UIS
  49
+          loginform.ui
  50
+        )
  51
+    QT4_WRAP_UI(UIS ${razor-lightdm-greeter_UIS})
  52
+
  53
+    set ( razor-lightdm-greeter_RSCS )
  54
+    QT4_ADD_RESOURCES(RSCS ${razor-lightdm-greeter_RSCS})
  55
+
  56
+    set ( razor-lightdm-greeter_MOCS
  57
+          mainwindow.h
  58
+          loginform.h
  59
+        )
  60
+    QT4_WRAP_CPP(MOCS ${razor-lightdm-greeter_MOCS})
  61
+
  62
+    if(CMAKE_BUILD_TYPE MATCHES [Dd]ebug)
  63
+        configure_file(test/test.sh test/test.sh)
  64
+        configure_file(test/lightdm-razor-greeter.desktop test/lightdm-razor-greeter.desktop)
  65
+        configure_file(test/lightdm.conf test/lightdm.conf)
  66
+    endif()
  67
+
  68
+    add_executable ( razor-lightdm-greeter ${razor-lightdm-greeter_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} )
  69
+    target_link_libraries ( razor-lightdm-greeter  razorqt ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QT_QTDBUS_LIBRARY} ${LIGHTDM_QT_LIBRARIES})
  70
+
  71
+    file(GLOB DESKTOP_FILES resources/*.desktop)
  72
+
  73
+    install(TARGETS ${PROJECT} RUNTIME DESTINATION bin)
  74
+    install(FILES   ${DESKTOP_FILES}   DESTINATION /usr/share/xgreeters)
  75
+endif()
117  razorqt-lightdm-greeter/loginform.cpp
... ...
@@ -0,0 +1,117 @@
  1
+#include "loginform.h"
  2
+#include "ui_loginform.h"
  3
+#include <QDebug>
  4
+#include <QLightDM/Session>
  5
+#include <QLightDM/User>
  6
+#include <QLightDM/System>
  7
+#include <QCompleter>
  8
+#include <QAbstractListModel>
  9
+#include <QModelIndex>
  10
+#include <QFile>
  11
+#include <QTextStream>
  12
+#include <QStringList>
  13
+#include <QPixmap>
  14
+#include <QMessageBox>
  15
+#include <QModelIndex>
  16
+#include <QMenu>
  17
+#include <QProcess>
  18
+#include <razorqt/razorsettings.h>
  19
+
  20
+LoginForm::LoginForm(QWidget *parent) : QWidget(parent), ui(new Ui::LoginForm)
  21
+{
  22
+    if (! m_Greeter.connectSync())
  23
+    {
  24
+        close();
  25
+    }
  26
+
  27
+    ui->setupUi(this);
  28
+    setStyleSheet(razorTheme->qss("razor-lightdm-greeter/razor-lightdm-greeter"));
  29
+    ui->hostnameLabel->setFocus();
  30
+
  31
+    // Setup users
  32
+    QLightDM::UsersModel *model = QLightDM::users();
  33
+    QStringList userIds;
  34
+    for (int i = 0; i < model->rowCount(QModelIndex()); i++)
  35
+    {
  36
+        QModelIndex index = model->index(i);
  37
+        QString userId =  model->data(index, Qt::UserRole).toString();
  38
+        userIds << userId;
  39
+    }
  40
+    QCompleter *completer = new QCompleter(userIds);
  41
+    completer->setCompletionMode(QCompleter::InlineCompletion);
  42
+    ui->userIdInput->setCompleter(completer);
  43
+
  44
+
  45
+    // Setup sessions
  46
+    ui->sessionCombo->setModel(QLightDM::sessions());
  47
+    for (int row = 0; row < ui->sessionCombo->model()->rowCount(); row++)
  48
+    {
  49
+        QModelIndex index = ui->sessionCombo->model()->index(row, 0);
  50
+        if (QString("Razor Desktop") ==  ui->sessionCombo->model()->data(index, Qt::DisplayRole).toString())
  51
+        {
  52
+            ui->sessionCombo->setCurrentIndex(row);
  53
+            break;
  54
+        }
  55
+    }
  56
+
  57
+    QPixmap icon(QString(SHARE_DIR) + "/graphics/rqt-2.svg");
  58
+    ui->iconLabel->setPixmap(icon.scaled(ui->iconLabel->size()));
  59
+
  60
+    ui->hostnameLabel->setText(QLightDM::hostname());
  61
+
  62
+    connect(ui->loginButton, SIGNAL(clicked()), SLOT(doLogin()));
  63
+    connect(ui->cancelButton, SIGNAL(clicked()), SLOT(doCancel()));
  64
+    connect(&m_Greeter, SIGNAL(showPrompt(QString,QLightDM::PromptType)), this, SLOT(onPrompt(QString,QLightDM::PromptType)));
  65
+    connect(&m_Greeter, SIGNAL(authenticationComplete()), this, SLOT(authenticationDone()));
  66
+
  67
+
  68
+    connect(ui->leaveButton, SIGNAL(clicked()), SLOT(doLeave()));
  69
+    connect(&m_razorPowerProcess, SIGNAL(finished(int)), this, SLOT(razorPowerDone()));
  70
+}
  71
+
  72
+
  73
+
  74
+
  75
+LoginForm::~LoginForm()
  76
+{
  77
+    delete ui;
  78
+}
  79
+
  80
+void LoginForm::doLogin()
  81
+{
  82
+    m_Greeter.authenticate(ui->userIdInput->text());
  83
+}
  84
+
  85
+void LoginForm::onPrompt(QString prompt, QLightDM::PromptType promptType)
  86
+{
  87
+    // We only handle password prompt
  88
+    m_Greeter.respond(ui->passwordInput->text());
  89
+}
  90
+
  91
+void LoginForm::authenticationDone()
  92
+{
  93
+    if (m_Greeter.isAuthenticated()) {
  94
+        QString session = ui->sessionCombo->itemData(ui->sessionCombo->currentIndex(), QLightDM::SessionsModel::IdRole).toString();
  95
+        m_Greeter.startSessionSync(session);
  96
+    }
  97
+    else {
  98
+        doCancel();
  99
+    }
  100
+}
  101
+
  102
+
  103
+void LoginForm::doCancel()
  104
+{
  105
+    ui->userIdInput->setText("");
  106
+    ui->passwordInput->setText("");
  107
+}
  108
+
  109
+void LoginForm::doLeave()
  110
+{
  111
+    m_razorPowerProcess.start("razor-power");
  112
+    setEnabled(false);
  113
+}
  114
+
  115
+void LoginForm::razorPowerDone() {
  116
+    setEnabled(true);
  117
+}
36  razorqt-lightdm-greeter/loginform.h
... ...
@@ -0,0 +1,36 @@
  1
+#ifndef LOGINFORM_H
  2
+#define LOGINFORM_H
  3
+
  4
+#include <QWidget>
  5
+#include <QLightDM/Greeter>
  6
+#include <QProcess>
  7
+
  8
+namespace Ui {
  9
+class LoginForm;
  10
+}
  11
+
  12
+class LoginForm : public QWidget
  13
+{
  14
+    Q_OBJECT
  15
+
  16
+public:
  17
+    explicit LoginForm(QWidget *parent = 0);
  18
+    ~LoginForm();
  19
+
  20
+public slots:
  21
+    void doLogin();
  22
+    void doCancel();
  23
+    void doLeave();
  24
+    void razorPowerDone();
  25
+    void onPrompt(QString prompt, QLightDM::PromptType promptType);
  26
+    void authenticationDone();
  27
+
  28
+private:
  29
+    Ui::LoginForm *ui;
  30
+
  31
+    QLightDM::Greeter m_Greeter;
  32
+
  33
+    QProcess m_razorPowerProcess;
  34
+};
  35
+
  36
+#endif // LOGINFORM_H
224  razorqt-lightdm-greeter/loginform.ui
... ...
@@ -0,0 +1,224 @@
  1
+<?xml version="1.0" encoding="UTF-8"?>
  2
+<ui version="4.0">
  3
+ <class>LoginForm</class>
  4
+ <widget class="QWidget" name="LoginForm">
  5
+  <property name="windowModality">
  6
+   <enum>Qt::NonModal</enum>
  7
+  </property>
  8
+  <property name="enabled">
  9
+   <bool>true</bool>
  10
+  </property>
  11
+  <property name="geometry">
  12
+   <rect>
  13
+    <x>0</x>
  14
+    <y>0</y>
  15
+    <width>520</width>
  16
+    <height>290</height>
  17
+   </rect>
  18
+  </property>
  19
+  <property name="font">
  20
+   <font>
  21
+    <pointsize>20</pointsize>
  22
+   </font>
  23
+  </property>
  24
+  <property name="windowTitle">
  25
+   <string>Dialog</string>
  26
+  </property>
  27
+  <property name="windowOpacity">
  28
+   <double>0.200000000000000</double>
  29
+  </property>
  30
+  <widget class="QLabel" name="hostnameLabel">
  31
+   <property name="geometry">
  32
+    <rect>
  33
+     <x>300</x>
  34
+     <y>0</y>
  35
+     <width>210</width>
  36
+     <height>60</height>
  37
+    </rect>
  38
+   </property>
  39
+   <property name="font">
  40
+    <font>
  41
+     <pointsize>30</pointsize>
  42
+     <weight>50</weight>
  43
+     <italic>false</italic>
  44
+     <bold>false</bold>
  45
+     <underline>false</underline>
  46
+     <strikeout>false</strikeout>
  47
+     <stylestrategy>PreferAntialias</stylestrategy>
  48
+    </font>
  49
+   </property>
  50
+   <property name="styleSheet">
  51
+    <string notr="true"/>
  52
+   </property>
  53
+   <property name="text">
  54
+    <string>chr-pc</string>
  55
+   </property>
  56
+   <property name="alignment">
  57
+    <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
  58
+   </property>
  59
+  </widget>
  60
+  <widget class="QLineEdit" name="userIdInput">
  61
+   <property name="geometry">
  62
+    <rect>
  63
+     <x>300</x>
  64
+     <y>80</y>
  65
+     <width>210</width>
  66
+     <height>40</height>
  67
+    </rect>
  68
+   </property>
  69
+   <property name="font">
  70
+    <font>
  71
+     <pointsize>12</pointsize>
  72
+    </font>
  73
+   </property>
  74
+   <property name="frame">
  75
+    <bool>false</bool>
  76
+   </property>
  77
+   <property name="placeholderText">
  78
+    <string>userid</string>
  79
+   </property>
  80
+  </widget>
  81
+  <widget class="QLineEdit" name="passwordInput">
  82
+   <property name="geometry">
  83
+    <rect>
  84
+     <x>300</x>
  85
+     <y>130</y>
  86
+     <width>210</width>
  87
+     <height>40</height>
  88
+    </rect>
  89
+   </property>
  90
+   <property name="font">
  91
+    <font>
  92
+     <pointsize>12</pointsize>
  93
+    </font>
  94
+   </property>
  95
+   <property name="text">
  96
+    <string/>
  97
+   </property>
  98
+   <property name="frame">
  99
+    <bool>false</bool>
  100
+   </property>
  101
+   <property name="echoMode">
  102
+    <enum>QLineEdit::Password</enum>
  103
+   </property>
  104
+   <property name="placeholderText">
  105
+    <string comment="hejsa" extracomment="Password her">password</string>
  106
+   </property>
  107
+  </widget>
  108
+  <widget class="QPushButton" name="loginButton">
  109
+   <property name="geometry">
  110
+    <rect>
  111
+     <x>300</x>
  112
+     <y>180</y>
  113
+     <width>100</width>
  114
+     <height>40</height>
  115
+    </rect>
  116
+   </property>
  117
+   <property name="font">
  118
+    <font>
  119
+     <pointsize>12</pointsize>
  120
+    </font>
  121
+   </property>
  122
+   <property name="styleSheet">
  123
+    <string notr="true"/>
  124
+   </property>
  125
+   <property name="text">
  126
+    <string>Login</string>
  127
+   </property>
  128
+   <property name="autoDefault">
  129
+    <bool>false</bool>
  130
+   </property>
  131
+   <property name="default">
  132
+    <bool>true</bool>
  133
+   </property>
  134
+   <property name="flat">
  135
+    <bool>false</bool>
  136
+   </property>
  137
+  </widget>
  138
+  <widget class="QPushButton" name="cancelButton">
  139
+   <property name="geometry">
  140
+    <rect>
  141
+     <x>410</x>
  142
+     <y>180</y>
  143
+     <width>100</width>
  144
+     <height>40</height>
  145
+    </rect>
  146
+   </property>
  147
+   <property name="font">
  148
+    <font>
  149
+     <pointsize>12</pointsize>
  150
+    </font>
  151
+   </property>
  152
+   <property name="text">
  153
+    <string>Cancel</string>
  154
+   </property>
  155
+   <property name="autoDefault">
  156
+    <bool>false</bool>
  157
+   </property>
  158
+  </widget>
  159
+  <widget class="QLabel" name="iconLabel">
  160
+   <property name="geometry">
  161
+    <rect>
  162
+     <x>0</x>
  163
+     <y>17</y>
  164
+     <width>280</width>
  165
+     <height>270</height>
  166
+    </rect>
  167
+   </property>
  168
+   <property name="text">
  169
+    <string>Razor Icon</string>
  170
+   </property>
  171
+   <property name="alignment">
  172
+    <set>Qt::AlignCenter</set>
  173
+   </property>
  174
+  </widget>
  175
+  <widget class="QComboBox" name="sessionCombo">
  176
+   <property name="geometry">
  177
+    <rect>
  178
+     <x>300</x>
  179
+     <y>230</y>
  180
+     <width>160</width>
  181
+     <height>40</height>
  182
+    </rect>
  183
+   </property>
  184
+   <property name="font">
  185
+    <font>
  186
+     <pointsize>12</pointsize>
  187
+    </font>
  188
+   </property>
  189
+   <property name="frame">
  190
+    <bool>false</bool>
  191
+   </property>
  192
+   <item>
  193
+    <property name="text">
  194
+     <string>Razor</string>
  195
+    </property>
  196
+   </item>
  197
+   <item>
  198
+    <property name="text">
  199
+     <string>Gnome</string>
  200
+    </property>
  201
+   </item>
  202
+   <item>
  203
+    <property name="text">
  204
+     <string>Kde</string>
  205
+    </property>
  206
+   </item>
  207
+  </widget>
  208
+  <widget class="QPushButton" name="leaveButton">
  209
+   <property name="geometry">
  210
+    <rect>
  211
+     <x>470</x>
  212
+     <y>230</y>
  213
+     <width>40</width>
  214
+     <height>40</height>
  215
+    </rect>
  216
+   </property>
  217
+   <property name="text">
  218
+    <string/>
  219
+   </property>
  220
+  </widget>
  221
+ </widget>
  222
+ <resources/>
  223
+ <connections/>
  224
+</ui>
12  razorqt-lightdm-greeter/main.cpp
... ...
@@ -0,0 +1,12 @@
  1
+#include <QtGui/QApplication>
  2
+#include "mainwindow.h"
  3
+
  4
+int main(int argc, char *argv[])
  5
+{
  6
+    QApplication a(argc, argv);
  7
+    MainWindow w;
  8
+    w.show();
  9
+
  10
+
  11
+    return a.exec();
  12
+}
31  razorqt-lightdm-greeter/mainwindow.cpp
... ...
@@ -0,0 +1,31 @@
  1
+#include <QRect>
  2
+#include <QApplication>
  3
+#include <QDesktopWidget>
  4
+#include <QPalette>
  5
+#include "mainwindow.h"
  6
+#include "loginform.h"
  7
+
  8
+MainWindow::MainWindow(QWidget *parent) : QWidget(parent) {
  9
+    QRect screen = QApplication::desktop()->rect();
  10
+    setGeometry(screen);
  11
+    QImage image(QString(SHARE_DIR) + "/themes/light/simple_blue_widescreen.png");
  12
+
  13
+    QPalette palette;
  14
+    palette.setBrush(this->backgroundRole(), QBrush(image.scaled(screen.width(), screen.right())));
  15
+    this->setPalette(palette);
  16
+
  17
+
  18
+    LoginForm *loginForm = new LoginForm(this);
  19
+    int offsetX = 2*screen.width()/5 - loginForm->width()/2;
  20
+    if (offsetX < 40)
  21
+    {
  22
+        offsetX = 40;
  23
+    }
  24
+    int offsetY = screen.height()/2 - loginForm->height()/2;
  25
+        loginForm->move(offsetX, offsetY);
  26
+    loginForm->show();
  27
+}
  28
+
  29
+MainWindow::~MainWindow()
  30
+{
  31
+}
23  razorqt-lightdm-greeter/mainwindow.h
... ...
@@ -0,0 +1,23 @@
  1
+#ifndef MAINWINDOW_H
  2
+#define MAINWINDOW_H
  3
+
  4
+#include <QWidget>
  5
+#include <QLightDM/Greeter>
  6
+
  7
+namespace Ui {
  8
+    class MainWindow;
  9
+}
  10
+
  11
+class MainWindow : public QWidget
  12
+{
  13
+    Q_OBJECT
  14
+
  15
+public:
  16
+    explicit MainWindow(QWidget *parent = 0);
  17
+    ~MainWindow();
  18
+
  19
+
  20
+
  21
+};
  22
+
  23
+#endif // MAINWINDOW_H
6  razorqt-lightdm-greeter/resources/lightdm-razor-greeter.desktop
... ...
@@ -0,0 +1,6 @@
  1
+[Desktop Entry]
  2
+Name=Razor LightDM Greeter
  3
+Comment=This runs the Razor LightDM greeter, it should only be run from LightDM
  4
+Exec=razor-lightdm-greeter
  5
+Type=Application
  6
+X-Ubuntu-Gettext-Domain=lightdm
6  razorqt-lightdm-greeter/test/lightdm-razor-greeter.desktop
... ...
@@ -0,0 +1,6 @@
  1
+[Desktop Entry]
  2
+Name=Razor LightDM Greeter
  3
+Comment=This runs the Razor LightDM greeter, it should only be run from LightDM
  4
+Exec=${CMAKE_CURRENT_BINARY_DIR}/razor-lightdm-greeter
  5
+Type=Application
  6
+X-Ubuntu-Gettext-Domain=lightdm
3  razorqt-lightdm-greeter/test/lightdm.conf
... ...
@@ -0,0 +1,3 @@
  1
+[SeatDefaults]
  2
+greeter-session=lightdm-razor-greeter
  3
+xgreeters-dir=${CMAKE_CURRENT_BINARY_DIR}/razor-lightdm-greeter/test
3  razorqt-lightdm-greeter/test/test.sh
... ...
@@ -0,0 +1,3 @@
  1
+#!/bin/sh
  2
+# Runs lightdm with razor-lightdm-greeter in Xephyr. You must have Xephyr installed to run this
  3
+lightdm --test-mode --debug --config=${CMAKE_CURRENT_BINARY_DIR}/test/lightdm.conf
6,397  razorqt-resources/graphics/rqt-2.svg
6397 additions, 0 deletions not shown
80  razorqt-resources/themes/a-mego/razor-lightdm-greeter/leaveIcon.svg
... ...
@@ -0,0 +1,80 @@
  1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
  3
+
  4
+<svg
  5
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
  6
+   xmlns:cc="http://creativecommons.org/ns#"
  7
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  8
+   xmlns:svg="http://www.w3.org/2000/svg"
  9
+   xmlns="http://www.w3.org/2000/svg"
  10
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
  11
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
  12
+   width="431.43829"
  13
+   height="532.50232"
  14
+   id="svg2"
  15
+   version="1.1"
  16
+   inkscape:version="0.48.2 r9819"
  17
+   sodipodi:docname="leaveIcon.svg">
  18
+  <defs
  19
+     id="defs4" />
  20
+  <sodipodi:namedview
  21
+     id="base"
  22
+     pagecolor="#ffffff"
  23
+     bordercolor="#666666"
  24
+     borderopacity="1.0"
  25
+     inkscape:pageopacity="0.0"
  26
+     inkscape:pageshadow="2"
  27
+     inkscape:zoom="0.35"
  28
+     inkscape:cx="185.42227"
  29
+     inkscape:cy="26.36626"
  30
+     inkscape:document-units="px"
  31
+     inkscape:current-layer="layer1"
  32
+     showgrid="false"
  33
+     inkscape:window-width="839"
  34
+     inkscape:window-height="613"
  35
+     inkscape:window-x="244"
  36
+     inkscape:window-y="19"
  37
+     inkscape:window-maximized="0"
  38
+     inkscape:snap-bbox="true"
  39
+     fit-margin-top="0"
  40
+     fit-margin-left="0"
  41
+     fit-margin-right="0"
  42
+     fit-margin-bottom="0"
  43
+     inkscape:snap-global="true" />
  44
+  <metadata
  45
+     id="metadata7">
  46
+    <rdf:RDF>
  47
+      <cc:Work
  48
+         rdf:about="">
  49
+        <dc:format>image/svg+xml</dc:format>
  50
+        <dc:type
  51
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
  52
+        <dc:title />
  53
+      </cc:Work>
  54
+    </rdf:RDF>
  55
+  </metadata>
  56
+  <g
  57
+     inkscape:label="Layer 1"
  58
+     inkscape:groupmode="layer"
  59
+     id="layer1"
  60
+     transform="translate(500.42227,98.378186)">
  61
+    <path
  62
+       sodipodi:type="arc"
  63
+       style="fill:none;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
  64
+       id="path3790"
  65
+       sodipodi:cx="-502.85715"
  66
+       sodipodi:cy="-43.722664"
  67
+       sodipodi:rx="185.71428"
  68
+       sodipodi:ry="191.42857"
  69
+       d="m -375.3972,-182.9481 c 74.59679,72.56016 78.00369,193.715142 7.6095,270.607229 -70.39418,76.892091 -187.93259,80.403811 -262.52939,7.843647 -74.5968,-72.56016 -78.00369,-193.715145 -7.60951,-270.607236 4.24803,-4.64015 8.71844,-9.05849 13.39451,-13.23849"
  70
+       transform="translate(218.15625,256.81194)"
  71
+       sodipodi:start="5.4688099"
  72
+       sodipodi:end="10.281163"
  73
+       sodipodi:open="true" />
  74
+    <path
  75
+       style="fill:none;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
  76
+       d="m -283.84375,-67.95406 c 0,219.22952 0,219.22952 0,219.22952"
  77
+       id="path3792"
  78
+       inkscape:connector-curvature="0" />
  79
+  </g>
  80
+</svg>
15  razorqt-resources/themes/a-mego/razor-lightdm-greeter/razor-lightdm-greeter.qss
... ...
@@ -0,0 +1,15 @@
  1
+QWidget {
  2
+    border-radius: 5px;
  3
+}
  4
+
  5
+QComboBox,
  6
+QPushButton {
  7
+    border: 1px solid silver;
  8
+    background-color: rgb(200, 200, 200);
  9
+}
  10
+
  11
+
  12
+#leaveButton {
  13
+    qproperty-iconSize: 25px;
  14
+    qproperty-icon: url(leaveIcon.svg);
  15
+}
80  razorqt-resources/themes/ambiance/razor-lightdm-greeter/leaveIcon.svg
... ...
@@ -0,0 +1,80 @@
  1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
  3
+
  4
+<svg
  5
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
  6
+   xmlns:cc="http://creativecommons.org/ns#"
  7
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  8
+   xmlns:svg="http://www.w3.org/2000/svg"
  9
+   xmlns="http://www.w3.org/2000/svg"
  10
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
  11
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
  12
+   width="431.43829"
  13
+   height="532.50232"
  14
+   id="svg2"
  15
+   version="1.1"
  16
+   inkscape:version="0.48.2 r9819"
  17
+   sodipodi:docname="leaveIcon.svg">
  18
+  <defs
  19
+     id="defs4" />
  20
+  <sodipodi:namedview
  21
+     id="base"
  22
+     pagecolor="#ffffff"
  23
+     bordercolor="#666666"
  24
+     borderopacity="1.0"
  25
+     inkscape:pageopacity="0.0"
  26
+     inkscape:pageshadow="2"
  27
+     inkscape:zoom="0.35"
  28
+     inkscape:cx="185.42227"
  29
+     inkscape:cy="26.36626"
  30
+     inkscape:document-units="px"
  31
+     inkscape:current-layer="layer1"
  32
+     showgrid="false"
  33
+     inkscape:window-width="839"
  34
+     inkscape:window-height="613"
  35
+     inkscape:window-x="244"
  36
+     inkscape:window-y="19"
  37
+     inkscape:window-maximized="0"
  38
+     inkscape:snap-bbox="true"
  39
+     fit-margin-top="0"
  40
+     fit-margin-left="0"
  41
+     fit-margin-right="0"
  42
+     fit-margin-bottom="0"
  43
+     inkscape:snap-global="true" />
  44
+  <metadata
  45
+     id="metadata7">
  46
+    <rdf:RDF>
  47
+      <cc:Work
  48
+         rdf:about="">
  49
+        <dc:format>image/svg+xml</dc:format>
  50
+        <dc:type
  51
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
  52
+        <dc:title />
  53
+      </cc:Work>
  54
+    </rdf:RDF>
  55
+  </metadata>
  56
+  <g
  57
+     inkscape:label="Layer 1"
  58
+     inkscape:groupmode="layer"
  59
+     id="layer1"
  60
+     transform="translate(500.42227,98.378186)">
  61
+    <path
  62
+       sodipodi:type="arc"
  63
+       style="fill:none;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
  64
+       id="path3790"
  65
+       sodipodi:cx="-502.85715"
  66
+       sodipodi:cy="-43.722664"
  67
+       sodipodi:rx="185.71428"
  68
+       sodipodi:ry="191.42857"
  69
+       d="m -375.3972,-182.9481 c 74.59679,72.56016 78.00369,193.715142 7.6095,270.607229 -70.39418,76.892091 -187.93259,80.403811 -262.52939,7.843647 -74.5968,-72.56016 -78.00369,-193.715145 -7.60951,-270.607236 4.24803,-4.64015 8.71844,-9.05849 13.39451,-13.23849"
  70
+       transform="translate(218.15625,256.81194)"
  71
+       sodipodi:start="5.4688099"
  72
+       sodipodi:end="10.281163"
  73
+       sodipodi:open="true" />
  74
+    <path
  75
+       style="fill:none;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
  76
+       d="m -283.84375,-67.95406 c 0,219.22952 0,219.22952 0,219.22952"
  77
+       id="path3792"
  78
+       inkscape:connector-curvature="0" />
  79
+  </g>
  80
+</svg>
15  razorqt-resources/themes/ambiance/razor-lightdm-greeter/razor-lightdm-greeter.qss
... ...
@@ -0,0 +1,15 @@
  1
+QWidget {
  2
+    border-radius: 5px;
  3
+}
  4
+
  5
+QComboBox,
  6
+QPushButton {
  7
+    border: 1px solid silver;
  8
+    background-color: rgb(200, 200, 200);
  9
+}
  10
+
  11
+
  12
+#leaveButton {
  13
+    qproperty-iconSize: 25px;
  14
+    qproperty-icon: url(leaveIcon.svg);
  15
+}
80  razorqt-resources/themes/green/razor-lightdm-greeter/leaveIcon.svg
... ...
@@ -0,0 +1,80 @@
  1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
  3
+
  4
+<svg
  5
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
  6
+   xmlns:cc="http://creativecommons.org/ns#"
  7
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  8
+   xmlns:svg="http://www.w3.org/2000/svg"
  9
+   xmlns="http://www.w3.org/2000/svg"
  10
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
  11
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
  12
+   width="431.43829"
  13
+   height="532.50232"
  14
+   id="svg2"
  15
+   version="1.1"
  16
+   inkscape:version="0.48.2 r9819"
  17
+   sodipodi:docname="leaveIcon.svg">
  18
+  <defs
  19
+     id="defs4" />
  20
+  <sodipodi:namedview
  21
+     id="base"
  22
+     pagecolor="#ffffff"
  23
+     bordercolor="#666666"
  24
+     borderopacity="1.0"
  25
+     inkscape:pageopacity="0.0"
  26
+     inkscape:pageshadow="2"
  27
+     inkscape:zoom="0.35"
  28
+     inkscape:cx="185.42227"
  29
+     inkscape:cy="26.36626"
  30
+     inkscape:document-units="px"
  31
+     inkscape:current-layer="layer1"
  32
+     showgrid="false"
  33
+     inkscape:window-width="839"
  34
+     inkscape:window-height="613"
  35
+     inkscape:window-x="244"
  36
+     inkscape:window-y="19"
  37
+     inkscape:window-maximized="0"
  38
+     inkscape:snap-bbox="true"
  39
+     fit-margin-top="0"
  40
+     fit-margin-left="0"
  41
+     fit-margin-right="0"
  42
+     fit-margin-bottom="0"
  43
+     inkscape:snap-global="true" />
  44
+  <metadata
  45
+     id="metadata7">
  46
+    <rdf:RDF>
  47
+      <cc:Work
  48
+         rdf:about="">
  49
+        <dc:format>image/svg+xml</dc:format>
  50
+        <dc:type
  51
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
  52
+        <dc:title />
  53
+      </cc:Work>
  54
+    </rdf:RDF>
  55
+  </metadata>
  56
+  <g
  57
+     inkscape:label="Layer 1"
  58
+     inkscape:groupmode="layer"
  59
+     id="layer1"
  60
+     transform="translate(500.42227,98.378186)">
  61
+    <path
  62
+       sodipodi:type="arc"
  63
+       style="fill:none;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
  64
+       id="path3790"
  65
+       sodipodi:cx="-502.85715"
  66
+       sodipodi:cy="-43.722664"
  67
+       sodipodi:rx="185.71428"
  68
+       sodipodi:ry="191.42857"
  69
+       d="m -375.3972,-182.9481 c 74.59679,72.56016 78.00369,193.715142 7.6095,270.607229 -70.39418,76.892091 -187.93259,80.403811 -262.52939,7.843647 -74.5968,-72.56016 -78.00369,-193.715145 -7.60951,-270.607236 4.24803,-4.64015 8.71844,-9.05849 13.39451,-13.23849"
  70
+       transform="translate(218.15625,256.81194)"
  71
+       sodipodi:start="5.4688099"
  72
+       sodipodi:end="10.281163"
  73
+       sodipodi:open="true" />
  74
+    <path
  75
+       style="fill:none;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
  76
+       d="m -283.84375,-67.95406 c 0,219.22952 0,219.22952 0,219.22952"
  77
+       id="path3792"
  78
+       inkscape:connector-curvature="0" />
  79
+  </g>
  80
+</svg>
15  razorqt-resources/themes/green/razor-lightdm-greeter/razor-lightdm-greeter.qss
... ...
@@ -0,0 +1,15 @@
  1
+QWidget {
  2
+    border-radius: 5px;
  3
+}
  4
+
  5
+QComboBox,
  6
+QPushButton {
  7
+    border: 1px solid silver;
  8
+    background-color: rgb(200, 200, 200);
  9
+}
  10
+
  11
+
  12
+#leaveButton {
  13
+    qproperty-iconSize: 25px;
  14
+    qproperty-icon: url(leaveIcon.svg);
  15
+}
80  razorqt-resources/themes/light/razor-lightdm-greeter/leaveIcon.svg
... ...
@@ -0,0 +1,80 @@
  1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
  3
+
  4
+<svg
  5
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
  6
+   xmlns:cc="http://creativecommons.org/ns#"
  7
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  8
+   xmlns:svg="http://www.w3.org/2000/svg"
  9
+   xmlns="http://www.w3.org/2000/svg"
  10
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
  11
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
  12
+   width="431.43829"
  13
+   height="532.50232"
  14
+   id="svg2"
  15
+   version="1.1"
  16
+   inkscape:version="0.48.2 r9819"
  17
+   sodipodi:docname="leaveIcon.svg">
  18
+  <defs
  19
+     id="defs4" />
  20
+  <sodipodi:namedview
  21
+     id="base"
  22
+     pagecolor="#ffffff"
  23
+     bordercolor="#666666"
  24
+     borderopacity="1.0"
  25
+     inkscape:pageopacity="0.0"
  26
+     inkscape:pageshadow="2"
  27
+     inkscape:zoom="0.35"
  28
+     inkscape:cx="185.42227"
  29
+     inkscape:cy="26.36626"
  30
+     inkscape:document-units="px"
  31
+     inkscape:current-layer="layer1"
  32
+     showgrid="false"
  33
+     inkscape:window-width="839"
  34
+     inkscape:window-height="613"
  35
+     inkscape:window-x="244"
  36
+     inkscape:window-y="19"
  37
+     inkscape:window-maximized="0"
  38
+     inkscape:snap-bbox="true"
  39
+     fit-margin-top="0"
  40
+     fit-margin-left="0"
  41
+     fit-margin-right="0"
  42
+     fit-margin-bottom="0"
  43
+     inkscape:snap-global="true" />
  44
+  <metadata
  45
+     id="metadata7">
  46
+    <rdf:RDF>
  47
+      <cc:Work
  48
+         rdf:about="">
  49
+        <dc:format>image/svg+xml</dc:format>
  50
+        <dc:type
  51
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
  52
+        <dc:title />
  53
+      </cc:Work>
  54
+    </rdf:RDF>
  55
+  </metadata>
  56
+  <g
  57
+     inkscape:label="Layer 1"
  58
+     inkscape:groupmode="layer"
  59
+     id="layer1"
  60
+     transform="translate(500.42227,98.378186)">
  61
+    <path
  62
+       sodipodi:type="arc"
  63
+       style="fill:none;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
  64
+       id="path3790"
  65
+       sodipodi:cx="-502.85715"
  66
+       sodipodi:cy="-43.722664"
  67
+       sodipodi:rx="185.71428"
  68
+       sodipodi:ry="191.42857"
  69
+       d="m -375.3972,-182.9481 c 74.59679,72.56016 78.00369,193.715142 7.6095,270.607229 -70.39418,76.892091 -187.93259,80.403811 -262.52939,7.843647 -74.5968,-72.56016 -78.00369,-193.715145 -7.60951,-270.607236 4.24803,-4.64015 8.71844,-9.05849 13.39451,-13.23849"
  70
+       transform="translate(218.15625,256.81194)"
  71
+       sodipodi:start="5.4688099"
  72
+       sodipodi:end="10.281163"
  73
+       sodipodi:open="true" />
  74
+    <path
  75
+       style="fill:none;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
  76
+       d="m -283.84375,-67.95406 c 0,219.22952 0,219.22952 0,219.22952"
  77
+       id="path3792"
  78
+       inkscape:connector-curvature="0" />
  79
+  </g>
  80
+</svg>
15  razorqt-resources/themes/light/razor-lightdm-greeter/razor-lightdm-greeter.qss
... ...
@@ -0,0 +1,15 @@
  1
+QWidget {
  2
+    border-radius: 5px;
  3
+}
  4
+
  5
+QComboBox,
  6
+QPushButton {
  7
+    border: 1px solid silver;
  8
+    background-color: rgb(200, 200, 200);
  9
+}
  10
+
  11
+
  12
+#leaveButton {
  13
+    qproperty-iconSize: 25px;
  14
+    qproperty-icon: url(leaveIcon.svg);
  15
+}

0 notes on commit 922f71a

Please sign in to comment.
Something went wrong with that request. Please try again.