Diffstat (limited to 'core/opie-login/loginwindowimpl.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/opie-login/loginwindowimpl.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/core/opie-login/loginwindowimpl.cpp b/core/opie-login/loginwindowimpl.cpp index fe2906a..577cb41 100644 --- a/core/opie-login/loginwindowimpl.cpp +++ b/core/opie-login/loginwindowimpl.cpp | |||
@@ -28,80 +28,123 @@ | |||
28 | #include <qapplication.h> | 28 | #include <qapplication.h> |
29 | #include <qpushbutton.h> | 29 | #include <qpushbutton.h> |
30 | #include <qlayout.h> | 30 | #include <qlayout.h> |
31 | #include <qframe.h> | 31 | #include <qframe.h> |
32 | #include <qlineedit.h> | 32 | #include <qlineedit.h> |
33 | #include <qtimer.h> | 33 | #include <qtimer.h> |
34 | #include <qcombobox.h> | 34 | #include <qcombobox.h> |
35 | #include <qpixmap.h> | 35 | #include <qpixmap.h> |
36 | #include <qlabel.h> | 36 | #include <qlabel.h> |
37 | #include <qpopupmenu.h> | 37 | #include <qpopupmenu.h> |
38 | #include <qmessagebox.h> | 38 | #include <qmessagebox.h> |
39 | #include <qimage.h> | 39 | #include <qimage.h> |
40 | #if QT_VERSION < 300 | ||
41 | #include <qgfx_qws.h> | ||
42 | #endif | ||
43 | #include <qwindowsystem_qws.h> | ||
40 | 44 | ||
41 | #include <qpe/resource.h> | 45 | #include <qpe/resource.h> |
42 | #include <qpe/qcopenvelope_qws.h> | 46 | #include <qpe/qcopenvelope_qws.h> |
43 | #include <qpe/config.h> | 47 | #include <qpe/config.h> |
44 | 48 | ||
45 | #include <opie/odevice.h> | 49 | #include <opie/odevice.h> |
46 | 50 | ||
47 | #include <stdio.h> | 51 | #include <stdio.h> |
48 | #include <stdlib.h> | 52 | #include <stdlib.h> |
49 | 53 | ||
50 | #include "loginwindowimpl.h" | 54 | #include "loginwindowimpl.h" |
51 | #include "loginapplication.h" | 55 | #include "loginapplication.h" |
52 | #include "inputmethods.h" | 56 | #include "inputmethods.h" |
53 | 57 | ||
54 | using namespace Opie; | 58 | using namespace Opie; |
55 | 59 | ||
56 | 60 | ||
57 | LoginWindowImpl::LoginWindowImpl ( ) : LoginWindow ( 0, "LOGIN-WINDOW", WStyle_Customize | WStyle_NoBorder | WDestructiveClose ) | 61 | LoginWindowImpl::LoginWindowImpl ( ) : LoginWindow ( 0, "LOGIN-WINDOW", WStyle_Customize | WStyle_NoBorder | WDestructiveClose ) |
58 | { | 62 | { |
59 | QPopupMenu *pop = new QPopupMenu ( this ); | 63 | QPopupMenu *pop = new QPopupMenu ( this ); |
60 | pop-> insertItem ( tr( "Restart" ), this, SLOT( restart ( ))); | 64 | pop-> insertItem ( tr( "Restart" ), this, SLOT( restart ( ))); |
61 | pop-> insertItem ( tr( "Quit" ), this, SLOT( quit ( ))); | 65 | pop-> insertItem ( tr( "Quit" ), this, SLOT( quit ( ))); |
62 | m_menu-> setPopup ( pop ); | 66 | m_menu-> setPopup ( pop ); |
63 | 67 | ||
68 | QCopChannel *channel = new QCopChannel ( "QPE/TaskBar", this ); | ||
69 | connect ( channel, SIGNAL( received ( const QCString &, const QByteArray & )), this, SLOT( receive ( const QCString &, const QByteArray & ))); | ||
70 | |||
64 | QHBoxLayout *lay = new QHBoxLayout ( m_taskbar, 4, 4 ); | 71 | QHBoxLayout *lay = new QHBoxLayout ( m_taskbar, 4, 4 ); |
65 | m_input = new InputMethods ( m_taskbar ); | 72 | m_input = new InputMethods ( m_taskbar ); |
73 | connect ( m_input, SIGNAL( inputToggled ( bool )), this, SLOT( calcMaxWindowRect ( ))); | ||
66 | lay-> addWidget ( m_input ); | 74 | lay-> addWidget ( m_input ); |
67 | lay-> addStretch ( 10 ); | 75 | lay-> addStretch ( 10 ); |
68 | 76 | ||
69 | setActiveWindow ( ); | 77 | setActiveWindow ( ); |
70 | m_password-> setFocus ( ); | 78 | m_password-> setFocus ( ); |
71 | 79 | ||
72 | m_user-> insertStringList ( lApp-> allUsers ( )); | 80 | m_user-> insertStringList ( lApp-> allUsers ( )); |
73 | 81 | ||
74 | QTimer::singleShot ( 0, this, SLOT( showIM ( ))); | 82 | QTimer::singleShot ( 0, this, SLOT( showIM ( ))); |
75 | 83 | ||
76 | QString opiedir = ::getenv ( "OPIEDIR" ); | 84 | QString opiedir = ::getenv ( "OPIEDIR" ); |
77 | QPixmap bgpix ( opiedir + "/pics/launcher/opie-background.jpg" ); | 85 | QPixmap bgpix ( opiedir + "/pics/launcher/opie-background.jpg" ); |
78 | 86 | ||
79 | if ( !bgpix. isNull ( )) | 87 | if ( !bgpix. isNull ( )) |
80 | setBackgroundPixmap ( bgpix ); | 88 | setBackgroundPixmap ( bgpix ); |
81 | 89 | ||
82 | m_caption-> setText ( m_caption-> text ( ) + tr( "<center>%1 %2</center>" ). arg ( ODevice::inst ( )-> systemString ( )). arg ( ODevice::inst ( )-> systemVersionString ( ))); | 90 | m_caption-> setText ( m_caption-> text ( ) + tr( "<center>%1 %2</center>" ). arg ( ODevice::inst ( )-> systemString ( )). arg ( ODevice::inst ( )-> systemVersionString ( ))); |
83 | 91 | ||
84 | Config cfg ( "opie-login" ); | 92 | Config cfg ( "opie-login" ); |
85 | cfg. setGroup ( "General" ); | 93 | cfg. setGroup ( "General" ); |
86 | QString last = cfg. readEntry ( "LastLogin" ); | 94 | QString last = cfg. readEntry ( "LastLogin" ); |
87 | 95 | ||
88 | if ( !last. isEmpty ( )) | 96 | if ( !last. isEmpty ( )) |
89 | m_user-> setEditText ( last ); | 97 | m_user-> setEditText ( last ); |
98 | |||
99 | calcMaxWindowRect ( ); | ||
90 | } | 100 | } |
91 | 101 | ||
92 | LoginWindowImpl::~LoginWindowImpl ( ) | 102 | LoginWindowImpl::~LoginWindowImpl ( ) |
93 | { | 103 | { |
94 | } | 104 | } |
95 | 105 | ||
106 | |||
107 | void LoginWindowImpl::receive ( const QCString &msg, const QByteArray &data ) | ||
108 | { | ||
109 | QDataStream stream ( data, IO_ReadOnly ); | ||
110 | |||
111 | if ( msg == "hideInputMethod()" ) | ||
112 | m_input-> hideInputMethod ( ); | ||
113 | else if ( msg == "showInputMethod()" ) | ||
114 | m_input-> showInputMethod ( ); | ||
115 | else if ( msg == "reloadInputMethods()" ) | ||
116 | m_input-> loadInputMethods ( ); | ||
117 | } | ||
118 | |||
119 | void LoginWindowImpl::calcMaxWindowRect ( ) | ||
120 | { | ||
121 | #ifdef Q_WS_QWS | ||
122 | QRect wr; | ||
123 | int displayWidth = qApp-> desktop ( )-> width ( ); | ||
124 | QRect ir = m_input-> inputRect ( ); | ||
125 | if ( ir.isValid() ) | ||
126 | wr.setCoords( 0, 0, displayWidth-1, ir.top()-1 ); | ||
127 | else | ||
128 | wr.setCoords( 0, 0, displayWidth-1, m_taskbar->y()-1 ); | ||
129 | |||
130 | #if QT_VERSION < 300 | ||
131 | wr = qt_screen-> mapToDevice ( wr, QSize ( qt_screen-> width ( ), qt_screen-> height ( ))); | ||
132 | #endif | ||
133 | |||
134 | QWSServer::setMaxWindowRect( wr ); | ||
135 | #endif | ||
136 | } | ||
137 | |||
138 | |||
96 | void LoginWindowImpl::keyPressEvent ( QKeyEvent *e ) | 139 | void LoginWindowImpl::keyPressEvent ( QKeyEvent *e ) |
97 | { | 140 | { |
98 | switch ( e-> key ( )) { | 141 | switch ( e-> key ( )) { |
99 | case HardKey_Suspend: suspend ( ); | 142 | case HardKey_Suspend: suspend ( ); |
100 | break; | 143 | break; |
101 | case HardKey_Backlight: backlight ( ); | 144 | case HardKey_Backlight: backlight ( ); |
102 | break; | 145 | break; |
103 | default: e-> ignore ( ); | 146 | default: e-> ignore ( ); |
104 | break; | 147 | break; |
105 | } | 148 | } |
106 | LoginWindow::keyPressEvent ( e ); | 149 | LoginWindow::keyPressEvent ( e ); |
107 | } | 150 | } |