Merge lp:~josharenson/unity8/slim_greeter_real_lightdm into lp:unity8

Proposed by Josh Arenson on 2015-06-30
Status: Superseded
Proposed branch: lp:~josharenson/unity8/slim_greeter_real_lightdm
Merge into: lp:unity8
Prerequisite: lp:~dandrader/unity8/fixOrientedShellTests
Diff against target: 2031 lines (+1192/-101)
48 files modified
CMakeLists.txt (+1/-0)
data/CMakeLists.txt (+6/-0)
data/lightdm-unity8-greeter.desktop.in (+9/-0)
debian/control (+3/-1)
debian/unity8-private.install (+2/-1)
debian/unity8.install (+1/-0)
plugins/CMakeLists.txt (+2/-1)
plugins/FullLightDM/CMakeLists.txt (+36/-0)
plugins/FullLightDM/DBusGreeter.cpp (+49/-0)
plugins/FullLightDM/DBusGreeter.h (+52/-0)
plugins/FullLightDM/DBusGreeterList.cpp (+56/-0)
plugins/FullLightDM/DBusGreeterList.h (+57/-0)
plugins/FullLightDM/FullLightDM.qmltypes (+251/-0)
plugins/FullLightDM/Greeter.cpp (+139/-0)
plugins/FullLightDM/Greeter.h (+82/-0)
plugins/FullLightDM/GreeterPrivate.h (+39/-0)
plugins/FullLightDM/UsersModel.cpp (+70/-0)
plugins/FullLightDM/UsersModel.h (+37/-0)
plugins/FullLightDM/plugin.cpp (+69/-0)
plugins/FullLightDM/plugin.h (+33/-0)
plugins/FullLightDM/qmldir (+3/-0)
plugins/IntegratedLightDM/CMakeLists.txt (+5/-10)
plugins/IntegratedLightDM/plugin.cpp (+3/-5)
plugins/IntegratedLightDM/plugin.h (+5/-7)
plugins/IntegratedLightDM/qmldir (+3/-3)
qml/Components/Dialogs.qml (+3/-2)
qml/Greeter/FullLightDMImpl.qml (+28/-0)
qml/Greeter/Greeter.qml (+24/-24)
qml/Greeter/IntegratedLightDMImpl.qml (+28/-0)
qml/Greeter/LightDM.qml (+42/-0)
qml/Shell.qml (+4/-4)
qml/Wizard/Wizard.qml (+1/-1)
src/main.cpp (+9/-1)
tests/mocks/CMakeLists.txt (+1/-1)
tests/mocks/IntegratedLightDM/CMakeLists.txt (+6/-6)
tests/mocks/IntegratedLightDM/IntegratedLightDM.qmltypes (+6/-8)
tests/mocks/IntegratedLightDM/plugin.cpp (+3/-3)
tests/mocks/IntegratedLightDM/plugin.h (+2/-2)
tests/mocks/IntegratedLightDM/qmldir (+2/-2)
tests/plugins/CMakeLists.txt (+1/-1)
tests/plugins/IntegratedLightDM/CMakeLists.txt (+11/-11)
tests/qmltests/Greeter/tst_Greeter.qml (+1/-1)
tests/qmltests/Greeter/tst_Infographics.qml (+1/-1)
tests/qmltests/Greeter/tst_NarrowView.qml (+1/-1)
tests/qmltests/Greeter/tst_WideView.qml (+1/-1)
tests/qmltests/Tutorial/tst_Tutorial.qml (+2/-1)
tests/qmltests/tst_Shell.qml (+1/-1)
tests/qmltests/tst_ShellWithPin.qml (+1/-1)
To merge this branch: bzr merge lp:~josharenson/unity8/slim_greeter_real_lightdm
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Needs Fixing on 2015-07-08
Lukáš Tinkl (community) Needs Fixing on 2015-07-07
Mirco Müller (community) code-review 2015-07-03 Needs Fixing on 2015-07-06
Michael Terry 2015-06-30 Pending
Review via email: mp+263416@code.launchpad.net

This proposal has been superseded by a proposal from 2015-07-08.

Commit Message

Enable unity8 greeter mode to use real liblightdm and act as a basic desktop greeter

Description of the Change

* Are there any related MPs required for this MP to build/function as expected? Please list.
Yes:
lp:~dandrader/unity8/fixOrientedShellTests
lp:~josharenson/unity8/integrated_lightdm_refactor

 * Did you perform an exploratory manual test run of your code change and any related functionality?
Yes

 * If you changed the packaging (debian), did you subscribe the ubuntu-unity team to this MP?
Yes

Added Build-Deps
liblightdm-gobject-1-dev
liblightdm-qt5-3-dev

To post a comment you must log in.
1825. By Josh Arenson <josh@blackbox> on 2015-06-30

Fix whitespace

Michael Terry (mterry) :
1826. By Josh Arenson <josh@blackbox> on 2015-07-01

Change greeter install directory

Albert Astals Cid (aacid) wrote :

You have bad tags

Mirco Müller (macslow) wrote :

See inline comments.

review: Needs Fixing (code-review)
Lukáš Tinkl (lukas-kde) wrote :

See comments

review: Needs Fixing
1827. By Josh Arenson <josh@blackbox> on 2015-07-07

[ Albert Astals Cid ]
* Save screenshots of suspended apps to disk
* Set width of title label when inside the title row (LP: #1461979)
* qmluitests was renamed to uitests
[ CI Train Bot ]
* Resync trunk.
[ Daniel d'Andrada ]
* Fix tst_OrientedShell and tst_Tutorial (LP: #1469761, #1466947)
[ Leo Arias ]
* Reorganized the python test helper modules. Deprecated the
  unity8.shell.emulators namespace. (LP: #1306340)
[ Leonardo Arias Fonseca ]
* Reorganized the python test helper modules. Deprecated the
  unity8.shell.emulators namespace. (LP: #1306340)
[ Lukáš Tinkl ]
* fix PO files extraction
[ Michael Zanetti ]
* Make use of QInputDeviceInfo in order to automatically switch
  between usage modes and hide the OSK.
[ Nick Dedekind ]
* Fixed qtmultimedia mock which was generating errors in tests
[ Richard Huddie ]
* Reorganized the python test helper modules. Deprecated the
  unity8.shell.emulators namespace. (LP: #1306340)
* Implement full-shell rotation (LP: #1210199)

1828. By Josh Arenson <josh@blackbox> on 2015-07-07

Remove return statements from void functions

1829. By Josh Arenson <josh@blackbox> on 2015-07-07

Remove commented-out #include

1830. By Josh Arenson <josh@blackbox> on 2015-07-08

Update connect statements to Qt5 syntax

Josh Arenson (josharenson) wrote :

I haven't updated GreeterPrivate to Qt5 syntax yet because its not listed in CMakeLists.txt (it isn't in trunk either) and it doesn't seem to be getting compiled. I want to investigate this before I change anything else.

1831. By Josh Arenson on 2015-07-08

Remove GreeterPrivate.cpp as it isn't needed for this impl

1832. By Josh Arenson on 2015-07-14

[ Albert Astals Cid ]
* Revert Session Screenshotter (LP: #1473476)
[ Daniel d'Andrada ]
* Dismiss the apps spread if greeter gets shown (LP: #1471609)
[ Albert Astals Cid ]
* Make the card sizes a bit dependant on the total of gu of the dash

1833. By Josh Arenson on 2015-07-15

Fix deps

1834. By Josh Arenson on 2015-07-16

Fix invalid property in Wizard.qml

1835. By Josh Arenson on 2015-07-16

* Bump library version
* Rename LightDM to correct name

1836. By Josh Arenson on 2015-07-16

Merge integrated_lightdm_refactor

1837. By Josh Arenson on 2015-07-16

Merge trunk

1838. By Josh Arenson on 2015-07-17

Fix external property issues

1839. By Josh Arenson on 2015-07-17

Add fake shell.mode property to tests

1840. By Josh Arenson on 2015-07-20

Remove shell.mode from Wizard

1841. By Josh Arenson on 2015-07-21

[ Albert Astals ]
* Ensure tutorial doesn't let user drag the launcher past screen edge.
  (LP: #1454882)
[ Albert Astals Cid ]
* Fix build with ninja
[ Andrea Cimitan ]
* Add PreviewSocialComment
[ Daniel d'Andrada ]
* Ensure tutorial doesn't let user drag the launcher past screen edge.
  (LP: #1454882)
* Update tst_ShellWithPin
[ Josh Arenson ]
* Add a basic autopilot test for the SettingsWizard
[ Lukáš Tinkl ]
* Avoid sync DBUS calls
[ Marcus Tomlinson ]
* Handle TERM, HUP, and INT signals in unity-scope-tool (LP: #1470464)
[ Michael Zanetti ]
* Add PreviewSocialComment
[ Nick Dedekind ]
* Fixed qml warnings in 'make tryShell'

1842. By Josh Arenson on 2015-07-21

Remove shell.mode dependency from LightDM.qml

1843. By Josh Arenson on 2015-07-21

Remove shellMode dependency from Wizard.qml in a more clear way

1844. By Josh Arenson on 2015-07-21

Revert to the old tightly-coupled way of determining which lightdm to load

1845. By Josh Arenson on 2015-07-22

Fully abstract Greeter/LightDM from shell.mode

1846. By Josh Arenson on 2015-08-06

[ CI Train Bot ]
* Resync trunk.
* allow opening the manage dash area by clicking with a mouse on the
  arrow label (LP: #1431564)
* TouchRegistry: remove null candidates from list of candidates (LP:
  #1473492)
* Fix power dialogs on desktop
* Provide DBUS compatibility with various session services
  (suspend/hibernate, lock/unlock, screensaver, etc)
* React on PrtScr keyboard shortcut for taking screenshots on desktop
  (LP: #1474149)
* launcher parity: close apps from quicklist (LP: #1457201)
[ Michael Zanetti ]
* Implement first edition for a desktop Alt+Tab spread
* drop the gcc-4.9 dependency (LP: #1452348)
[ Mirco Müller ]
* Added corresponding tests and visual tweaks to a launcher-item's
  progress-overlay.
* Added corresponding tests and visual tweaks to a launcher-item's
  progress-overlay.
* Implemented alert/wiggle feature for launcher-icons.
* Implemented alert/wiggle feature for launcher-icons.
[ handsome_feng ]
* makes left swip reset the search string. (LP: #1413791)
[ handsome_feng<email address hidden> ]
* Don't expand indicators when tap to return to call. (LP: #1453217)
* makes left swip reset the search string. (LP: #1413791)

1847. By Josh Arenson on 2015-08-21

[ Albert Astals Cid ]
* Drop gcc 4.9 requirement in debian/rules
* Make the test more stable
* Optimize scope.preview() calls (LP: #1478022)
[ Alberto Mardegan ]
* Set currentIndex after the model change is completed (LP: #1433442)
[ Albert Astals Cid ]
* Make the test pass again after rework of appmanager
* fix testPhoneStage
[ CI Train Bot ]
* New rebuild forced.
[ Daniel d'Andrada ]
* Fix and clean up InputInfo plugin
[ Rodney Dawes ]
* Do not call verify in the payments button code. (LP: #1468038)
[ Albert Astals Cid ]
* Add a test that checks that items in an expandable are the correct
  size after expanding the expandable
* Fix the expandable test
* Replace some waitForRendering with wait(0)
* Workaround for bug 1473471 (LP: #1473471)
[ Gary.Wzl ]
* Fix layout issue when adding audio track widget in expandable widget
[ handsome_feng ]
* Added indication for running apps. (LP: #1471577)
* Adjust the color to highlighting indicator. (LP: #1457098)
* Convert the MouseArea to MultiPointTouchArea to track multiple touch
  points. (LP: #1445472)
[ handsome_feng<email address hidden> ]
* Convert the MouseArea to MultiPointTouchArea to track multiple touch
  points. (LP: #1445472)
[ Kevin Gunn ]
* No change, rebuild for gcc5
[ CI Train Bot ]
* Resync trunk. added: po/cy.po
* Resync trunk. added: po/cy.po
[ Daniel d'Andrada ]
* Stages now control the "requestedState" property of applications
* Stages now control the "requestedState" property of applications

1848. By Josh Arenson on 2015-08-25

[ Michael Terry ]
* Skip the tutorial entirely when in desktop mode. This fixes the
  emulator not being able to pass the tutorial.
* Skip the tutorial entirely when in desktop mode. This fixes the
  emulator not being able to pass the tutorial.

1849. By Josh Arenson on 2015-08-25

Refactor to remove redundant lightdm naming

1850. By Josh Arenson on 2015-08-25

Don't provide Dialogs with a copy of lightDM, just refer to a shared copy.

1851. By Josh Arenson on 2015-08-25

Remove unecessary ./ from file path

1852. By Josh Arenson on 2015-08-25

Remove unused property from qmltest

1853. By Josh Arenson on 2015-08-25

Remove unused package dependency

1854. By Josh Arenson on 2015-08-25

Remove pkg_check from previously removed dependency

1855. By Josh Arenson on 2015-08-25

Fix .install file

1856. By Josh Arenson on 2015-08-25

Re-enable tests

1857. By Josh Arenson on 2015-08-27

Create new plugin directory structure

1858. By Josh Arenson on 2015-08-27

Copy original lightdm files

1859. By Josh Arenson on 2015-08-27

Format qmldir input file

1860. By Josh Arenson on 2015-08-27

Refactor FullLightDM

1861. By Josh Arenson on 2015-08-27

Refactor IntegratedLightDM

1862. By Josh Arenson on 2015-08-27

[CHECKPOINT COMMIT] - Broken

Update tests to reflect lightdm refactor. This does not build yet.

1863. By Josh Arenson on 2015-08-31

Finish LightDM plugin refactor (backend)

1864. By Josh Arenson on 2015-08-31

Re-enable lightdm plugin tests

1865. By Josh Arenson on 2015-09-01

Update includes and debian install files

1866. By Josh Arenson on 2015-09-01

Add types file / fix small bugs

1867. By Josh Arenson on 2015-09-01

Fix qmldir issue

1868. By Josh Arenson on 2015-09-01

Add all the files that were accidently unversioned

1869. By Josh Arenson on 2015-09-01

Re-enable tests

1870. By Josh Arenson on 2015-09-01

[ Albert Astals Cid ]
* Accept auto repeats for the power down button if timer is not yet
  running (LP: #1486953, #1488927)
* Add tests for Shell+Dash interaction
* Make clicking on launcher buttons have haptic feedback
* Make test_greeter_hides_on_app_open more stable
* Move connect() to new syntax
* make pot_file (LP: #1488484)
[ Gerry Boland ]
* [spread] avoid changing sourceSize of snapshotted apps, it causes
  ghost apps in the spread (LP: #1474319)
[ Josh Arenson ]
* Refactor the greeter to enable dynamic loading of backend plugins.
* Refactor the greeter to enable dynamic loading of backend plugins.
[ Lukáš Tinkl ]
* Don't show the volume notification when the sound indicator is shown
  (LP: #1484126)
[ Michael Terry ]
* Unify turn-on-screen-upon-notification logic from various daemons
  into unity8. (LP: #1426115, #1482317)
[ Daniel d'Andrada ]
* MirSurfaceItem is now a view+controller instantiated from QML (LP:
  #1483752)

1871. By Josh Arenson on 2015-09-01

Remove stray files

1872. By Josh Arenson on 2015-09-01

Add package to debian/control

1873. By Josh Arenson on 2015-09-01

Add unity8-greeter configuration file

1874. By Josh Arenson on 2015-09-02

Fix typo

1875. By Josh Arenson on 2015-09-02

Merge integrated_lightdm

1876. By Josh Arenson on 2015-09-02

Update greeter name in config file

1877. By Josh Arenson on 2015-09-02

Update path in plugins test

1878. By Josh Arenson on 2015-09-03

Install 51-unity-greeter.conf

1879. By Josh Arenson on 2015-09-03

Remove duplicate install

1880. By Josh Arenson on 2015-09-03

Convert signal connection to new style

1881. By Josh Arenson on 2015-09-03

Convert signal connection to new style

1882. By Josh Arenson on 2015-09-03

Return correct type

1883. By Josh Arenson on 2015-09-03

Return correct types

1884. By Josh Arenson on 2015-09-03

Add address-of opperator to string argument

1885. By Josh Arenson on 2015-09-04

Revert some small changes

1886. By Josh Arenson on 2015-09-04

More review changes (mostly to types)

1887. By Josh Arenson on 2015-09-04

License updates

1888. By Josh Arenson on 2015-09-04

Bump licenses

1889. By Josh Arenson on 2015-09-10

Playing bzr games

Re-add IntegratedLightDM (soon to be clobered)

1890. By Josh Arenson on 2015-09-10

Revert last commit

1891. By Josh Arenson on 2015-09-10

remove integrated lightdm

1892. By Josh Arenson on 2015-09-11

Re-add original LightDM

1893. By Josh Arenson on 2015-09-11

Revert to original LightDM directory revision

1894. By Josh Arenson on 2015-09-11

Change directory name to LightDM

1895. By Josh Arenson on 2015-09-11

Update top level plugin files

1896. By Josh Arenson on 2015-09-11

Add IntegratedLightDM Files

1897. By Josh Arenson on 2015-09-11

Add FullLightDM

1898. By Josh Arenson on 2015-09-11

Remove debug include

1899. By Josh Arenson on 2015-09-11

[ Michal Sawicz ]
* Resync wily with vivid
[ Albert Astals Cid ]
* Accomodate header height when using a card carousel with non
  overlayed header (LP: #1489309)
* Fix restart unity8 from inside the phone more than two times (LP:
  #1487946)
[ Gary.Wzl ]
* Move textarea up automatically when inputmethod popup. (LP:
  #1485947)
[ Lukáš Tinkl ]
* Introduce a GlobalShortcut QML component for handling global
  keyboard shortcuts
[ Michael Terry ]
* Fix the fact that a user that is locked out from their account for
  five minutes after entering too many wrong passwords can simply
  reboot to try again. (LP: #1383086)
* Fix the fact that a user that is locked out from their account for
  five minutes after entering too many wrong passwords can simply
  reboot to try again. (LP: #1383086)
[ Michael Zanetti ]
* Implement progressive autoscrolling in desktop spread
* add an animation transition when invoking the spread by hitting the
  right edge
[ Michael Zanetti ]
* release for wily
[ CI Train Bot ]
* New rebuild forced.

1900. By Josh Arenson on 2015-09-11

Update LightDM import strings in tests

1901. By Josh Arenson on 2015-09-16

Refactor config filename

1902. By Josh Arenson on 2015-09-16

Remove redundant linker option

1903. By Josh Arenson on 2015-09-16

Update to new connect syntax

1904. By Josh Arenson on 2015-09-16

Remove unused property

1905. By Josh Arenson on 2015-09-16

Remove duplicate objects and clean syntax

1906. By Josh Arenson on 2015-09-16

Revert

1907. By Josh Arenson on 2015-09-16

remove unused prop

1908. By Josh Arenson on 2015-09-16

Backout some changes

1909. By Josh Arenson on 2015-09-16

Remove redundant fullightDM property

1910. By Josh Arenson on 2015-09-16

Remove redundant property yet again

1911. By Josh Arenson on 2015-09-17

[NOT WORKING] Singleton is working, but this is an overall bad state

1912. By Josh Arenson on 2015-09-17

Refactor TheLightDM back to LightDM

1913. By Josh Arenson on 2015-09-17

Add logic to determine which LightDM to load

1914. By Josh Arenson on 2015-09-18

[NOT WORKING] Refactor LightDM's to help pass tests

1915. By Josh Arenson on 2015-09-18

Fix lightdm path

1916. By Josh Arenson on 2015-09-18

Hack a solution to the Q_ASSERT

1917. By Josh Arenson on 2015-09-21

Remove unecessary alias

1918. By Josh Arenson on 2015-09-21

[ Albert Astals Cid ]
* Fix testNotifications
* Make the wait longer to make tests pass in CI
* New simplified CroppedImageMinimumSourceSize (LP: #1467740)
* Stop animateTimer when starting the fadeOutAnimation
* Use AlreadyLaunchedUpstart so that tests passes
* Workaround keyboard issues and make test pass again
[ Daniel d'Andrada ]
* DesktopStage: Refactor focus handling
* Stabilize tstShell.test_launchedAppHasActiveFocus
[ Gary.Wzl ]
* Add widgetData["expanded"] property for expandable widget.
[ Michael Terry ]
* Fix typo that caused the tutorial to tease the launcher on top of
  the greeter.
* Fix typo that caused the tutorial to tease the launcher on top of
  the greeter.

1919. By Josh Arenson on 2015-09-24

merge overlay

1920. By Josh Arenson on 2015-09-24

Some small changes that don't fix testing still

1921. By Josh Arenson on 2015-09-24

[ Albert Astals Cid ]
* Adapt test to code changes
* Add DEP-8 test for all our UI and unit tests
* Keep the PreviewStack around to avoid mem leaks (LP: #1495467)
[ CI Train Bot ]
* Resync trunk.
[ Michael Terry ]
* When libusermetrics gives us an empty string, still show the
  infographic circle rather than hiding it. This is a follow-on to a
  branch [1] that changes the "no data available" label to the empty
  string.
[ Michał Sawicz ]
* Add DEP-8 test for all our UI and unit tests
* Fix integrated LightDM path
* Resync trunk

1922. By Josh Arenson on 2015-09-25

remove redundant dep from debian/control

1923. By Josh Arenson on 2015-09-25

Fix greeter tests

1924. By Josh Arenson on 2015-09-25

Fix include paths in plugins/LightDM

1925. By Josh Arenson on 2015-09-28

Fix plugin test import path

1926. By Josh Arenson on 2015-09-28

Move things around

1927. By Josh Arenson on 2015-09-28

Use magic to link to mock LightDM by target name

1928. By Josh Arenson on 2015-09-29

Resync trunk

1929. By Josh Arenson on 2015-10-01

Fix testing mock path

1930. By Josh Arenson on 2015-10-01

[ Albert Astals Cid ]
* Make Launcher::test_quickListMenuOnRMB stable (LP: #1500359)
[ CI Train Bot ]
* New rebuild forced.
[ Michael Zanetti ]
* Stabilize Launcher DND test
[ Albert Astals Cid ]
* Improvements from running clazy over the code
[ Daniel d'Andrada ]
* PhoneStage: ensure you're left in a consistent state after being
  reset (LP: #1476757)
[ Lukáš Tinkl ]
* Improve the appearance and functionality of datetime and session
  indicators in Unity8 desktop.
* Using InputInfo, determine if we need swipe or click to dismiss the
  notifications (e.g. incoming phone call)
[ Michael Zanetti ]
* further development on the Desktop Spread (LP: #1488147)
[ Michał Sawicz ]
* Bump application API version
* Skip bluetooth check under wily, use expectFailure to notice when
  it's back
[ Richard Somlói ]
* Fix translator comments in time formatter

1931. By Josh Arenson on 2015-10-02

Fix mock paths

This still doesn't fix tests and I'm not sure why

1932. By Josh Arenson on 2015-10-02

Fix lightdm qt version paths

1933. By Josh Arenson on 2015-10-02

AP Tests finally pass!

1934. By Josh Arenson on 2015-10-03

[ CI Train Bot ]
* Resync trunk.
[ Lukáš Tinkl ]
* Wizard: skip the reporting page if the system is configured not to
  report crashes (LP: #1494442)
[ Alexandros Frantzis ]
* Use power state change reason SnapDecision to turn screen on when a
  SnapDecision arrives (LP: #1291455)
[ CI Train Bot ]
* New rebuild forced.

1935. By Josh Arenson on 2015-10-05

Remove AP test for greeter mode as the real lightdm can't be run inside a user session

1936. By Josh Arenson on 2015-10-20

Refactor TheLightDM to LightDMService

1937. By Josh Arenson on 2015-10-20

Remove unused code

1938. By Josh Arenson on 2015-10-20

[ CI Train Bot ]
* New rebuild forced.
[ Pawel Stolowski ]
* Store unity8 package version in /var/lib/.../version file for fast
  retrieval from the shell plugin.
[ Lukáš Tinkl ]
* Revert to using plaintext instead of HTML-like markup for the
  notifications (LP: #1504256)

1939. By Josh Arenson on 2015-10-26

[ Albert Astals Cid ]
* Clazy fixes
* Enable Efficient String Construction by default
[ CI Train Bot ]
* New rebuild forced.
[ Daniel d'Andrada ]
* Have unity8 drawing its own cursor (LP: #1488417)
* Initial multi-monitor support
[ Daniel van Vugt ]
* Disable Qt's stuttering 'touch compression' to fix scrolling
  smoothness (LP: #1486341, #1488327)
[ Lukáš Tinkl ]
* Fix autopilot wizard test skipping the reporting page
* Implement Unity.Platform plugin wrapping org.freedesktop.hostname1
  (LP: #1504318)
* React to window title (aka surface name) changes (LP: #1497092)
* Rotate the screenshots according to the actual orientation
[ Michał Sawicz ]
* Fix application API dependency
* Have unity8 drawing its own cursor (LP: #1488417)
* Initial multi-monitor support
* Rotate the screenshots according to the actual orientation
[ Nick Dedekind ]
* Fixed leak in UnityMenuModelStackTest
* Moved time translation to SDK (LP: #1372061)

1940. By Josh Arenson <josh@blackbox> on 2015-10-27

Update new ShellApplication class to handle greeter mode

1941. By Josh Arenson <josh@blackbox> on 2015-10-27

Change include paths

1942. By Josh Arenson on 2015-10-27

Restore control

1943. By Josh Arenson on 2015-11-02

Re-enable whitespace test

1944. By Josh Arenson on 2015-11-02

Merge trunk

1945. By Josh Arenson on 2015-11-02

Fix whitespace

1946. By Josh Arenson on 2015-11-02

Remove useless preprocessor code

1947. By Josh Arenson on 2015-11-02

Fix translations

1948. By Josh Arenson on 2015-11-04

Fix permissions

1949. By Josh Arenson on 2015-11-04

Remove unused fields from the .desktop file

1950. By Josh Arenson on 2015-11-04

Update unity8-greeter package description

1951. By Josh Arenson on 2015-11-04

Fix qmltypes

1952. By Josh Arenson on 2015-11-06

Fix permissions?

1953. By Josh Arenson on 2015-11-06

Fix permissions.

1954. By Josh Arenson on 2015-11-06

[ Albert Astals Cid ]
* Add an Item that proxies for old and new audio roles (LP: #1493851)
* CroppedImageMinimumSourceSize: Fix 'Binding loop detected for
  property "imageAspectRatio"'
* Make the scope settings list scroll to text visible area (LP:
  #1499084)
* Move to importing QtQuick 2.4 & friends
* Use SDK 1.3 across all files (LP: #1503498, #1508363, #1449628)
[ Andrea Cimitan ]
* Add sharing widget to zoomable image and video playback
* Make zoomable and video playback widgets edge to edge
* Updated all 1.3 UbuntuShape to use new APIs where possible
* Use SDK 1.3 across all files (LP: #1503498, #1508363, #1449628)
[ CI Train Bot ]
* Resync trunk.
[ Christopher Lee ]
* Quick spelling fix in process control output.
[ Daniel d'Andrada ]
* Enable support for overriding application orientations based on
  device type (LP: #1478637)
* Use SDK 1.3 across all files (LP: #1503498, #1508363, #1449628)
* Use SDK 1.3 across all files (LP: #1503498, #1508363, #1449628)
[ Josh Arenson ]
* Enable support for overriding application orientations based on
  device type (LP: #1478637)
[ Michael Terry ]
* Avoid showing the shutdown dialog when turning on the screen if your
  device is under heavy load. (LP: #1508563)
* Handle lifecycle policy exceptions ourselves, instead of letting
  qtmir do it for us and allow non-Touch apps to opt-out of the Touch
  lifecycle.
[ Michael Zanetti ]
* Fixes for the panel buttons (LP: #1510360, #1504269, #1431566,
  #1443319)
* Use SDK 1.3 across all files (LP: #1503498, #1508363, #1449628)
[ Michał Sawicz ]
* Add missing copyright to Cursor.qml
* Enable support for overriding application orientations based on
  device type (LP: #1478637)
* Support server->client visibility change to stop rendering
  (lp:#1475678) (LP: #1475678)
[ Nick Dedekind ]
* Support server->client visibility change to stop rendering
  (lp:#1475678) (LP: #1475678)

1955. By Josh Arenson on 2015-11-07

Fix mistakes from previous merge

1956. By Josh Arenson on 2015-11-09

Merge trunk

1957. By Josh Arenson on 2015-11-09

Bump qml version

1958. By Josh Arenson on 2015-11-09

Chmod more messed up files

1959. By Josh Arenson on 2015-11-09

Fix more permissions

1960. By Josh Arenson on 2015-11-20

Merge

1961. By Josh Arenson on 2015-11-20

[ Albert Astals Cid ]
* Make cardWidth and cardHeight real
* Reset instead of qFatal when removing things from the middle (LP:
  #1238979)
* Warn we're using only the cache when not connected to the interwebs
[ Andrea Cimitan ]
* Add sharing widget to zoomable image and video playback
[ Daniel d'Andrada ]
* Cursor: properly initialize hotspot position (LP: #1510407)
* Update GSettings mock in tst_OrientedShell
[ Lukáš Tinkl ]
* Restore windows when activating from the spread, maintain a focus
  stack
[ Michael Terry ]
* Make a few DBus calls asynchronous, for a smoother UX.
[ Michael Zanetti ]
* Add a warning dialog when disconnecting the external monitor.
* added icon for the dash (LP: #1488146)
* prevent windows to be moved under the panel (LP: #1438465)
* update inputinfo api to the latest upstream snapshot
* use UbuntuNumberAnimations instead of linear ones for window state
  transitions (LP: #1497097)

1962. By Josh Arenson on 2015-11-24

Merge trunk

1963. By Josh Arenson on 2015-12-13

[ Albert Astals Cid ]
* Allow dragging launcher items with the quicklist open (LP: #1250861)
* Create ratings on demand instead of all at the same time (LP:
  #1519898, #1492214)
* LVWPH: Process correctly section changes (LP: #1519893)
* Make sure that unfavoriting a scope gives us the next one
* Move images only used in tests to tests folder
[ Andrea Cimitan ]
* Add shadows to ubuntu store icon
[ Daniel d'Andrada ]
* MirSurfaceItem got a new property: fillMode (LP: #1497083)
* Session can have multiple surfaces now
* plugins/Cursor: Do not force loading a specific cursor size (LP:
  #1517878)
[ Lukáš Tinkl ]
* Indicators convergence: use the "phone" profile everywhere (LP:
  #1520492)
[ Michael Terry ]
* Let qtmir know which apps are exempt from the lifecycle management.
  This way, it can manage its own wakelocks better (and stop
  preventing the system from deep sleeping).
[ Michael Zanetti ]
* Use proper z ordering instead of app index for occlusion detection
* add some debug prints to the uinput backend
* drop the ignoredMice hack again (LP: #1521580)
[ Michał Sawicz ]
* Let qtmir know which apps are exempt from the lifecycle management.
  This way, it can manage its own wakelocks better (and stop
  preventing the system from deep sleeping).
* Update .pot file in debian/clean when in train
* Rebuild against Qt 5.5.1.
[ Albert Astals Cid ]
* Initialize the image to be transparent (LP: #1517128)
* Update pot file
* clazy improvements
[ Andrea Cimitan ]
* Shadows in launcher and dash using UbuntuShapeIcon
[ CI Train Bot ]
* Resync trunk.
[ Daniel d'Andrada ]
* Cursor plugin: add scroll wheel handling (LP: #1497091)
* Cursor: Add more fallback names, a blank and custom cursor support
* DesktopStage: swiping from right edge shows window spread
* Don't stretch application surfaces when resizing (LP: #1497083)
* Mouse has to push against edges to show launcher or apps spread (LP:
  #1510969)
[ Josh Arenson ]
* Don't let IntegratedLightDM muck with the username (LP: #1497081)
[ Lukáš Tinkl ]
* Implement new visuals for panel and window decorations (LP:
  #1493066, #1511020, #1497095)
* Let systemd/logind handle the lid-close action
* Make saving screenshots really async
[ Michael Zanetti ]
* detect touchpads too, not only mice (LP: #1518395)
* move screenshots out of the Dash dir

1964. By Josh Arenson on 2015-12-30

Merge trunk

1965. By Josh Arenson on 2016-01-19

[ Albert Astals Cid ]
* Clear fake item icon name as soon as it goes invisible (LP:
  #1531172)
* Fix LVWPH test failing on Xenial (Qt 5.5)
* Fix dragging so that test passes on Xenial
* Fix focus on the dash page header text field with new SDK (LP:
  #1528178)
* Make the card creator test pass again
* Quit the dash communicator thread before destroying it (LP:
  #1508485)
* Remove duplicated override_dh_auto_clean
* SDK changed the name they give to the buttons, follow
[ Andrea Cimitan ]
* Fix a broken binding
[ CI Train Bot ]
* Resync trunk.
* Update translation template
[ Daniel d'Andrada ]
* Have "make tryFoo" work with Qt 5.5
* Make DragHandle tests run again.
[ Lukáš Tinkl ]
* Fix dismissing the launcher when clicking/tapping outside (LP:
  #1531339, #1530940)
* Fix panel drop shadow and click-to-focus of maximized apps (LP:
  #1531854)
* Fix wifi access point indicator items signal strength icon on
  desktop
[ Michael Terry ]
* Guard against a couple odd timing scenarios for the too-many-failed-
  login-attempts lockout screen.
* Skip the wizard's password screens if there is already a password
  set by other means. (LP: #1531268)
* Stop the emergency dialer from accidentally exposing the mtp
  service. (LP: #1525981)
[ Michael Zanetti ]
* Make sure the triangle of the quicklist is in bounds (LP: #1531340)
[ Pawel Stolowski ]
* Changes 'shareData' and 'contentType' attributes to 'share-data' and
  'content-type', to match existing naming schema.
[ Albert Astals Cid ]
* Introduce audio cards
[ CI Train Bot ]
* Update translation template
[ Michael Zanetti ]
* Introduce audio cards
[ CI Train Bot ]
* Resync trunk.
* Update translation template
[ Nick Dedekind ]
* Use volume-sync action to resync the volume control. (LP: #1520548)

1966. By Josh Arenson on 2016-01-22

Enable running the greeter as a Mir server.

1967. By Josh Arenson on 2016-01-22

Fix whitespace, remove some hacks

1968. By Josh Arenson on 2016-01-22

Fix translations

1969. By Josh Arenson on 2016-01-26

[ Albert Astals Cid ]
* Fix bug #1536296 added: tests/plugins/Dash/cardcreator/10.tst (LP:
  #1536296)
* Fix card tests on the phone
[ CI Train Bot ]
* Update translation template

1970. By Josh Arenson on 2016-02-03

[ Albert Astals Cid ]
* Audio Preview Button: Don't gain focus on press (LP: #1517830)
* Better attempt at sanitization
* Better looking application scopes for wide screens
* Call printSettings correctly
* Card test: Limit the precision we ask for doubles to be equal
* Convert while into tryCompareFunction
* Do not use the same filepath parameter for all the card creator
  createQmlObject calls (LP: #1536379)
* Fix some test shells being unstable in the armhf builders
* Make revealByEdgePush more stable
* More reliable compares
* Move the mouse over the bfb before waiting for rendering
* Remove the DDAs constrains for every test
* Set the background source size to the max we'll need + new
  background (LP: #1539011)
[ Andrea Cimitan ]
* Dynamically change click scope card size according to size (LP:
  #1536745)
* Should fix lazyimage test failures on fast machines
[ CI Train Bot ]
* Fix card tests on the phone
* Update translation template
[ Daniel d'Andrada ]
* Desktop stage rotates only to follow screen orientation (LP:
  #1515977)
[ Lukáš Tinkl ]
* Hide/reveal the mouse pointer on touch/mouse events renamed:
  plugins/Utils/HomeKeyWatcher.cpp =>
  plugins/Utils/WindowInputMonitor.cpp plugins/Utils/HomeKeyWatcher.h
  => plugins/Utils/WindowInputMonitor.h
  tests/mocks/Utils/HomeKeyWatcher.qml =>
  tests/mocks/Utils/WindowInputMonitor.qml
  tests/plugins/Utils/HomeKeyWatcherTest.cpp =>
  tests/plugins/Utils/WindowInputMonitorTest.cpp
[ Michael Terry ]
* Synchronize the mouse-cursor-speed and touchpad-cursor-speed
  properties with USC. (LP: #1536383)
[ Michael Zanetti ]
* Add InputMethod to secondary screen
* Add a virtual Touchpad while external screen is connected
* Make big tablets switch to windowed mode by plugging a kbd only (LP:
  #1535399)
* Prevent alt key presses from being dispatched to the app on alt+tab
  (LP: #1532862)
[ Michał Sawicz ]
* Make qmluitests.sh more robust and allow parallel test execution
* Skip SessionBackendTest::testLogin1Capabilities until we talk to a
  mock instead (LP: #1532112, #1532113)

1971. By Josh Arenson on 2016-02-03

Fix ninja complaining about qmldir files

1972. By Josh Arenson on 2016-02-09

Re-enable tests.

1973. By Josh Arenson on 2016-02-16

[ Albert Astals Cid ]
* Do not use components in card creator generated code
* Forward the makesurevisible signal from the inner preview widget
* Make fallback also be fallback when the image is empty and not only
  on error (LP: #1531913)
* Make the artShapeSize assignment be updated when using dynamic grid
  units
* Visual improvements to the dash audio play cards
* We don't use the unity-scope-scopes anymore (LP: #1439172)
[ Andrea Cimitan ]
* only request a bigger image if zoomable widget data property is
  true, otherwise just leave the screen size (LP: #1536814)
[ CI Train Bot ]
* Update translation template
[ Daniel d'Andrada ]
* Set initial surface size (LP: #1532974)
[ Daniel d'Andrada, Michał Sawicz ]
* Window Size Hints
[ Florian Boucault ]
* Splash screen: delay showing the ActivityIndicator by 2 seconds.
[ Lukáš Tinkl ]
* Replace the word "phone" with a more generic term "device" in the
  welcome wizard (LP: #1294732, #1543527)
[ Michael Terry ]
* Have the tablet greeter set appropriate OSK hints if the user has a
  passcode instead of a passphrase. (LP: #1544173)
[ Michael Zanetti ]
* Don't eat mouse events in the edgebarrer
[ Michał Sawicz ]
* Bump unity-api dependencies
[ Nick Dedekind ]
* Added support for secondary indicator actions (LP: #1398888)
* Remove zombie if they're not animated. (LP: #1534541)
* Removed unused panel resources
[ Ted Gould ]
* Start the indicators after Unity8 starts instead of before
[ Albert Astals Cid ]
* LVWPH: Reset to initial values when list is empty (LP: #1540490)
* Make LazyImage qmltest less flaky on CI
[ Andrea Cimitan ]
* Make LazyImage qmltest less flaky on CI
[ CI Train Bot ]
* Resync trunk.
* Update translation template
[ Michael Terry ]
* Display the current user's real name on the tablet lockscreen. (LP:
  #1536714)

1974. By Josh Arenson on 2016-02-22

[ Albert Astals Cid ]
* Make the audio previews create a playlist (LP: #1540477)
[ CI Train Bot ]
* Resync trunk. added: po/aa.po
* Update translation template

1975. By Josh Arenson on 2016-02-24

Fix issue where a passwordless user was logged in automatically.

1976. By Josh Arenson on 2016-02-29

Merge trunk.

1977. By Josh Arenson on 2016-03-02

Merge trunk

1978. By Josh Arenson on 2016-03-17

Merge trunk

1979. By Josh Arenson on 2016-03-21

merge trunk

1980. By Josh Arenson on 2016-03-21

Move a lost file

1981. By Josh Arenson on 2016-03-21

Fix test

1982. By Josh Arenson on 2016-03-25

merge trunk

1983. By Josh Arenson on 2016-04-01

Fix some bad merge changes.

1984. By Josh Arenson on 2016-04-29

merge trunk

1985. By Josh Arenson on 2016-05-02

merge trunk

1986. By Josh Arenson on 2016-05-25

merge trunk

1987. By Josh Arenson on 2016-06-07

Merge trunk

1988. By Josh Arenson on 2016-06-07

Fix seat type

1989. By Josh Arenson on 2016-06-13

Merge lp:~mterry/unity8/slim_greeter_select_user

1990. By Josh Arenson on 2016-06-13

Remove qmltype files

1991. By Josh Arenson on 2016-06-14

Patch tests so that they pass. Thanks to mterry for this patch.

1992. By Josh Arenson on 2016-06-14

Remove unused env variable in wrapper

1993. By Josh Arenson on 2016-06-20

Merge trunk

1994. By Josh Arenson on 2016-06-27

Merge trunk

1995. By Josh Arenson on 2016-06-27

Fix merge

1996. By Josh Arenson on 2016-06-29

Merge trunk

1997. By Josh Arenson on 2016-07-05

merge trunk

1998. By Josh Arenson on 2016-07-08

Merge lp:~mterry/unity8/slim_greeter_real_lightdm

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'CMakeLists.txt'
2--- CMakeLists.txt 2015-06-17 12:14:27 +0000
3+++ CMakeLists.txt 2015-07-08 19:22:49 +0000
4@@ -108,6 +108,7 @@
5 set(DASH_APP unity8-dash)
6 set(SCOPE_TOOL unity-scope-tool)
7 set(INDICATORS_CLIENT_APP indicators-client)
8+set(LIGHTDM_GREETER_APP lightdm-unity8-greeter)
9 set(MOCK_INDICATOR_SERVICE_APP unity-mock-indicator-service)
10
11 include_directories(
12
13=== modified file 'data/CMakeLists.txt'
14--- data/CMakeLists.txt 2015-03-12 13:59:07 +0000
15+++ data/CMakeLists.txt 2015-07-08 19:22:49 +0000
16@@ -2,6 +2,7 @@
17 configure_file(${SHELL_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${SHELL_APP}.desktop @ONLY)
18 configure_file(${DASH_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${DASH_APP}.desktop @ONLY)
19 configure_file(${INDICATORS_CLIENT_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${INDICATORS_CLIENT_APP}.desktop @ONLY)
20+configure_file(${LIGHTDM_GREETER_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${LIGHTDM_GREETER_APP}.desktop @ONLY)
21
22 # install desktop files
23 install(FILES
24@@ -11,5 +12,10 @@
25 DESTINATION ${CMAKE_INSTALL_DATADIR}/applications
26 )
27
28+install(FILES
29+ ${CMAKE_CURRENT_BINARY_DIR}/${LIGHTDM_GREETER_APP}.desktop
30+ DESTINATION ${CMAKE_INSTALL_DATADIR}/lightdm/greeters
31+ )
32+
33 install(FILES com.canonical.Unity8.gschema.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/glib-2.0/schemas)
34 install(FILES unity8-dash.url-dispatcher DESTINATION ${CMAKE_INSTALL_DATADIR}/url-dispatcher/urls)
35
36=== added file 'data/lightdm-unity8-greeter.desktop.in'
37--- data/lightdm-unity8-greeter.desktop.in 1970-01-01 00:00:00 +0000
38+++ data/lightdm-unity8-greeter.desktop.in 2015-07-08 19:22:49 +0000
39@@ -0,0 +1,9 @@
40+[Desktop Entry]
41+Type=Application
42+Name=LightDM Unity 8 Greeter
43+Comment=The converged Unity shell's LightDM Greeter
44+Exec=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/unity8 --mode=greeter
45+Terminal=false
46+Icon=
47+NoDisplay=true
48+X-Ubuntu-Touch=true
49
50=== modified file 'debian/control'
51--- debian/control 2015-07-02 16:09:27 +0000
52+++ debian/control 2015-07-08 19:22:49 +0000
53@@ -11,7 +11,7 @@
54 # version. To allow cross-compiling to work, we also must
55 # append :native to g++-4.9 so we don't try to run armhf g++
56 # on an x86 CPU for eaxmple, when cross-compiling.
57- g++-4.9:native,
58+# g++-4.9:native,
59 libandroid-properties-dev,
60 graphviz,
61 gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
62@@ -23,6 +23,8 @@
63 libglib2.0-dev,
64 libgsettings-qt-dev,
65 libhardware-dev,
66+ liblightdm-gobject-1-dev,
67+ liblightdm-qt5-3-dev,
68 libpam0g-dev,
69 libpay2-dev,
70 libpulse-dev,
71
72=== modified file 'debian/unity8-private.install'
73--- debian/unity8-private.install 2015-04-24 11:06:05 +0000
74+++ debian/unity8-private.install 2015-07-08 19:22:49 +0000
75@@ -2,8 +2,9 @@
76 usr/lib/*/unity8/libUbuntuGestures*
77 usr/lib/*/unity8/qml/AccountsService
78 usr/lib/*/unity8/qml/Dash
79+usr/lib/*/unity8/qml/FullLightDM
80 usr/lib/*/unity8/qml/Greeter
81-usr/lib/*/unity8/qml/LightDM
82+usr/lib/*/unity8/qml/IntegratedLightDM
83 usr/lib/*/unity8/qml/Lights
84 usr/lib/*/unity8/qml/Powerd
85 usr/lib/*/unity8/qml/ScreenGrabber
86
87=== modified file 'debian/unity8.install'
88--- debian/unity8.install 2015-06-23 20:51:20 +0000
89+++ debian/unity8.install 2015-07-08 19:22:49 +0000
90@@ -5,6 +5,7 @@
91 usr/bin/unity8-dash
92 usr/share/applications/unity8-dash.desktop
93 usr/share/applications/unity8.desktop
94+usr/share/lightdm/greeters/lightdm-unity8-greeter.desktop
95 usr/share/unity8/Greeter
96 usr/share/unity8/Launcher
97 usr/share/unity8/Panel
98
99=== modified file 'plugins/CMakeLists.txt'
100--- plugins/CMakeLists.txt 2015-04-24 11:06:05 +0000
101+++ plugins/CMakeLists.txt 2015-07-08 19:22:49 +0000
102@@ -12,8 +12,9 @@
103 endmacro()
104
105 add_subdirectory(AccountsService)
106+add_subdirectory(FullLightDM)
107 add_subdirectory(Greeter)
108-add_subdirectory(LightDM)
109+add_subdirectory(IntegratedLightDM)
110 add_subdirectory(Lights)
111 add_subdirectory(Dash)
112 add_subdirectory(Powerd)
113
114=== added directory 'plugins/FullLightDM'
115=== added file 'plugins/FullLightDM/CMakeLists.txt'
116--- plugins/FullLightDM/CMakeLists.txt 1970-01-01 00:00:00 +0000
117+++ plugins/FullLightDM/CMakeLists.txt 2015-07-08 19:22:49 +0000
118@@ -0,0 +1,36 @@
119+pkg_check_modules(LIBUSERMETRICSOUTPUT REQUIRED libusermetricsoutput-1)
120+pkg_check_modules(LIBLIGHTDM_GOBJECT REQUIRED liblightdm-gobject-1)
121+pkg_check_modules(LIBLIGHTDM REQUIRED liblightdm-qt5-3)
122+
123+include_directories(
124+ ${CMAKE_CURRENT_SOURCE_DIR}
125+ ${CMAKE_CURRENT_BINARY_DIR}
126+ ${CMAKE_SOURCE_DIR}/plugins/Utils
127+ ${LIBLIGHTDM_INCLUDE_DIRS}
128+ ${libunity8-private_SOURCE_DIR}
129+ ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
130+)
131+
132+set(QMLPLUGIN_SRC
133+ ../Utils/unitysortfilterproxymodelqml.cpp
134+ DBusGreeter.cpp
135+ DBusGreeterList.cpp
136+ Greeter.cpp
137+ plugin.cpp
138+ UsersModel.cpp
139+ )
140+
141+add_library(FullLightDM-qml MODULE
142+ ${QMLPLUGIN_SRC}
143+ )
144+
145+target_link_libraries(FullLightDM-qml
146+ unity8-private
147+ lightdm-qt5-3
148+ ${LIBLIGHTDM_LDFLAGS}
149+ ${LIBUSERMETRICSOUTPUT_LDFLAGS}
150+ )
151+
152+qt5_use_modules(FullLightDM-qml DBus Gui Qml)
153+
154+add_unity8_plugin(FullLightDM 0.1 FullLightDM TARGETS FullLightDM-qml)
155
156=== added file 'plugins/FullLightDM/DBusGreeter.cpp'
157--- plugins/FullLightDM/DBusGreeter.cpp 1970-01-01 00:00:00 +0000
158+++ plugins/FullLightDM/DBusGreeter.cpp 2015-07-08 19:22:49 +0000
159@@ -0,0 +1,49 @@
160+/*
161+ * Copyright (C) 2014, 2015 Canonical, Ltd.
162+ *
163+ * This program is free software; you can redistribute it and/or modify
164+ * it under the terms of the GNU General Public License as published by
165+ * the Free Software Foundation; version 3.
166+ *
167+ * This program is distributed in the hope that it will be useful,
168+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
169+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
170+ * GNU General Public License for more details.
171+ *
172+ * You should have received a copy of the GNU General Public License
173+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
174+ */
175+
176+#include "DBusGreeter.h"
177+#include "Greeter.h"
178+
179+#include <QDBusMessage>
180+#include <QStringList>
181+
182+DBusGreeter::DBusGreeter(Greeter *greeter, const QString &path)
183+ : UnityDBusObject(path, "com.canonical.UnityGreeter", true, greeter),
184+ m_greeter(greeter)
185+{
186+ connect(m_greeter, SIGNAL(isActiveChanged()), this, SLOT(isActiveChangedHandler()));
187+}
188+
189+bool DBusGreeter::isActive() const
190+{
191+ return m_greeter->isActive();
192+}
193+
194+void DBusGreeter::ShowGreeter()
195+{
196+ Q_EMIT m_greeter->showGreeter();
197+}
198+
199+void DBusGreeter::HideGreeter()
200+{
201+ Q_EMIT m_greeter->hideGreeter();
202+}
203+
204+void DBusGreeter::isActiveChangedHandler()
205+{
206+ notifyPropertyChanged("IsActive", isActive());
207+ Q_EMIT isActiveChanged();
208+}
209
210=== added file 'plugins/FullLightDM/DBusGreeter.h'
211--- plugins/FullLightDM/DBusGreeter.h 1970-01-01 00:00:00 +0000
212+++ plugins/FullLightDM/DBusGreeter.h 2015-07-08 19:22:49 +0000
213@@ -0,0 +1,52 @@
214+/*
215+ * Copyright (C) 2014 Canonical, Ltd.
216+ *
217+ * This program is free software; you can redistribute it and/or modify
218+ * it under the terms of the GNU General Public License as published by
219+ * the Free Software Foundation; version 3.
220+ *
221+ * This program is distributed in the hope that it will be useful,
222+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
223+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
224+ * GNU General Public License for more details.
225+ *
226+ * You should have received a copy of the GNU General Public License
227+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
228+ */
229+
230+#ifndef UNITY_DBUSGREETER_H
231+#define UNITY_DBUSGREETER_H
232+
233+#include "unitydbusobject.h"
234+#include <QDBusConnection>
235+
236+class Greeter;
237+
238+/** This is an internal class used to talk with the indicators.
239+ */
240+
241+class DBusGreeter : public UnityDBusObject
242+{
243+ Q_OBJECT
244+ Q_CLASSINFO("D-Bus Interface", "com.canonical.UnityGreeter")
245+
246+ Q_PROPERTY(bool IsActive READ isActive NOTIFY isActiveChanged) // since 14.10
247+
248+public:
249+ explicit DBusGreeter(Greeter *greeter, const QString &path);
250+
251+ bool isActive() const;
252+ Q_SCRIPTABLE void ShowGreeter(); // temporary, until we split the greeter again
253+ Q_SCRIPTABLE void HideGreeter(); // temporary, until we split the greeter again
254+
255+Q_SIGNALS:
256+ void isActiveChanged();
257+
258+private Q_SLOTS:
259+ void isActiveChangedHandler();
260+
261+private:
262+ Greeter *m_greeter;
263+};
264+
265+#endif
266
267=== added file 'plugins/FullLightDM/DBusGreeterList.cpp'
268--- plugins/FullLightDM/DBusGreeterList.cpp 1970-01-01 00:00:00 +0000
269+++ plugins/FullLightDM/DBusGreeterList.cpp 2015-07-08 19:22:49 +0000
270@@ -0,0 +1,56 @@
271+/*
272+ * Copyright (C) 2013 Canonical, Ltd.
273+ *
274+ * This program is free software; you can redistribute it and/or modify
275+ * it under the terms of the GNU General Public License as published by
276+ * the Free Software Foundation; version 3.
277+ *
278+ * This program is distributed in the hope that it will be useful,
279+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
280+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
281+ * GNU General Public License for more details.
282+ *
283+ * You should have received a copy of the GNU General Public License
284+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
285+ */
286+
287+#include "DBusGreeterList.h"
288+#include "Greeter.h"
289+
290+#include <QDBusMessage>
291+#include <QStringList>
292+
293+DBusGreeterList::DBusGreeterList(Greeter *greeter, const QString &path)
294+ : UnityDBusObject(path, "com.canonical.UnityGreeter", true, greeter),
295+ m_greeter(greeter)
296+{
297+ connect(m_greeter, SIGNAL(authenticationUserChanged(const QString &)), this, SLOT(authenticationUserChangedHandler(const QString &)));
298+ connect(m_greeter, SIGNAL(promptlessChanged()), this, SLOT(promptlessChangedHandler()));
299+}
300+
301+QString DBusGreeterList::GetActiveEntry() const
302+{
303+ return m_greeter->authenticationUser();
304+}
305+
306+void DBusGreeterList::SetActiveEntry(const QString &entry)
307+{
308+ Q_EMIT m_greeter->requestAuthenticationUser(entry);
309+}
310+
311+bool DBusGreeterList::entryIsLocked() const
312+{
313+ return !m_greeter->promptless();
314+}
315+
316+void DBusGreeterList::authenticationUserChangedHandler(const QString &user)
317+{
318+ notifyPropertyChanged("ActiveEntry", user);
319+ Q_EMIT EntrySelected(user);
320+}
321+
322+void DBusGreeterList::promptlessChangedHandler()
323+{
324+ notifyPropertyChanged("EntryIsLocked", entryIsLocked());
325+ Q_EMIT entryIsLockedChanged();
326+}
327
328=== added file 'plugins/FullLightDM/DBusGreeterList.h'
329--- plugins/FullLightDM/DBusGreeterList.h 1970-01-01 00:00:00 +0000
330+++ plugins/FullLightDM/DBusGreeterList.h 2015-07-08 19:22:49 +0000
331@@ -0,0 +1,57 @@
332+/*
333+ * Copyright (C) 2013 Canonical, Ltd.
334+ *
335+ * This program is free software; you can redistribute it and/or modify
336+ * it under the terms of the GNU General Public License as published by
337+ * the Free Software Foundation; version 3.
338+ *
339+ * This program is distributed in the hope that it will be useful,
340+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
341+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
342+ * GNU General Public License for more details.
343+ *
344+ * You should have received a copy of the GNU General Public License
345+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
346+ */
347+
348+#ifndef UNITY_DBUSGREETERLIST_H
349+#define UNITY_DBUSGREETERLIST_H
350+
351+#include "unitydbusobject.h"
352+#include <QDBusConnection>
353+
354+class Greeter;
355+
356+/** This is an internal class used to talk with the indicators.
357+ */
358+
359+class DBusGreeterList : public UnityDBusObject
360+{
361+ Q_OBJECT
362+ Q_CLASSINFO("D-Bus Interface", "com.canonical.UnityGreeter.List")
363+
364+ Q_PROPERTY(QString ActiveEntry READ GetActiveEntry WRITE SetActiveEntry NOTIFY EntrySelected) // since 14.04
365+ Q_PROPERTY(bool EntryIsLocked READ entryIsLocked NOTIFY entryIsLockedChanged) // since 14.04
366+
367+public:
368+ explicit DBusGreeterList(Greeter *greeter, const QString &path);
369+
370+ Q_SCRIPTABLE void SetActiveEntry(const QString &entry); // since 13.04
371+ Q_SCRIPTABLE QString GetActiveEntry() const; // since 13.10
372+
373+ bool entryIsLocked() const;
374+
375+Q_SIGNALS:
376+ Q_SCRIPTABLE void EntrySelected(const QString &entry); // since 13.10
377+
378+ void entryIsLockedChanged();
379+
380+private Q_SLOTS:
381+ void authenticationUserChangedHandler(const QString &user);
382+ void promptlessChangedHandler();
383+
384+private:
385+ Greeter *m_greeter;
386+};
387+
388+#endif
389
390=== added file 'plugins/FullLightDM/FullLightDM.qmltypes'
391--- plugins/FullLightDM/FullLightDM.qmltypes 1970-01-01 00:00:00 +0000
392+++ plugins/FullLightDM/FullLightDM.qmltypes 2015-07-08 19:22:49 +0000
393@@ -0,0 +1,251 @@
394+import QtQuick.tooling 1.1
395+
396+// This file describes the plugin-supplied types contained in the library.
397+// It is used for QML tooling purposes only.
398+//
399+// This file was auto-generated by:
400+// 'qmlplugindump -notrelocatable LightDM 0.1 plugins'
401+
402+Module {
403+ Component {
404+ name: "Greeter"
405+ prototype: "QObject"
406+ exports: ["LightDM/Greeter 0.1"]
407+ isCreatable: false
408+ isSingleton: true
409+ exportMetaObjectRevisions: [0]
410+ Property { name: "active"; type: "bool" }
411+ Property { name: "authenticated"; type: "bool"; isReadonly: true }
412+ Property { name: "authenticationUser"; type: "string"; isReadonly: true }
413+ Property { name: "promptless"; type: "bool"; isReadonly: true }
414+ Signal {
415+ name: "showMessage"
416+ Parameter { name: "text"; type: "string" }
417+ Parameter { name: "isError"; type: "bool" }
418+ }
419+ Signal {
420+ name: "showPrompt"
421+ Parameter { name: "text"; type: "string" }
422+ Parameter { name: "isSecret"; type: "bool" }
423+ Parameter { name: "isDefaultPrompt"; type: "bool" }
424+ }
425+ Signal { name: "authenticationComplete" }
426+ Signal {
427+ name: "authenticationUserChanged"
428+ Parameter { name: "user"; type: "string" }
429+ }
430+ Signal { name: "isActiveChanged" }
431+ Signal { name: "isAuthenticatedChanged" }
432+ Signal { name: "showGreeter" }
433+ Signal { name: "hideGreeter" }
434+ Signal {
435+ name: "requestAuthenticationUser"
436+ Parameter { name: "user"; type: "string" }
437+ }
438+ Method {
439+ name: "authenticate"
440+ Parameter { name: "username"; type: "string" }
441+ }
442+ Method { name: "authenticate" }
443+ Method {
444+ name: "respond"
445+ Parameter { name: "response"; type: "string" }
446+ }
447+ Method {
448+ name: "startSessionSync"
449+ type: "bool"
450+ Parameter { name: "session"; type: "string" }
451+ }
452+ Method { name: "startSessionSync"; type: "bool" }
453+ Method {
454+ name: "setIsActive"
455+ Parameter { name: "isActive"; type: "bool" }
456+ }
457+ }
458+ Component {
459+ name: "QAbstractProxyModel"
460+ prototype: "QAbstractItemModel"
461+ Property { name: "sourceModel"; type: "QAbstractItemModel"; isPointer: true }
462+ }
463+ Component {
464+ name: "QLightDM::UsersModel"
465+ prototype: "QAbstractListModel"
466+ exports: ["LightDM/UserRoles 0.1"]
467+ isCreatable: false
468+ exportMetaObjectRevisions: [0]
469+ Enum {
470+ name: "UserModelRoles"
471+ values: {
472+ "NameRole": 256,
473+ "RealNameRole": 257,
474+ "LoggedInRole": 258,
475+ "BackgroundRole": 259,
476+ "SessionRole": 260,
477+ "HasMessagesRole": 261,
478+ "ImagePathRole": 262,
479+ "BackgroundPathRole": 263
480+ }
481+ }
482+ }
483+ Component {
484+ name: "QSortFilterProxyModel"
485+ prototype: "QAbstractProxyModel"
486+ Property { name: "filterRegExp"; type: "QRegExp" }
487+ Property { name: "filterKeyColumn"; type: "int" }
488+ Property { name: "dynamicSortFilter"; type: "bool" }
489+ Property { name: "filterCaseSensitivity"; type: "Qt::CaseSensitivity" }
490+ Property { name: "sortCaseSensitivity"; type: "Qt::CaseSensitivity" }
491+ Property { name: "isSortLocaleAware"; type: "bool" }
492+ Property { name: "sortRole"; type: "int" }
493+ Property { name: "filterRole"; type: "int" }
494+ Method {
495+ name: "setFilterRegExp"
496+ Parameter { name: "pattern"; type: "string" }
497+ }
498+ Method {
499+ name: "setFilterWildcard"
500+ Parameter { name: "pattern"; type: "string" }
501+ }
502+ Method {
503+ name: "setFilterFixedString"
504+ Parameter { name: "pattern"; type: "string" }
505+ }
506+ Method { name: "clear" }
507+ Method { name: "invalidate" }
508+ }
509+ Component {
510+ name: "UnitySortFilterProxyModelQML"
511+ prototype: "QSortFilterProxyModel"
512+ Property { name: "model"; type: "QAbstractItemModel"; isPointer: true }
513+ Property { name: "totalCount"; type: "int"; isReadonly: true }
514+ Property { name: "count"; type: "int"; isReadonly: true }
515+ Property { name: "invertMatch"; type: "bool" }
516+ Signal {
517+ name: "invertMatchChanged"
518+ Parameter { type: "bool" }
519+ }
520+ Method {
521+ name: "get"
522+ type: "QVariantMap"
523+ Parameter { name: "row"; type: "int" }
524+ }
525+ Method {
526+ name: "data"
527+ type: "QVariant"
528+ Parameter { name: "row"; type: "int" }
529+ Parameter { name: "role"; type: "int" }
530+ }
531+ Method { name: "count"; type: "int" }
532+ Method {
533+ name: "findFirst"
534+ type: "int"
535+ Parameter { name: "role"; type: "int" }
536+ Parameter { name: "value"; type: "QVariant" }
537+ }
538+ Method {
539+ name: "mapRowToSource"
540+ type: "int"
541+ Parameter { name: "row"; type: "int" }
542+ }
543+ Method {
544+ name: "mapFromSource"
545+ type: "int"
546+ Parameter { name: "row"; type: "int" }
547+ }
548+ Method {
549+ name: "mapToSource"
550+ type: "int"
551+ Parameter { name: "row"; type: "int" }
552+ }
553+ }
554+ Component {
555+ name: "UserMetricsOutput::ColorTheme"
556+ prototype: "QObject"
557+ Property { name: "start"; type: "QColor"; isReadonly: true }
558+ Property { name: "main"; type: "QColor"; isReadonly: true }
559+ Property { name: "end"; type: "QColor"; isReadonly: true }
560+ Signal {
561+ name: "startChanged"
562+ Parameter { name: "color"; type: "QColor" }
563+ }
564+ Signal {
565+ name: "mainChanged"
566+ Parameter { name: "color"; type: "QColor" }
567+ }
568+ Signal {
569+ name: "endChanged"
570+ Parameter { name: "color"; type: "QColor" }
571+ }
572+ }
573+ Component {
574+ name: "UserMetricsOutput::UserMetrics"
575+ prototype: "QObject"
576+ exports: ["LightDM/Infographic 0.1"]
577+ isCreatable: false
578+ isSingleton: true
579+ exportMetaObjectRevisions: [0]
580+ Property { name: "label"; type: "string"; isReadonly: true }
581+ Property { name: "username"; type: "string" }
582+ Property {
583+ name: "firstColor"
584+ type: "UserMetricsOutput::ColorTheme"
585+ isReadonly: true
586+ isPointer: true
587+ }
588+ Property {
589+ name: "secondColor"
590+ type: "UserMetricsOutput::ColorTheme"
591+ isReadonly: true
592+ isPointer: true
593+ }
594+ Property { name: "firstMonth"; type: "QAbstractItemModel"; isReadonly: true; isPointer: true }
595+ Property { name: "secondMonth"; type: "QAbstractItemModel"; isReadonly: true; isPointer: true }
596+ Property { name: "currentDay"; type: "int"; isReadonly: true }
597+ Signal {
598+ name: "labelChanged"
599+ Parameter { name: "label"; type: "string" }
600+ }
601+ Signal {
602+ name: "usernameChanged"
603+ Parameter { name: "username"; type: "string" }
604+ }
605+ Signal {
606+ name: "firstColorChanged"
607+ Parameter { name: "color"; type: "ColorTheme"; isPointer: true }
608+ }
609+ Signal {
610+ name: "firstMonthChanged"
611+ Parameter { name: "firstMonth"; type: "QAbstractItemModel"; isPointer: true }
612+ }
613+ Signal {
614+ name: "currentDayChanged"
615+ Parameter { name: "currentDay"; type: "int" }
616+ }
617+ Signal {
618+ name: "secondColorChanged"
619+ Parameter { name: "color"; type: "ColorTheme"; isPointer: true }
620+ }
621+ Signal {
622+ name: "secondMonthChanged"
623+ Parameter { name: "secondMonth"; type: "QAbstractItemModel"; isPointer: true }
624+ }
625+ Signal { name: "nextDataSource" }
626+ Signal { name: "readyForDataChange" }
627+ Signal { name: "dataAboutToAppear" }
628+ Signal { name: "dataAppeared" }
629+ Signal { name: "dataAboutToChange" }
630+ Signal { name: "dataChanged" }
631+ Signal { name: "dataAboutToDisappear" }
632+ Signal { name: "dataDisappeared" }
633+ Method { name: "nextDataSourceSlot" }
634+ Method { name: "readyForDataChangeSlot" }
635+ }
636+ Component {
637+ name: "UsersModel"
638+ prototype: "UnitySortFilterProxyModelQML"
639+ exports: ["LightDM/Users 0.1"]
640+ isCreatable: false
641+ isSingleton: true
642+ exportMetaObjectRevisions: [0]
643+ }
644+}
645
646=== added file 'plugins/FullLightDM/Greeter.cpp'
647--- plugins/FullLightDM/Greeter.cpp 1970-01-01 00:00:00 +0000
648+++ plugins/FullLightDM/Greeter.cpp 2015-07-08 19:22:49 +0000
649@@ -0,0 +1,139 @@
650+/*
651+ * Copyright (C) 2013 Canonical, Ltd.
652+ *
653+ * This program is free software; you can redistribute it and/or modify
654+ * it under the terms of the GNU General Public License as published by
655+ * the Free Software Foundation; version 3.
656+ *
657+ * This program is distributed in the hope that it will be useful,
658+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
659+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
660+ * GNU General Public License for more details.
661+ *
662+ * You should have received a copy of the GNU General Public License
663+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
664+ *
665+ * Author: Michael Terry <michael.terry@canonical.com>
666+ */
667+
668+#include "Greeter.h"
669+#include "GreeterPrivate.h"
670+#include <libintl.h>
671+#include <QDebug>
672+
673+GreeterPrivate::GreeterPrivate(Greeter* parent)
674+ : m_greeter(new QLightDM::Greeter(parent)),
675+ m_active(false),
676+ wasPrompted(false),
677+ promptless(false),
678+ q_ptr(parent)
679+{
680+}
681+
682+Greeter::Greeter(QObject* parent)
683+ : QObject(parent),
684+ d_ptr(new GreeterPrivate(this))
685+{
686+ Q_D(Greeter);
687+
688+ connect(d->m_greeter, &QLightDM::Greeter::showMessage,
689+ this, &Greeter::showMessageFilter);
690+ connect(d->m_greeter, &QLightDM::Greeter::showPrompt,
691+ this, &Greeter::showPromptFilter);
692+ connect(d->m_greeter, &QLightDM::Greeter::authenticationComplete,
693+ this, &Greeter::authenticationCompleteFilter);
694+
695+ d->m_greeter->connectSync();
696+}
697+
698+bool Greeter::isActive() const
699+{
700+ Q_D(const Greeter);
701+ return d->m_active;
702+}
703+
704+void Greeter::setIsActive(bool active)
705+{
706+ Q_D(Greeter);
707+ if (d->m_active != active) {
708+ d->m_active = active;
709+ Q_EMIT isActiveChanged();
710+ }
711+}
712+
713+bool Greeter::isAuthenticated() const
714+{
715+ Q_D(const Greeter);
716+ return d->m_greeter->isAuthenticated();
717+}
718+
719+QString Greeter::authenticationUser() const
720+{
721+ Q_D(const Greeter);
722+ return d->m_greeter->authenticationUser();
723+}
724+
725+bool Greeter::promptless() const
726+{
727+ Q_D(const Greeter);
728+ return d->promptless;
729+}
730+
731+void Greeter::authenticate(const QString &username)
732+{
733+ Q_D(Greeter);
734+ d->wasPrompted = false;
735+ if (d->promptless) {
736+ d->promptless = false;
737+ Q_EMIT promptlessChanged();
738+ }
739+
740+ d->m_greeter->authenticate(username);
741+ Q_EMIT isAuthenticatedChanged();
742+ Q_EMIT authenticationUserChanged(username);
743+}
744+
745+void Greeter::respond(const QString &response)
746+{
747+ Q_D(Greeter);
748+ d->m_greeter->respond(response);
749+}
750+
751+bool Greeter::startSessionSync(const QString &session)
752+{
753+ Q_D(Greeter);
754+ return d->m_greeter->startSessionSync(session);
755+}
756+
757+void Greeter::showPromptFilter(const QString &text, QLightDM::Greeter::PromptType type)
758+{
759+ Q_D(Greeter);
760+ d->wasPrompted = true;
761+
762+ bool isDefaultPrompt = (text == dgettext("Linux-PAM", "Password: "));
763+
764+ // Strip prompt of any colons at the end
765+ QString trimmedText = text.trimmed();
766+ if (trimmedText.endsWith(":") || trimmedText.endsWith(":")) {
767+ trimmedText.chop(1);
768+ }
769+
770+ Q_EMIT showPrompt(trimmedText, type == QLightDM::Greeter::PromptTypeSecret, isDefaultPrompt);
771+}
772+
773+void Greeter::showMessageFilter(const QString &text, QLightDM::Greeter::MessageType type)
774+{
775+ Q_EMIT showMessage(text, type == QLightDM::Greeter::MessageTypeError);
776+}
777+
778+void Greeter::authenticationCompleteFilter()
779+{
780+ Q_D(Greeter);
781+ if (!d->wasPrompted) {
782+ d->promptless = true;
783+ Q_EMIT promptlessChanged();
784+ }
785+
786+ Q_EMIT isAuthenticatedChanged();
787+ Q_EMIT authenticationComplete();
788+}
789
790=== added file 'plugins/FullLightDM/Greeter.h'
791--- plugins/FullLightDM/Greeter.h 1970-01-01 00:00:00 +0000
792+++ plugins/FullLightDM/Greeter.h 2015-07-08 19:22:49 +0000
793@@ -0,0 +1,82 @@
794+/*
795+ * Copyright (C) 2012,2013 Canonical, Ltd.
796+ *
797+ * This program is free software; you can redistribute it and/or modify
798+ * it under the terms of the GNU General Public License as published by
799+ * the Free Software Foundation; version 3.
800+ *
801+ * This program is distributed in the hope that it will be useful,
802+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
803+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
804+ * GNU General Public License for more details.
805+ *
806+ * You should have received a copy of the GNU General Public License
807+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
808+ *
809+ * Authors: Michael Terry <michael.terry@canonical.com>
810+ */
811+
812+/* This class is a really tiny filter around QLightDM::Greeter. There are some
813+ operations that we want to edit a bit for the benefit of Qml. Specifically,
814+ we want to chop colons off of any password prompts. But there may be more
815+ such edits in the future, and by inserting ourselves here, we have more
816+ control. */
817+
818+#ifndef UNITY_GREETER_H
819+#define UNITY_GREETER_H
820+
821+#include <QLightDM/Greeter>
822+#include <QtCore/QObject>
823+
824+class GreeterPrivate;
825+
826+class Greeter : public QObject
827+{
828+ Q_OBJECT
829+
830+ Q_PROPERTY(bool active READ isActive WRITE setIsActive NOTIFY isActiveChanged)
831+ Q_PROPERTY(bool authenticated READ isAuthenticated NOTIFY isAuthenticatedChanged)
832+ Q_PROPERTY(QString authenticationUser READ authenticationUser NOTIFY authenticationUserChanged)
833+ Q_PROPERTY(bool promptless READ promptless NOTIFY promptlessChanged)
834+
835+public:
836+ explicit Greeter(QObject* parent=0);
837+
838+ bool isActive() const;
839+ bool isAuthenticated() const;
840+ QString authenticationUser() const;
841+ bool promptless() const;
842+
843+public Q_SLOTS:
844+ void authenticate(const QString &username=QString());
845+ void respond(const QString &response);
846+ bool startSessionSync(const QString &session=QString());
847+ void setIsActive(bool isActive);
848+
849+Q_SIGNALS:
850+ void showMessage(const QString &text, bool isError);
851+ void showPrompt(const QString &text, bool isSecret, bool isDefaultPrompt);
852+ void authenticationComplete();
853+ void authenticationUserChanged(const QString &user);
854+ void isActiveChanged();
855+ void isAuthenticatedChanged();
856+ void promptlessChanged();
857+ void showGreeter();
858+ void hideGreeter();
859+
860+ // This signal is emitted by external agents like indicators, and the UI
861+ // should switch to this user if possible.
862+ void requestAuthenticationUser(const QString &user);
863+
864+protected:
865+ GreeterPrivate * const d_ptr;
866+
867+ Q_DECLARE_PRIVATE(Greeter)
868+
869+private Q_SLOTS:
870+ void showMessageFilter(const QString &text, QLightDM::Greeter::MessageType type);
871+ void showPromptFilter(const QString &text, QLightDM::Greeter::PromptType type);
872+ void authenticationCompleteFilter();
873+};
874+
875+#endif
876
877=== added file 'plugins/FullLightDM/GreeterPrivate.h'
878--- plugins/FullLightDM/GreeterPrivate.h 1970-01-01 00:00:00 +0000
879+++ plugins/FullLightDM/GreeterPrivate.h 2015-07-08 19:22:49 +0000
880@@ -0,0 +1,39 @@
881+/*
882+ * Copyright (C) 2014 Canonical, Ltd.
883+ *
884+ * This program is free software; you can redistribute it and/or modify
885+ * it under the terms of the GNU General Public License as published by
886+ * the Free Software Foundation; version 3.
887+ *
888+ * This program is distributed in the hope that it will be useful,
889+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
890+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
891+ * GNU General Public License for more details.
892+ *
893+ * You should have received a copy of the GNU General Public License
894+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
895+ */
896+
897+#ifndef UNITY_GREETER_PRIVATE_H
898+#define UNITY_GREETER_PRIVATE_H
899+
900+#include <QLightDM/Greeter>
901+
902+class GreeterPrivate
903+{
904+public:
905+ explicit GreeterPrivate(Greeter *parent);
906+
907+ QLightDM::Greeter *m_greeter;
908+ bool m_active;
909+ bool wasPrompted;
910+ bool promptless;
911+
912+protected:
913+ Greeter * const q_ptr;
914+
915+private:
916+ Q_DECLARE_PUBLIC(Greeter)
917+};
918+
919+#endif // UNITY_GREETER_PRIVATE_H
920
921=== added file 'plugins/FullLightDM/UsersModel.cpp'
922--- plugins/FullLightDM/UsersModel.cpp 1970-01-01 00:00:00 +0000
923+++ plugins/FullLightDM/UsersModel.cpp 2015-07-08 19:22:49 +0000
924@@ -0,0 +1,70 @@
925+/*
926+ * Copyright (C) 2013 Canonical, Ltd.
927+ *
928+ * This program is free software; you can redistribute it and/or modify
929+ * it under the terms of the GNU General Public License as published by
930+ * the Free Software Foundation; version 3.
931+ *
932+ * This program is distributed in the hope that it will be useful,
933+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
934+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
935+ * GNU General Public License for more details.
936+ *
937+ * You should have received a copy of the GNU General Public License
938+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
939+ *
940+ * Author: Michael Terry <michael.terry@canonical.com>
941+ */
942+
943+#include "UsersModel.h"
944+#include <QLightDM/UsersModel>
945+#include <QtCore/QSortFilterProxyModel>
946+
947+// First, we define an internal class that wraps LightDM's UsersModel. This
948+// class will modify some of the data coming from LightDM. For example, we
949+// modify any empty Real Names into just normal Names.
950+// (We can't modify the data directly in UsersModel below because it won't sort
951+// using the modified data.)
952+class MangleModel : public QSortFilterProxyModel
953+{
954+ Q_OBJECT
955+
956+public:
957+ explicit MangleModel(QObject* parent=0);
958+
959+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
960+};
961+
962+MangleModel::MangleModel(QObject* parent)
963+ : QSortFilterProxyModel(parent)
964+{
965+ setSourceModel(new QLightDM::UsersModel(this));
966+}
967+
968+QVariant MangleModel::data(const QModelIndex &index, int role) const
969+{
970+ QVariant data = QSortFilterProxyModel::data(index, role);
971+
972+ // If user's real name is empty, switch to unix name
973+ if (role == QLightDM::UsersModel::RealNameRole && data.toString().isEmpty()) {
974+ data = QSortFilterProxyModel::data(index, QLightDM::UsersModel::NameRole);
975+ } else if (role == QLightDM::UsersModel::BackgroundPathRole && data.toString().startsWith('#')) {
976+ data = "data:image/svg+xml,<svg><rect width='100%' height='100%' fill='" + data.toString() + "'/></svg>";
977+ }
978+
979+ return data;
980+}
981+
982+// **** Now we continue with actual UsersModel class ****
983+
984+UsersModel::UsersModel(QObject* parent)
985+ : UnitySortFilterProxyModelQML(parent)
986+{
987+ setModel(new MangleModel(this));
988+ setSortCaseSensitivity(Qt::CaseInsensitive);
989+ setSortLocaleAware(true);
990+ setSortRole(QLightDM::UsersModel::RealNameRole);
991+ sort(0);
992+}
993+
994+#include "UsersModel.moc"
995
996=== added file 'plugins/FullLightDM/UsersModel.h'
997--- plugins/FullLightDM/UsersModel.h 1970-01-01 00:00:00 +0000
998+++ plugins/FullLightDM/UsersModel.h 2015-07-08 19:22:49 +0000
999@@ -0,0 +1,37 @@
1000+/*
1001+ * Copyright (C) 2012,2013 Canonical, Ltd.
1002+ *
1003+ * This program is free software; you can redistribute it and/or modify
1004+ * it under the terms of the GNU General Public License as published by
1005+ * the Free Software Foundation; version 3.
1006+ *
1007+ * This program is distributed in the hope that it will be useful,
1008+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1009+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1010+ * GNU General Public License for more details.
1011+ *
1012+ * You should have received a copy of the GNU General Public License
1013+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1014+ *
1015+ * Authors: Michael Terry <michael.terry@canonical.com>
1016+ */
1017+
1018+/* This class is a really tiny filter around QLightDM::UsersModel. There are
1019+ some operations that we want to edit a bit for the benefit of Qml.
1020+ Specifically, we want to sort users according to realName. */
1021+
1022+#ifndef UNITY_USERSMODEL_H
1023+#define UNITY_USERSMODEL_H
1024+
1025+#include <unitysortfilterproxymodelqml.h>
1026+#include <QtCore/QObject>
1027+
1028+class UsersModel : public UnitySortFilterProxyModelQML
1029+{
1030+ Q_OBJECT
1031+
1032+public:
1033+ explicit UsersModel(QObject* parent=0);
1034+};
1035+
1036+#endif
1037
1038=== added file 'plugins/FullLightDM/plugin.cpp'
1039--- plugins/FullLightDM/plugin.cpp 1970-01-01 00:00:00 +0000
1040+++ plugins/FullLightDM/plugin.cpp 2015-07-08 19:22:49 +0000
1041@@ -0,0 +1,69 @@
1042+/*
1043+ * Copyright (C) 2012,2013,2015 Canonical, Ltd.
1044+ *
1045+ * This program is free software; you can redistribute it and/or modify
1046+ * it under the terms of the GNU General Public License as published by
1047+ * the Free Software Foundation; version 3.
1048+ *
1049+ * This program is distributed in the hope that it will be useful,
1050+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1051+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1052+ * GNU General Public License for more details.
1053+ *
1054+ * You should have received a copy of the GNU General Public License
1055+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1056+ *
1057+ */
1058+
1059+#include "plugin.h"
1060+#include "DBusGreeter.h"
1061+#include "DBusGreeterList.h"
1062+#include "Greeter.h"
1063+#include "UsersModel.h"
1064+#include <libusermetricsoutput/ColorTheme.h>
1065+#include <libusermetricsoutput/UserMetrics.h>
1066+#include <QLightDM/UsersModel>
1067+
1068+#include <QAbstractItemModel>
1069+#include <QDBusConnection>
1070+#include <QtQml/qqml.h>
1071+
1072+static QObject *greeter_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
1073+{
1074+ Q_UNUSED(engine)
1075+ Q_UNUSED(scriptEngine)
1076+
1077+ Greeter *greeter = new Greeter();
1078+ new DBusGreeter(greeter, "/");
1079+ new DBusGreeterList(greeter, "/list");
1080+
1081+ return greeter;
1082+}
1083+
1084+static QObject *users_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
1085+{
1086+ Q_UNUSED(engine)
1087+ Q_UNUSED(scriptEngine)
1088+ return new UsersModel();
1089+}
1090+
1091+static QObject *infographic_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
1092+{
1093+ Q_UNUSED(engine)
1094+ Q_UNUSED(scriptEngine)
1095+ return UserMetricsOutput::UserMetrics::getInstance();
1096+}
1097+
1098+void FullLightDMPlugin::registerTypes(const char *uri)
1099+{
1100+ qmlRegisterType<QAbstractItemModel>();
1101+ qmlRegisterType<UserMetricsOutput::ColorTheme>();
1102+
1103+ Q_ASSERT(uri == QLatin1String("FullLightDM"));
1104+ qRegisterMetaType<QLightDM::Greeter::MessageType>("QLightDM::Greeter::MessageType");
1105+ qRegisterMetaType<QLightDM::Greeter::PromptType>("QLightDM::Greeter::PromptType");
1106+ qmlRegisterSingletonType<QLightDM::Greeter>(uri, 0, 1, "Greeter", greeter_provider);
1107+ qmlRegisterSingletonType<UsersModel>(uri, 0, 1, "Users", users_provider);
1108+ qmlRegisterUncreatableType<QLightDM::UsersModel>(uri, 0, 1, "UserRoles", "Type is not instantiable");
1109+ qmlRegisterSingletonType<UserMetricsOutput::UserMetrics>(uri, 0, 1, "Infographic", infographic_provider);
1110+}
1111
1112=== added file 'plugins/FullLightDM/plugin.h'
1113--- plugins/FullLightDM/plugin.h 1970-01-01 00:00:00 +0000
1114+++ plugins/FullLightDM/plugin.h 2015-07-08 19:22:49 +0000
1115@@ -0,0 +1,33 @@
1116+/*
1117+ * Copyright (C) 2012,2013,2015 Canonical, Ltd.
1118+ *
1119+ * This program is free software; you can redistribute it and/or modify
1120+ * it under the terms of the GNU General Public License as published by
1121+ * the Free Software Foundation; version 3.
1122+ *
1123+ * This program is distributed in the hope that it will be useful,
1124+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1125+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1126+ * GNU General Public License for more details.
1127+ *
1128+ * You should have received a copy of the GNU General Public License
1129+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1130+ *
1131+ */
1132+
1133+#ifndef FULL_LIGHTDM_PLUGIN_H
1134+#define FULL_LIGHTDM_PLUGIN_H
1135+
1136+#include <QtQml/QQmlEngine>
1137+#include <QtQml/QQmlExtensionPlugin>
1138+
1139+class FullLightDMPlugin : public QQmlExtensionPlugin
1140+{
1141+ Q_OBJECT
1142+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
1143+
1144+public:
1145+ void registerTypes(const char *uri) override;
1146+};
1147+
1148+#endif /* FULL_LIGHTDM_PLUGIN_H */
1149
1150=== added file 'plugins/FullLightDM/qmldir'
1151--- plugins/FullLightDM/qmldir 1970-01-01 00:00:00 +0000
1152+++ plugins/FullLightDM/qmldir 2015-07-08 19:22:49 +0000
1153@@ -0,0 +1,3 @@
1154+module FullLightDM
1155+plugin FullLightDM-qml
1156+typeinfo FullLightDM.qmltypes
1157
1158=== renamed directory 'plugins/LightDM' => 'plugins/IntegratedLightDM'
1159=== modified file 'plugins/IntegratedLightDM/CMakeLists.txt'
1160--- plugins/LightDM/CMakeLists.txt 2015-02-03 12:17:50 +0000
1161+++ plugins/IntegratedLightDM/CMakeLists.txt 2015-07-08 19:22:49 +0000
1162@@ -1,6 +1,4 @@
1163 pkg_check_modules(LIBUSERMETRICSOUTPUT REQUIRED libusermetricsoutput-1)
1164-# TODO: Once we split out a separate greeter process, uncomment these lines
1165-#pkg_check_modules(LIBLIGHTDM REQUIRED liblightdm-qt5-2)
1166
1167 add_subdirectory(liblightdm)
1168
1169@@ -8,8 +6,7 @@
1170 ${CMAKE_CURRENT_SOURCE_DIR}
1171 ${CMAKE_CURRENT_BINARY_DIR}
1172 ${CMAKE_SOURCE_DIR}/plugins/Utils
1173- ${CMAKE_SOURCE_DIR}/tests/mocks/LightDM
1174- #${LIBLIGHTDM_INCLUDE_DIRS}
1175+ ${CMAKE_SOURCE_DIR}/tests/mocks/IntegratedLightDM
1176 ${libunity8-private_SOURCE_DIR}
1177 ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
1178 )
1179@@ -23,18 +20,16 @@
1180 UsersModel.cpp
1181 )
1182
1183-add_library(LightDM-qml MODULE
1184+add_library(IntegratedLightDM-qml MODULE
1185 ${QMLPLUGIN_SRC}
1186 )
1187
1188-target_link_libraries(LightDM-qml
1189+target_link_libraries(IntegratedLightDM-qml
1190 integratedLightDM
1191 unity8-private
1192-# TODO: Once we split out a separate greeter process, uncomment these lines
1193-# ${LIBLIGHTDM_LDFLAGS}
1194 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
1195 )
1196
1197-qt5_use_modules(LightDM-qml DBus Gui Qml)
1198+qt5_use_modules(IntegratedLightDM-qml DBus Gui Qml)
1199
1200-add_unity8_plugin(LightDM 0.1 LightDM TARGETS LightDM-qml)
1201+add_unity8_plugin(IntegratedLightDM 0.1 IntegratedLightDM TARGETS IntegratedLightDM-qml)
1202
1203=== renamed file 'plugins/LightDM/LightDM.qmltypes' => 'plugins/IntegratedLightDM/IntegratedLightDM.qmltypes'
1204=== modified file 'plugins/IntegratedLightDM/plugin.cpp'
1205--- plugins/LightDM/plugin.cpp 2014-10-09 14:53:00 +0000
1206+++ plugins/IntegratedLightDM/plugin.cpp 2015-07-08 19:22:49 +0000
1207@@ -1,5 +1,5 @@
1208 /*
1209- * Copyright (C) 2012,2013 Canonical, Ltd.
1210+ * Copyright (C) 2012,2013, 2015 Canonical, Ltd.
1211 *
1212 * This program is free software; you can redistribute it and/or modify
1213 * it under the terms of the GNU General Public License as published by
1214@@ -13,8 +13,6 @@
1215 * You should have received a copy of the GNU General Public License
1216 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1217 *
1218- * Authors: Gerry Boland <gerry.boland@canonical.com>
1219- * Michael Terry <michael.terry@canonical.com>
1220 */
1221
1222 #include "plugin.h"
1223@@ -56,12 +54,12 @@
1224 return UserMetricsOutput::UserMetrics::getInstance();
1225 }
1226
1227-void LightDMPlugin::registerTypes(const char *uri)
1228+void IntegratedLightDMPlugin::registerTypes(const char *uri)
1229 {
1230 qmlRegisterType<QAbstractItemModel>();
1231 qmlRegisterType<UserMetricsOutput::ColorTheme>();
1232
1233- Q_ASSERT(uri == QLatin1String("LightDM"));
1234+ Q_ASSERT(uri == QLatin1String("IntegratedLightDM"));
1235 qRegisterMetaType<QLightDM::Greeter::MessageType>("QLightDM::Greeter::MessageType");
1236 qRegisterMetaType<QLightDM::Greeter::PromptType>("QLightDM::Greeter::PromptType");
1237 qmlRegisterSingletonType<Greeter>(uri, 0, 1, "Greeter", greeter_provider);
1238
1239=== modified file 'plugins/IntegratedLightDM/plugin.h'
1240--- plugins/LightDM/plugin.h 2015-04-30 09:31:51 +0000
1241+++ plugins/IntegratedLightDM/plugin.h 2015-07-08 19:22:49 +0000
1242@@ -1,5 +1,5 @@
1243 /*
1244- * Copyright (C) 2012,2013 Canonical, Ltd.
1245+ * Copyright (C) 2012,2013, 2015 Canonical, Ltd.
1246 *
1247 * This program is free software; you can redistribute it and/or modify
1248 * it under the terms of the GNU General Public License as published by
1249@@ -13,17 +13,15 @@
1250 * You should have received a copy of the GNU General Public License
1251 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1252 *
1253- * Authors: Gerry Boland <gerry.boland@canonical.com>
1254- * Michael Terry <michael.terry@canonical.com>
1255 */
1256
1257-#ifndef LIGHTDM_PLUGIN_H
1258-#define LIGHTDM_PLUGIN_H
1259+#ifndef INTEGRATED_LIGHTDM_PLUGIN_H
1260+#define INTEGRATED_LIGHTDM_PLUGIN_H
1261
1262 #include <QtQml/QQmlEngine>
1263 #include <QtQml/QQmlExtensionPlugin>
1264
1265-class LightDMPlugin : public QQmlExtensionPlugin
1266+class IntegratedLightDMPlugin : public QQmlExtensionPlugin
1267 {
1268 Q_OBJECT
1269 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
1270@@ -32,4 +30,4 @@
1271 void registerTypes(const char *uri) override;
1272 };
1273
1274-#endif
1275+#endif /* INTEGRATED_LIGHTDM_PLUGIN_H */
1276
1277=== modified file 'plugins/IntegratedLightDM/qmldir'
1278--- plugins/LightDM/qmldir 2014-05-02 22:57:00 +0000
1279+++ plugins/IntegratedLightDM/qmldir 2015-07-08 19:22:49 +0000
1280@@ -1,3 +1,3 @@
1281-module LightDM
1282-plugin LightDM-qml
1283-typeinfo LightDM.qmltypes
1284+module IntegratedLightDM
1285+plugin IntegratedLightDM-qml
1286+typeinfo IntegratedLightDM.qmltypes
1287
1288=== modified file 'qml/Components/Dialogs.qml'
1289--- qml/Components/Dialogs.qml 2015-03-26 15:24:04 +0000
1290+++ qml/Components/Dialogs.qml 2015-07-08 19:22:49 +0000
1291@@ -19,7 +19,7 @@
1292 import Unity.Application 0.1
1293 import Unity.Session 0.1
1294 import Ubuntu.Components 1.1
1295-import LightDM 0.1 as LightDM
1296+import "../Greeter"
1297
1298 Item {
1299 id: root
1300@@ -62,6 +62,7 @@
1301 active: false
1302 }
1303
1304+ LightDM{id: lightDM} // Provide backend access
1305 Component {
1306 id: logoutDialogComponent
1307 ShellDialog {
1308@@ -71,7 +72,7 @@
1309 Button {
1310 text: i18n.ctr("Button: Lock the system", "Lock")
1311 onClicked: {
1312- LightDM.Greeter.showGreeter()
1313+ lightDM.greeter.showGreeter()
1314 logoutDialog.hide();
1315 }
1316 }
1317
1318=== added file 'qml/Greeter/FullLightDMImpl.qml'
1319--- qml/Greeter/FullLightDMImpl.qml 1970-01-01 00:00:00 +0000
1320+++ qml/Greeter/FullLightDMImpl.qml 2015-07-08 19:22:49 +0000
1321@@ -0,0 +1,28 @@
1322+/*
1323+ * Copyright (C) 2015 Canonical, Ltd.
1324+ *
1325+ * This program is free software; you can redistribute it and/or modify
1326+ * it under the terms of the GNU General Public License as published by
1327+ * the Free Software Foundation; version 3.
1328+ *
1329+ * This program is distributed in the hope that it will be useful,
1330+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1331+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1332+ * GNU General Public License for more details.
1333+ *
1334+ * You should have received a copy of the GNU General Public License
1335+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1336+ */
1337+
1338+import QtQuick 2.3
1339+import FullLightDM 0.1 as LightDM
1340+
1341+Item{
1342+ id: implementation
1343+
1344+ property var greeter: LightDM.Greeter
1345+ property var infographic: LightDM.Infographic
1346+ property var users: LightDM.Users
1347+ property var userRoles: LightDM.UserRoles
1348+
1349+}
1350
1351=== modified file 'qml/Greeter/Greeter.qml'
1352--- qml/Greeter/Greeter.qml 2015-06-12 16:07:43 +0000
1353+++ qml/Greeter/Greeter.qml 2015-07-08 19:22:49 +0000
1354@@ -16,7 +16,6 @@
1355
1356 import QtQuick 2.3
1357 import AccountsService 0.1
1358-import LightDM 0.1 as LightDM
1359 import Ubuntu.Components 1.1
1360 import Ubuntu.SystemImage 0.1
1361 import Unity.Launcher 0.1
1362@@ -43,7 +42,7 @@
1363 readonly property bool hasLockedApp: lockedApp !== ""
1364
1365 property bool forcedUnlock
1366- readonly property bool locked: LightDM.Greeter.active && !LightDM.Greeter.authenticated && !forcedUnlock
1367+ readonly property bool locked: lightDM.greeter.active && !lightDM.greeter.authenticated && !forcedUnlock
1368
1369 property bool tabletMode
1370 property url viewSource // only used for testing
1371@@ -106,10 +105,11 @@
1372 return d.startUnlock(true /* toTheRight */);
1373 }
1374
1375+ LightDM{id:lightDM} // Provide backend access
1376 QtObject {
1377 id: d
1378
1379- readonly property bool multiUser: LightDM.Users.count > 1
1380+ readonly property bool multiUser: lightDM.users.count > 1
1381 property int currentIndex
1382 property bool waiting
1383
1384@@ -133,15 +133,15 @@
1385 loader.item.reset();
1386 }
1387 currentIndex = uid;
1388- var user = LightDM.Users.data(uid, LightDM.UserRoles.NameRole);
1389+ var user = lightDM.users.data(uid, lightDM.userRoles.NameRole);
1390 AccountsService.user = user;
1391 LauncherModel.setUser(user);
1392- LightDM.Greeter.authenticate(user); // always resets auth state
1393+ lightDM.greeter.authenticate(user); // always resets auth state
1394 }
1395
1396 function login() {
1397 enabled = false;
1398- if (LightDM.Greeter.startSessionSync()) {
1399+ if (lightDM.greeter.startSessionSync()) {
1400 sessionStarted();
1401 if (loader.item) {
1402 loader.item.notifyAuthenticationSucceeded();
1403@@ -228,7 +228,7 @@
1404 root.lockedApp = "";
1405 root.forceActiveFocus();
1406 d.selectUser(d.currentIndex, true);
1407- LightDM.Infographic.readyForDataChange();
1408+ lightDM.infographic.readyForDataChange();
1409 }
1410
1411 Connections {
1412@@ -238,9 +238,9 @@
1413 }
1414 onResponded: {
1415 if (root.locked) {
1416- LightDM.Greeter.respond(response);
1417+ lightDM.greeter.respond(response);
1418 } else {
1419- if (LightDM.Greeter.active && !LightDM.Greeter.authenticated) { // could happen if forcedUnlock
1420+ if (lightDM.greeter.active && !lightDM.greeter.authenticated) { // could happen if forcedUnlock
1421 d.login();
1422 }
1423 loader.item.hide();
1424@@ -306,18 +306,18 @@
1425 Binding {
1426 target: loader.item
1427 property: "userModel"
1428- value: LightDM.Users
1429+ value: lightDM.users
1430 }
1431
1432 Binding {
1433 target: loader.item
1434 property: "infographicModel"
1435- value: LightDM.Infographic
1436+ value: lightDM.infographic
1437 }
1438 }
1439
1440 Connections {
1441- target: LightDM.Greeter
1442+ target: lightDM.greeter
1443
1444 onShowGreeter: root.forceShow()
1445
1446@@ -327,7 +327,7 @@
1447 }
1448
1449 onShowMessage: {
1450- if (!LightDM.Greeter.active) {
1451+ if (!lightDM.greeter.active) {
1452 return; // could happen if hideGreeter() comes in before we prompt
1453 }
1454
1455@@ -346,7 +346,7 @@
1456 onShowPrompt: {
1457 d.waiting = false;
1458
1459- if (!LightDM.Greeter.active) {
1460+ if (!lightDM.greeter.active) {
1461 return; // could happen if hideGreeter() comes in before we prompt
1462 }
1463
1464@@ -356,14 +356,14 @@
1465 onAuthenticationComplete: {
1466 d.waiting = false;
1467
1468- if (LightDM.Greeter.authenticated) {
1469+ if (lightDM.greeter.authenticated) {
1470 AccountsService.failedLogins = 0;
1471 d.login();
1472- if (!LightDM.Greeter.promptless) {
1473+ if (!lightDM.greeter.promptless) {
1474 loader.item.hide();
1475 }
1476 } else {
1477- if (!LightDM.Greeter.promptless) {
1478+ if (!lightDM.greeter.promptless) {
1479 AccountsService.failedLogins++;
1480 }
1481
1482@@ -384,7 +384,7 @@
1483 }
1484
1485 loader.item.notifyAuthenticationFailed();
1486- if (!LightDM.Greeter.promptless) {
1487+ if (!lightDM.greeter.promptless) {
1488 d.selectUser(d.currentIndex, false);
1489 }
1490 }
1491@@ -392,8 +392,8 @@
1492
1493 onRequestAuthenticationUser: {
1494 // Find index for requested user, if it exists
1495- for (var i = 0; i < LightDM.Users.count; i++) {
1496- if (user === LightDM.Users.data(i, LightDM.UserRoles.NameRole)) {
1497+ for (var i = 0; i < lightDM.users.count; i++) {
1498+ if (user === lightDM.users.data(i, lightDM.userRoles.NameRole)) {
1499 d.selectUser(i, true);
1500 return;
1501 }
1502@@ -402,19 +402,19 @@
1503 }
1504
1505 Binding {
1506- target: LightDM.Greeter
1507+ target: lightDM.greeter
1508 property: "active"
1509 value: root.active
1510 }
1511
1512 Binding {
1513- target: LightDM.Infographic
1514+ target: lightDM.infographic
1515 property: "username"
1516- value: AccountsService.statsWelcomeScreen ? LightDM.Users.data(d.currentIndex, LightDM.UserRoles.NameRole) : ""
1517+ value: AccountsService.statsWelcomeScreen ? lightDM.users.data(d.currentIndex, lightDM.userRoles.NameRole) : ""
1518 }
1519
1520 Connections {
1521 target: i18n
1522- onLanguageChanged: LightDM.Infographic.readyForDataChange()
1523+ onLanguageChanged: lightDM.infographic.readyForDataChange()
1524 }
1525 }
1526
1527=== added file 'qml/Greeter/IntegratedLightDMImpl.qml'
1528--- qml/Greeter/IntegratedLightDMImpl.qml 1970-01-01 00:00:00 +0000
1529+++ qml/Greeter/IntegratedLightDMImpl.qml 2015-07-08 19:22:49 +0000
1530@@ -0,0 +1,28 @@
1531+/*
1532+ * Copyright (C) 2015 Canonical, Ltd.
1533+ *
1534+ * This program is free software; you can redistribute it and/or modify
1535+ * it under the terms of the GNU General Public License as published by
1536+ * the Free Software Foundation; version 3.
1537+ *
1538+ * This program is distributed in the hope that it will be useful,
1539+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1540+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1541+ * GNU General Public License for more details.
1542+ *
1543+ * You should have received a copy of the GNU General Public License
1544+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1545+ */
1546+
1547+import QtQuick 2.3
1548+import IntegratedLightDM 0.1 as LightDM
1549+
1550+Item{
1551+ id: implementation
1552+
1553+ property var greeter: LightDM.Greeter
1554+ property var infographic: LightDM.Infographic
1555+ property var users: LightDM.Users
1556+ property var userRoles: LightDM.UserRoles
1557+
1558+}
1559
1560=== added file 'qml/Greeter/LightDM.qml'
1561--- qml/Greeter/LightDM.qml 1970-01-01 00:00:00 +0000
1562+++ qml/Greeter/LightDM.qml 2015-07-08 19:22:49 +0000
1563@@ -0,0 +1,42 @@
1564+/*
1565+ * Copyright (C) 2015 Canonical, Ltd.
1566+ *
1567+ * This program is free software; you can redistribute it and/or modify
1568+ * it under the terms of the GNU General Public License as published by
1569+ * the Free Software Foundation; version 3.
1570+ *
1571+ * This program is distributed in the hope that it will be useful,
1572+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1573+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1574+ * GNU General Public License for more details.
1575+ *
1576+ * You should have received a copy of the GNU General Public License
1577+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1578+ */
1579+
1580+/**
1581+ * Lightweight wrapper that allows for loading integrated/real LightDM
1582+ * plugin
1583+ */
1584+
1585+import QtQuick 2.3
1586+
1587+Loader {
1588+ id: loader
1589+
1590+ property var greeter: d.valid ? loader.item.greeter : null
1591+ property var infographic: d.valid ? loader.item.infographic : null
1592+ property var users: d.valid ? loader.item.users : null
1593+ property var userRoles: d.valid ? loader.item.userRoles : null
1594+
1595+ // TODO: Conditionally load RealLightDMImpl if shell.mode dictates it
1596+ source: shell.mode === "greeter" ?
1597+ "./FullLightDMImpl.qml" : "./IntegratedLightDMImpl.qml"
1598+
1599+ QtObject {
1600+ id: d
1601+
1602+ property bool valid: loader.item !== null
1603+ }
1604+
1605+}
1606
1607=== modified file 'qml/Shell.qml'
1608--- qml/Shell.qml 2015-06-23 17:40:03 +0000
1609+++ qml/Shell.qml 2015-07-08 19:22:49 +0000
1610@@ -26,7 +26,6 @@
1611 import Unity.Connectivity 0.1
1612 import Unity.Launcher 0.1
1613 import Utils 0.1
1614-import LightDM 0.1 as LightDM
1615 import Powerd 0.1
1616 import SessionBroadcast 0.1
1617 import "Greeter"
1618@@ -167,6 +166,7 @@
1619 finishStartUpTimer.start();
1620 }
1621
1622+ LightDM{id: lightDM} // Provide backend access
1623 VolumeControl {
1624 id: volumeControl
1625 }
1626@@ -358,8 +358,8 @@
1627 id: tutorial
1628 objectName: "tutorial"
1629 anchors.fill: parent
1630- active: AccountsService.demoEdges
1631- paused: LightDM.Greeter.active
1632+ active: AccountsService.demoEdges && shell.mode !== "greeter"
1633+ paused: lightDM.greeter.active
1634 launcher: launcher
1635 panel: panel
1636 edgeSize: shell.edgeSize
1637@@ -519,7 +519,7 @@
1638
1639 greeter.notifyAboutToFocusApp("unity8-dash");
1640
1641- var animate = !LightDM.Greeter.active && !stages.shown
1642+ var animate = !lightDM.greeter.active && !stages.shown
1643 dash.setCurrentScope(0, animate, false)
1644 ApplicationManager.requestFocusApplication("unity8-dash")
1645 }
1646
1647=== modified file 'qml/Wizard/Wizard.qml'
1648--- qml/Wizard/Wizard.qml 2015-03-11 14:48:45 +0000
1649+++ qml/Wizard/Wizard.qml 2015-07-08 19:22:49 +0000
1650@@ -43,7 +43,7 @@
1651 Loader {
1652 id: loader
1653 anchors.fill: parent
1654- active: System.wizardEnabled
1655+ active: System.wizardEnabled && shell.mode !== "greeter"
1656 source: "Pages.qml"
1657
1658 Binding {
1659
1660=== modified file 'src/main.cpp'
1661--- src/main.cpp 2015-06-23 12:08:32 +0000
1662+++ src/main.cpp 2015-07-08 19:22:49 +0000
1663@@ -22,6 +22,7 @@
1664 #include <QtQml/QQmlContext>
1665 #include <QLibrary>
1666 #include <QDebug>
1667+#include <QScreen>
1668 #include <csignal>
1669 #include <libintl.h>
1670
1671@@ -118,7 +119,14 @@
1672 view->setSource(source);
1673 QObject::connect(view->engine(), SIGNAL(quit()), application, SLOT(quit()));
1674
1675- if (isMirServer || parser.hasFullscreen()) {
1676+ // FIXME: This is a workaround to make the greeter fullscreen as
1677+ // view->showFullScreen() doesn't work quite right
1678+ if (parser.mode().compare("greeter") == 0) {
1679+ QSize primaryScreenSize = application->primaryScreen()->size();
1680+ view->setHeight(primaryScreenSize.height());
1681+ view->setWidth(primaryScreenSize.width());
1682+ view->show();
1683+ } else if (isMirServer || parser.hasFullscreen()) {
1684 view->showFullScreen();
1685 } else {
1686 view->show();
1687
1688=== modified file 'tests/mocks/CMakeLists.txt'
1689--- tests/mocks/CMakeLists.txt 2015-04-15 14:09:06 +0000
1690+++ tests/mocks/CMakeLists.txt 2015-07-08 19:22:49 +0000
1691@@ -32,7 +32,7 @@
1692 add_subdirectory(GSettings.1.0)
1693 add_subdirectory(indicator-service)
1694 add_subdirectory(libusermetrics)
1695-add_subdirectory(LightDM)
1696+add_subdirectory(IntegratedLightDM)
1697 add_subdirectory(Lights)
1698 add_subdirectory(MeeGo)
1699 add_subdirectory(Powerd)
1700
1701=== renamed directory 'tests/mocks/LightDM' => 'tests/mocks/IntegratedLightDM'
1702=== modified file 'tests/mocks/IntegratedLightDM/CMakeLists.txt'
1703--- tests/mocks/LightDM/CMakeLists.txt 2015-04-01 11:25:54 +0000
1704+++ tests/mocks/IntegratedLightDM/CMakeLists.txt 2015-07-08 19:22:49 +0000
1705@@ -10,16 +10,16 @@
1706 ${CMAKE_CURRENT_SOURCE_DIR}
1707 ${CMAKE_CURRENT_BINARY_DIR}
1708 ${CMAKE_SOURCE_DIR}/plugins/Utils
1709- ${CMAKE_SOURCE_DIR}/plugins/LightDM
1710+ ${CMAKE_SOURCE_DIR}/plugins/IntegratedLightDM
1711 ${CMAKE_SOURCE_DIR}/tests/mocks/libusermetrics
1712 ${libunity8-private_SOURCE_DIR}
1713 )
1714
1715 set(QMLPLUGIN_SRC
1716- ${CMAKE_SOURCE_DIR}/plugins/LightDM/DBusGreeter.cpp
1717- ${CMAKE_SOURCE_DIR}/plugins/LightDM/DBusGreeterList.cpp
1718- ${CMAKE_SOURCE_DIR}/plugins/LightDM/Greeter.cpp
1719- ${CMAKE_SOURCE_DIR}/plugins/LightDM/UsersModel.cpp
1720+ ${CMAKE_SOURCE_DIR}/plugins/IntegratedLightDM/DBusGreeter.cpp
1721+ ${CMAKE_SOURCE_DIR}/plugins/IntegratedLightDM/DBusGreeterList.cpp
1722+ ${CMAKE_SOURCE_DIR}/plugins/IntegratedLightDM/Greeter.cpp
1723+ ${CMAKE_SOURCE_DIR}/plugins/IntegratedLightDM/UsersModel.cpp
1724 ${CMAKE_SOURCE_DIR}/plugins/Utils/unitysortfilterproxymodelqml.cpp
1725 MockGreeter.cpp
1726 MockUsersModel.cpp
1727@@ -42,7 +42,7 @@
1728
1729 qt5_use_modules(MockLightDM-qml DBus Gui Qml)
1730
1731-add_unity8_mock(LightDM 0.1 LightDM
1732+add_unity8_mock(IntegratedLightDM 0.1 IntegratedLightDM
1733 PREFIX mocks
1734 TARGETS MockLightDM-qml
1735 ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_CURRENT_BINARY_DIR}/liblightdm"
1736
1737=== renamed file 'tests/mocks/LightDM/LightDM.qmltypes' => 'tests/mocks/IntegratedLightDM/IntegratedLightDM.qmltypes'
1738--- tests/mocks/LightDM/LightDM.qmltypes 2015-02-13 09:01:16 +0000
1739+++ tests/mocks/IntegratedLightDM/IntegratedLightDM.qmltypes 2015-07-08 19:22:49 +0000
1740@@ -4,7 +4,7 @@
1741 // It is used for QML tooling purposes only.
1742 //
1743 // This file was auto-generated by:
1744-// 'qmlplugindump -notrelocatable LightDM 0.1 tests/mocks'
1745+// 'qmlplugindump -notrelocatable IntegratedLightDM 0.1 tests/mocks'
1746
1747 Module {
1748 Component {
1749@@ -61,7 +61,7 @@
1750 Component {
1751 name: "MockGreeter"
1752 prototype: "Greeter"
1753- exports: ["LightDM/Greeter 0.1"]
1754+ exports: ["IntegratedLightDM/Greeter 0.1"]
1755 isCreatable: false
1756 isSingleton: true
1757 exportMetaObjectRevisions: [0]
1758@@ -74,7 +74,7 @@
1759 Component {
1760 name: "MockUsersModel"
1761 prototype: "UsersModel"
1762- exports: ["LightDM/Users 0.1"]
1763+ exports: ["IntegratedLightDM/Users 0.1"]
1764 isCreatable: false
1765 isSingleton: true
1766 exportMetaObjectRevisions: [0]
1767@@ -92,7 +92,7 @@
1768 Component {
1769 name: "QLightDM::UsersModel"
1770 prototype: "QAbstractListModel"
1771- exports: ["LightDM/UserRoles 0.1"]
1772+ exports: ["IntegratedLightDM/UserRoles 0.1"]
1773 isCreatable: false
1774 exportMetaObjectRevisions: [0]
1775 Enum {
1776@@ -207,7 +207,7 @@
1777 Component {
1778 name: "UserMetricsOutput::UserMetrics"
1779 prototype: "QObject"
1780- exports: ["LightDM/Infographic 0.1"]
1781+ exports: ["IntegratedLightDM/Infographic 0.1"]
1782 isCreatable: false
1783 isSingleton: true
1784 exportMetaObjectRevisions: [0]
1785@@ -246,7 +246,7 @@
1786 }
1787 Signal {
1788 name: "currentDayChanged"
1789- Parameter { name: "currentDay"; type: "int" }
1790+ Parameter { name: "length"; type: "int" }
1791 }
1792 Signal {
1793 name: "secondColorChanged"
1794@@ -264,8 +264,6 @@
1795 Signal { name: "dataChanged" }
1796 Signal { name: "dataAboutToDisappear" }
1797 Signal { name: "dataDisappeared" }
1798- Method { name: "nextDataSourceSlot" }
1799- Method { name: "readyForDataChangeSlot" }
1800 }
1801 Component { name: "UsersModel"; prototype: "UnitySortFilterProxyModelQML" }
1802 }
1803
1804=== modified file 'tests/mocks/IntegratedLightDM/plugin.cpp'
1805--- tests/mocks/LightDM/plugin.cpp 2015-01-20 11:50:19 +0000
1806+++ tests/mocks/IntegratedLightDM/plugin.cpp 2015-07-08 19:22:49 +0000
1807@@ -1,5 +1,5 @@
1808 /*
1809- * Copyright (C) 2014 Canonical, Ltd.
1810+ * Copyright (C) 2014, 2015 Canonical, Ltd.
1811 *
1812 * This program is free software; you can redistribute it and/or modify
1813 * it under the terms of the GNU General Public License as published by
1814@@ -53,12 +53,12 @@
1815 return UserMetricsOutput::UserMetrics::getInstance();
1816 }
1817
1818-void LightDMPlugin::registerTypes(const char *uri)
1819+void IntegratedLightDMPlugin::registerTypes(const char *uri)
1820 {
1821 qmlRegisterType<QAbstractItemModel>();
1822 qmlRegisterType<UserMetricsOutput::ColorTheme>();
1823
1824- Q_ASSERT(uri == QLatin1String("LightDM"));
1825+ Q_ASSERT(uri == QLatin1String("IntegratedLightDM"));
1826 qRegisterMetaType<QLightDM::Greeter::MessageType>("QLightDM::Greeter::MessageType");
1827 qRegisterMetaType<QLightDM::Greeter::PromptType>("QLightDM::Greeter::PromptType");
1828 qmlRegisterSingletonType<MockGreeter>(uri, 0, 1, "Greeter", greeter_provider);
1829
1830=== modified file 'tests/mocks/IntegratedLightDM/plugin.h'
1831--- tests/mocks/LightDM/plugin.h 2015-04-30 09:31:51 +0000
1832+++ tests/mocks/IntegratedLightDM/plugin.h 2015-07-08 19:22:49 +0000
1833@@ -1,5 +1,5 @@
1834 /*
1835- * Copyright (C) 2014 Canonical, Ltd.
1836+ * Copyright (C) 2014, 2015 Canonical, Ltd.
1837 *
1838 * This program is free software; you can redistribute it and/or modify
1839 * it under the terms of the GNU General Public License as published by
1840@@ -20,7 +20,7 @@
1841 #include <QtQml/QQmlEngine>
1842 #include <QtQml/QQmlExtensionPlugin>
1843
1844-class LightDMPlugin : public QQmlExtensionPlugin
1845+class IntegratedLightDMPlugin : public QQmlExtensionPlugin
1846 {
1847 Q_OBJECT
1848 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
1849
1850=== modified file 'tests/mocks/IntegratedLightDM/qmldir'
1851--- tests/mocks/LightDM/qmldir 2014-06-11 15:36:51 +0000
1852+++ tests/mocks/IntegratedLightDM/qmldir 2015-07-08 19:22:49 +0000
1853@@ -1,3 +1,3 @@
1854-module LightDM
1855+module IntegratedLightDM
1856 plugin MockLightDM-qml
1857-typeinfo LightDM.qmltypes
1858+typeinfo IntegratedLightDM.qmltypes
1859
1860=== modified file 'tests/plugins/CMakeLists.txt'
1861--- tests/plugins/CMakeLists.txt 2015-04-24 11:06:05 +0000
1862+++ tests/plugins/CMakeLists.txt 2015-07-08 19:22:49 +0000
1863@@ -1,6 +1,6 @@
1864 add_subdirectory(AccountsService)
1865 add_subdirectory(Greeter)
1866-add_subdirectory(LightDM)
1867+add_subdirectory(IntegratedLightDM)
1868 add_subdirectory(Dash)
1869 add_subdirectory(SessionGrabber)
1870 add_subdirectory(Ubuntu)
1871
1872=== renamed directory 'tests/plugins/LightDM' => 'tests/plugins/IntegratedLightDM'
1873=== modified file 'tests/plugins/IntegratedLightDM/CMakeLists.txt'
1874--- tests/plugins/LightDM/CMakeLists.txt 2015-06-17 12:14:27 +0000
1875+++ tests/plugins/IntegratedLightDM/CMakeLists.txt 2015-07-08 19:22:49 +0000
1876@@ -7,16 +7,16 @@
1877
1878 add_executable(GreeterDBusTestExec
1879 dbus.cpp
1880- ${CMAKE_SOURCE_DIR}/plugins/LightDM/Greeter.cpp
1881+ ${CMAKE_SOURCE_DIR}/plugins/IntegratedLightDM/Greeter.cpp
1882 )
1883 qt5_use_modules(GreeterDBusTestExec Core DBus Quick Test)
1884 target_link_libraries(GreeterDBusTestExec
1885- -L${CMAKE_BINARY_DIR}/tests/mocks/LightDM/liblightdm
1886+ -L${CMAKE_BINARY_DIR}/tests/mocks/IntegratedLightDM/liblightdm
1887 -llightdm-qt5-2
1888 )
1889 target_include_directories(GreeterDBusTestExec PUBLIC
1890- ${CMAKE_SOURCE_DIR}/plugins/LightDM
1891- ${CMAKE_SOURCE_DIR}/tests/mocks/LightDM
1892+ ${CMAKE_SOURCE_DIR}/plugins/IntegratedLightDM
1893+ ${CMAKE_SOURCE_DIR}/tests/mocks/IntegratedLightDM
1894 )
1895 add_unity8_uitest(GreeterDBus dbus-test-runner
1896 ARG_PREFIX "--parameter"
1897@@ -28,34 +28,34 @@
1898
1899 add_executable(GreeterPamTestExec
1900 pam.cpp
1901- ${CMAKE_SOURCE_DIR}/plugins/LightDM/liblightdm/GreeterPrivate.cpp
1902+ ${CMAKE_SOURCE_DIR}/plugins/IntegratedLightDM/liblightdm/GreeterPrivate.cpp
1903 )
1904 qt5_use_modules(GreeterPamTestExec Concurrent Core Test)
1905 target_link_libraries(GreeterPamTestExec
1906 integratedLightDM
1907 )
1908 target_include_directories(GreeterPamTestExec PUBLIC
1909- ${CMAKE_SOURCE_DIR}/plugins/LightDM/liblightdm
1910+ ${CMAKE_SOURCE_DIR}/plugins/IntegratedLightDM/liblightdm
1911 )
1912 add_qmltest_target(testGreeterPam GreeterPamTestExec COMMAND $<TARGET_FILE:GreeterPamTestExec>)
1913
1914 add_executable(GreeterUsersModelTestExec
1915 usersmodel.cpp
1916- ${CMAKE_SOURCE_DIR}/plugins/LightDM/UsersModel.cpp
1917+ ${CMAKE_SOURCE_DIR}/plugins/IntegratedLightDM/UsersModel.cpp
1918 ${CMAKE_SOURCE_DIR}/plugins/Utils/unitysortfilterproxymodelqml.cpp
1919 )
1920 qt5_use_modules(GreeterUsersModelTestExec Core Test)
1921 target_link_libraries(GreeterUsersModelTestExec
1922- -L${CMAKE_BINARY_DIR}/tests/mocks/LightDM/liblightdm
1923+ -L${CMAKE_BINARY_DIR}/tests/mocks/IntegratedLightDM/liblightdm
1924 -llightdm-qt5-2
1925 )
1926 target_include_directories(GreeterUsersModelTestExec PUBLIC
1927- ${CMAKE_SOURCE_DIR}/plugins/LightDM
1928+ ${CMAKE_SOURCE_DIR}/plugins/IntegratedLightDM
1929 ${CMAKE_SOURCE_DIR}/plugins/Utils
1930- ${CMAKE_SOURCE_DIR}/tests/mocks/LightDM
1931+ ${CMAKE_SOURCE_DIR}/tests/mocks/IntegratedLightDM
1932 )
1933 add_unity8_uitest(GreeterUsers GreeterUsersModelTestExec
1934 ENVIRONMENT LIBLIGHTDM_MOCK_MODE=full
1935 DEPENDS MockLightDM
1936 LIGHTDM
1937- )
1938\ No newline at end of file
1939+ )
1940
1941=== modified file 'tests/qmltests/Greeter/tst_Greeter.qml'
1942--- tests/qmltests/Greeter/tst_Greeter.qml 2015-03-02 21:34:02 +0000
1943+++ tests/qmltests/Greeter/tst_Greeter.qml 2015-07-08 19:22:49 +0000
1944@@ -20,7 +20,7 @@
1945 import "../../../qml/Greeter"
1946 import Ubuntu.Components 0.1
1947 import AccountsService 0.1
1948-import LightDM 0.1 as LightDM
1949+import IntegratedLightDM 0.1 as LightDM
1950 import Unity.Test 0.1 as UT
1951
1952 Item {
1953
1954=== modified file 'tests/qmltests/Greeter/tst_Infographics.qml'
1955--- tests/qmltests/Greeter/tst_Infographics.qml 2015-01-20 11:50:19 +0000
1956+++ tests/qmltests/Greeter/tst_Infographics.qml 2015-07-08 19:22:49 +0000
1957@@ -20,7 +20,7 @@
1958 import "../../../qml/Greeter"
1959 import Ubuntu.Components 0.1
1960 import Unity.Test 0.1 as UT
1961-import LightDM 0.1 as LightDM
1962+import IntegratedLightDM 0.1 as LightDM
1963
1964 Item {
1965 Binding {
1966
1967=== modified file 'tests/qmltests/Greeter/tst_NarrowView.qml'
1968--- tests/qmltests/Greeter/tst_NarrowView.qml 2015-02-23 15:43:41 +0000
1969+++ tests/qmltests/Greeter/tst_NarrowView.qml 2015-07-08 19:22:49 +0000
1970@@ -18,7 +18,7 @@
1971 import QtTest 1.0
1972 import ".."
1973 import "../../../qml/Greeter"
1974-import LightDM 0.1 as LightDM
1975+import IntegratedLightDM 0.1 as LightDM
1976 import Ubuntu.Components 0.1
1977 import Unity.Test 0.1 as UT
1978
1979
1980=== modified file 'tests/qmltests/Greeter/tst_WideView.qml'
1981--- tests/qmltests/Greeter/tst_WideView.qml 2015-03-10 17:59:41 +0000
1982+++ tests/qmltests/Greeter/tst_WideView.qml 2015-07-08 19:22:49 +0000
1983@@ -18,7 +18,7 @@
1984 import QtTest 1.0
1985 import ".."
1986 import "../../../qml/Greeter"
1987-import LightDM 0.1 as LightDM
1988+import IntegratedLightDM 0.1 as LightDM
1989 import Ubuntu.Components 0.1
1990 import Unity.Test 0.1 as UT
1991
1992
1993=== modified file 'tests/qmltests/Tutorial/tst_Tutorial.qml'
1994--- tests/qmltests/Tutorial/tst_Tutorial.qml 2015-06-23 14:05:51 +0000
1995+++ tests/qmltests/Tutorial/tst_Tutorial.qml 2015-07-08 19:22:49 +0000
1996@@ -17,7 +17,8 @@
1997 import QtQuick 2.0
1998 import QtTest 1.0
1999 import AccountsService 0.1
2000-import LightDM 0.1 as LightDM
2001+import GSettings 1.0
2002+import IntegratedLightDM 0.1 as LightDM
2003 import Ubuntu.Components 1.1
2004 import Unity.Application 0.1
2005 import Unity.Test 0.1 as UT
2006
2007=== modified file 'tests/qmltests/tst_Shell.qml'
2008--- tests/qmltests/tst_Shell.qml 2015-06-23 17:40:03 +0000
2009+++ tests/qmltests/tst_Shell.qml 2015-07-08 19:22:49 +0000
2010@@ -18,7 +18,7 @@
2011 import QtTest 1.0
2012 import AccountsService 0.1
2013 import GSettings 1.0
2014-import LightDM 0.1 as LightDM
2015+import IntegratedLightDM 0.1 as LightDM
2016 import Ubuntu.Components 1.1
2017 import Ubuntu.Components.ListItems 1.0 as ListItem
2018 import Ubuntu.Telephony 0.1 as Telephony
2019
2020=== modified file 'tests/qmltests/tst_ShellWithPin.qml'
2021--- tests/qmltests/tst_ShellWithPin.qml 2015-06-23 17:40:03 +0000
2022+++ tests/qmltests/tst_ShellWithPin.qml 2015-07-08 19:22:49 +0000
2023@@ -19,7 +19,7 @@
2024 import QtTest 1.0
2025 import AccountsService 0.1
2026 import GSettings 1.0
2027-import LightDM 0.1 as LightDM
2028+import IntegratedLightDM 0.1 as LightDM
2029 import Ubuntu.SystemImage 0.1
2030 import Ubuntu.Telephony 0.1 as Telephony
2031 import Unity.Application 0.1

Subscribers

People subscribed via source and target branches