author | coredump <coredump> | 2003-11-27 12:39:18 (UTC) |
---|---|---|
committer | coredump <coredump> | 2003-11-27 12:39:18 (UTC) |
commit | d0bf022b91a6b8ae3ffef5438dc924823aacedb9 (patch) (side-by-side diff) | |
tree | 90e6f93fde618a8b16a6970c86a33cdc0c18786f | |
parent | 51ca35ecb7e22fc564ffe62184d4a75aa8537b1d (diff) | |
download | opie-d0bf022b91a6b8ae3ffef5438dc924823aacedb9.zip opie-d0bf022b91a6b8ae3ffef5438dc924823aacedb9.tar.gz opie-d0bf022b91a6b8ae3ffef5438dc924823aacedb9.tar.bz2 |
Bugfix: Headline is visible again with matchin BG image.
Bugfix: Don't open the InputMethod for a Zaurus, it's got a hardware
keyboard
-rw-r--r-- | core/opie-login/loginwindow.ui | 10 | ||||
-rw-r--r-- | core/opie-login/loginwindowimpl.cpp | 19 |
2 files changed, 18 insertions, 11 deletions
diff --git a/core/opie-login/loginwindow.ui b/core/opie-login/loginwindow.ui index 245e942..10c7d80 100644 --- a/core/opie-login/loginwindow.ui +++ b/core/opie-login/loginwindow.ui @@ -1,417 +1,417 @@ <!DOCTYPE UI><UI> <class>LoginWindow</class> <widget> <class>QWidget</class> <property stdset="1"> <name>name</name> <cstring>LoginWindow</cstring> </property> <property stdset="1"> <name>geometry</name> <rect> <x>0</x> <y>0</y> - <width>460</width> + <width>456</width> <height>341</height> </rect> </property> <property stdset="1"> <name>caption</name> <string>Login</string> </property> <property> <name>layoutMargin</name> </property> <property> <name>layoutSpacing</name> </property> <vbox> <property stdset="1"> <name>margin</name> <number>0</number> </property> <property stdset="1"> <name>spacing</name> <number>0</number> </property> <widget> <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> <cstring>Layout7</cstring> </property> <property> <name>layoutMargin</name> </property> <property> <name>layoutSpacing</name> </property> <vbox> <property stdset="1"> <name>margin</name> <number>4</number> </property> <property stdset="1"> <name>spacing</name> <number>4</number> </property> <widget> <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>m_caption</cstring> </property> <property stdset="1"> <name>sizePolicy</name> <sizepolicy> <hsizetype>5</hsizetype> <vsizetype>5</vsizetype> </sizepolicy> </property> <property stdset="1"> <name>font</name> <font> <family>helvetica</family> - <pointsize>18</pointsize> + <pointsize>36</pointsize> <bold>1</bold> </font> </property> <property stdset="1"> <name>autoMask</name> - <bool>true</bool> + <bool>false</bool> </property> <property stdset="1"> <name>backgroundOrigin</name> <enum>ParentOrigin</enum> </property> <property stdset="1"> <name>margin</name> <number>1</number> </property> <property stdset="1"> <name>text</name> <string><center>Welcome to OPIE</center></string> </property> </widget> <widget> <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> <cstring>Layout6</cstring> </property> <property> <name>layoutSpacing</name> </property> <grid> <property stdset="1"> <name>margin</name> <number>0</number> </property> <property stdset="1"> <name>spacing</name> <number>4</number> </property> <widget row="0" column="1" > <class>QComboBox</class> <property stdset="1"> <name>name</name> <cstring>m_user</cstring> </property> <property stdset="1"> <name>autoMask</name> <bool>true</bool> </property> <property stdset="1"> <name>editable</name> <bool>true</bool> </property> <property stdset="1"> <name>autoCompletion</name> <bool>true</bool> </property> </widget> <widget row="0" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>TextLabel1</cstring> </property> <property stdset="1"> <name>autoMask</name> - <bool>true</bool> + <bool>false</bool> </property> <property stdset="1"> <name>backgroundOrigin</name> <enum>ParentOrigin</enum> </property> <property stdset="1"> <name>text</name> <string>User</string> </property> </widget> <widget row="1" column="1" > <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> <cstring>Layout5</cstring> </property> <property> <name>layoutSpacing</name> </property> <hbox> <property stdset="1"> <name>margin</name> <number>0</number> </property> <property stdset="1"> <name>spacing</name> <number>4</number> </property> <widget> <class>QLineEdit</class> <property stdset="1"> <name>name</name> <cstring>m_password</cstring> </property> <property stdset="1"> <name>autoMask</name> <bool>true</bool> </property> <property stdset="1"> <name>echoMode</name> <enum>Password</enum> </property> </widget> <widget> <class>QToolButton</class> <property stdset="1"> <name>name</name> <cstring>ToolButton3</cstring> </property> <property stdset="1"> <name>text</name> <string></string> </property> <property stdset="1"> <name>pixmap</name> <pixmap>image0</pixmap> </property> <property stdset="1"> <name>toggleButton</name> <bool>true</bool> </property> <property stdset="1"> <name>toggleButton</name> <bool>true</bool> </property> </widget> <widget> <class>QToolButton</class> <property stdset="1"> <name>name</name> <cstring>ToolButton1</cstring> </property> <property stdset="1"> <name>text</name> <string></string> </property> <property stdset="1"> <name>pixmap</name> <pixmap>image1</pixmap> </property> </widget> </hbox> </widget> <widget row="1" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>TextLabel2</cstring> </property> <property stdset="1"> <name>autoMask</name> - <bool>true</bool> + <bool>false</bool> </property> <property stdset="1"> <name>backgroundOrigin</name> <enum>ParentOrigin</enum> </property> <property stdset="1"> <name>text</name> <string>Password</string> </property> </widget> </grid> </widget> <widget> <class>Line</class> <property stdset="1"> <name>name</name> <cstring>Line1</cstring> </property> <property stdset="1"> <name>orientation</name> <enum>Horizontal</enum> </property> </widget> <widget> <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> <cstring>Layout3</cstring> </property> <property> <name>layoutSpacing</name> </property> <hbox> <property stdset="1"> <name>margin</name> <number>0</number> </property> <property stdset="1"> <name>spacing</name> <number>4</number> </property> <widget> <class>QPushButton</class> <property stdset="1"> <name>name</name> <cstring>m_login</cstring> </property> <property stdset="1"> <name>autoMask</name> <bool>true</bool> </property> <property stdset="1"> <name>text</name> <string>Login</string> </property> </widget> <widget> <class>QPushButton</class> <property stdset="1"> <name>name</name> <cstring>m_suspend</cstring> </property> <property stdset="1"> <name>autoMask</name> <bool>true</bool> </property> <property stdset="1"> <name>text</name> <string>Suspend</string> </property> </widget> <widget> <class>QPushButton</class> <property stdset="1"> <name>name</name> <cstring>m_menu</cstring> </property> <property stdset="1"> <name>autoMask</name> <bool>true</bool> </property> <property stdset="1"> <name>text</name> <string>Menu</string> </property> </widget> </hbox> </widget> <spacer> <property> <name>name</name> <cstring>Spacer1</cstring> </property> <property stdset="1"> <name>orientation</name> <enum>Vertical</enum> </property> <property stdset="1"> <name>sizeType</name> <enum>Expanding</enum> </property> <property> <name>sizeHint</name> <size> <width>20</width> <height>20</height> </size> </property> </spacer> </vbox> </widget> <widget> <class>QFrame</class> <property stdset="1"> <name>name</name> <cstring>m_taskbar</cstring> </property> <property stdset="1"> <name>frameShape</name> <enum>NoFrame</enum> </property> <property stdset="1"> <name>frameShadow</name> <enum>Raised</enum> </property> <property stdset="1"> <name>margin</name> <number>0</number> </property> </widget> </vbox> </widget> <images> <image> <name>image0</name> <data format="XPM.GZ" length="394">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523234530022230543251d2e253d856405bffcbc54105b19c856360003b0141a808a2983b03284848a298304c108240e15033141045829580cac07ac4e590f5d0c22a4876caf32d45898797a48044caf32c22948e629c39d0457a78ce60f65b8f104ec50d6c366af1e865eb4b0aab5e602008bcd444d</data> </image> <image> <name>image1</name> <data format="XPM.GZ" length="341">789c558fcd0a02310c84ef7d8ad0b915c9bae84d7c04c5a3201e4275d1c32ab8eb41c477b73fa96e43a1f30d4d266d1ced771b728d194619af9efc451ee44ecfbe7f1d8eebb7b1ed92c259506b67c63279dade6fe7a81134e6a9224ac4ae2bc85565075004901c8820731069a648b490effc26eac4a25dcc195373c94231b87a8349fabf894b7a3d27a76af8cf01eb0e534757d70da1bf8a933f2bf30509e84b68</data> </image> </images> <connections> <connection> <sender>ToolButton1</sender> <signal>clicked()</signal> <receiver>m_password</receiver> <slot>clear()</slot> </connection> <connection> <sender>ToolButton3</sender> <signal>toggled(bool)</signal> <receiver>LoginWindow</receiver> <slot>toggleEchoMode(bool)</slot> </connection> <connection> <sender>m_suspend</sender> <signal>clicked()</signal> <receiver>LoginWindow</receiver> <slot>suspend()</slot> </connection> <connection> <sender>m_password</sender> <signal>returnPressed()</signal> <receiver>m_login</receiver> <slot>animateClick()</slot> </connection> <connection> <sender>m_login</sender> <signal>clicked()</signal> <receiver>LoginWindow</receiver> <slot>login()</slot> </connection> <connection> <sender>m_user</sender> <signal>activated(int)</signal> <receiver>m_password</receiver> <slot>setFocus()</slot> </connection> <slot access="public">login()</slot> <slot access="public">suspend()</slot> <slot access="public">toggleEchoMode(bool)</slot> </connections> </UI> diff --git a/core/opie-login/loginwindowimpl.cpp b/core/opie-login/loginwindowimpl.cpp index 577cb41..330fac5 100644 --- a/core/opie-login/loginwindowimpl.cpp +++ b/core/opie-login/loginwindowimpl.cpp @@ -1,247 +1,254 @@ /* =. This file is part of the OPIE Project .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> .>+-= _;:, .> :=|. This file is free software; you can .> <`_, > . <= redistribute it and/or modify it under :`=1 )Y*s>-.-- : the terms of the GNU General Public .="- .-=="i, .._ License as published by the Free Software - . .-<_> .<> Foundation; either version 2 of the License, ._= =} : or (at your option) any later version. .%`+i> _;_. .i_,=:_. -<s. This file is distributed in the hope that + . -:. = it will be useful, but WITHOUT ANY WARRANTY; : .. .:, . . . without even the implied warranty of =_ + =;=|` MERCHANTABILITY or FITNESS FOR A _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General ..}^=.= = ; Public License for more details. ++= -. .` .: : = ...= . :.=- You should have received a copy of the GNU -. .:....=;==+<; General Public License along with this file; -_. . . )=. = see the file COPYING. If not, write to the -- :-=` Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - +#include <qpe/version.h> #include <qapplication.h> #include <qpushbutton.h> #include <qlayout.h> #include <qframe.h> #include <qlineedit.h> #include <qtimer.h> #include <qcombobox.h> #include <qpixmap.h> #include <qlabel.h> #include <qpopupmenu.h> #include <qmessagebox.h> #include <qimage.h> #if QT_VERSION < 300 #include <qgfx_qws.h> #endif #include <qwindowsystem_qws.h> #include <qpe/resource.h> #include <qpe/qcopenvelope_qws.h> #include <qpe/config.h> #include <opie/odevice.h> #include <stdio.h> #include <stdlib.h> #include "loginwindowimpl.h" #include "loginapplication.h" #include "inputmethods.h" using namespace Opie; LoginWindowImpl::LoginWindowImpl ( ) : LoginWindow ( 0, "LOGIN-WINDOW", WStyle_Customize | WStyle_NoBorder | WDestructiveClose ) { QPopupMenu *pop = new QPopupMenu ( this ); pop-> insertItem ( tr( "Restart" ), this, SLOT( restart ( ))); pop-> insertItem ( tr( "Quit" ), this, SLOT( quit ( ))); m_menu-> setPopup ( pop ); QCopChannel *channel = new QCopChannel ( "QPE/TaskBar", this ); connect ( channel, SIGNAL( received ( const QCString &, const QByteArray & )), this, SLOT( receive ( const QCString &, const QByteArray & ))); QHBoxLayout *lay = new QHBoxLayout ( m_taskbar, 4, 4 ); m_input = new InputMethods ( m_taskbar ); connect ( m_input, SIGNAL( inputToggled ( bool )), this, SLOT( calcMaxWindowRect ( ))); lay-> addWidget ( m_input ); lay-> addStretch ( 10 ); setActiveWindow ( ); m_password-> setFocus ( ); m_user-> insertStringList ( lApp-> allUsers ( )); - - QTimer::singleShot ( 0, this, SLOT( showIM ( ))); + + //there is no point in displaying the IM for a zaurus + if (ODevice::inst ( )-> series ( ) != Model_Zaurus){ + QTimer::singleShot ( 0, this, SLOT( showIM ( ))); + } QString opiedir = ::getenv ( "OPIEDIR" ); QPixmap bgpix ( opiedir + "/pics/launcher/opie-background.jpg" ); - if ( !bgpix. isNull ( )) + if ( !bgpix. isNull ( )) { setBackgroundPixmap ( bgpix ); - - m_caption-> setText ( m_caption-> text ( ) + tr( "<center>%1 %2</center>" ). arg ( ODevice::inst ( )-> systemString ( )). arg ( ODevice::inst ( )-> systemVersionString ( ))); + m_caption-> setBackgroundPixmap ( bgpix); + TextLabel1-> setBackgroundPixmap ( bgpix); + TextLabel2-> setBackgroundPixmap ( bgpix); + } + + m_caption-> setText ( tr("<center>Welcome to OPIE %1</center><center>& %2 %3</center>"). arg(QPE_VERSION). arg ( ODevice::inst ( )-> systemString ( )). arg ( ODevice::inst ( )-> systemVersionString ( ))); Config cfg ( "opie-login" ); cfg. setGroup ( "General" ); QString last = cfg. readEntry ( "LastLogin" ); if ( !last. isEmpty ( )) m_user-> setEditText ( last ); calcMaxWindowRect ( ); } LoginWindowImpl::~LoginWindowImpl ( ) { } void LoginWindowImpl::receive ( const QCString &msg, const QByteArray &data ) { QDataStream stream ( data, IO_ReadOnly ); if ( msg == "hideInputMethod()" ) m_input-> hideInputMethod ( ); else if ( msg == "showInputMethod()" ) m_input-> showInputMethod ( ); else if ( msg == "reloadInputMethods()" ) m_input-> loadInputMethods ( ); } void LoginWindowImpl::calcMaxWindowRect ( ) { #ifdef Q_WS_QWS QRect wr; int displayWidth = qApp-> desktop ( )-> width ( ); QRect ir = m_input-> inputRect ( ); if ( ir.isValid() ) wr.setCoords( 0, 0, displayWidth-1, ir.top()-1 ); else wr.setCoords( 0, 0, displayWidth-1, m_taskbar->y()-1 ); #if QT_VERSION < 300 wr = qt_screen-> mapToDevice ( wr, QSize ( qt_screen-> width ( ), qt_screen-> height ( ))); #endif QWSServer::setMaxWindowRect( wr ); #endif } void LoginWindowImpl::keyPressEvent ( QKeyEvent *e ) { switch ( e-> key ( )) { case HardKey_Suspend: suspend ( ); break; case HardKey_Backlight: backlight ( ); break; default: e-> ignore ( ); break; } LoginWindow::keyPressEvent ( e ); } void LoginWindowImpl::toggleEchoMode ( bool t ) { m_password-> setEchoMode ( t ? QLineEdit::Normal : QLineEdit::Password ); } void LoginWindowImpl::showIM ( ) { m_input-> showInputMethod ( ); } void LoginWindowImpl::restart ( ) { qApp-> quit ( ); } void LoginWindowImpl::quit ( ) { lApp-> quitToConsole ( ); } void LoginWindowImpl::suspend ( ) { ODevice::inst ( )-> suspend ( ); QCopEnvelope e("QPE/System", "setBacklight(int)"); e << -3; // Force on } void LoginWindowImpl::backlight ( ) { QCopEnvelope e("QPE/System", "setBacklight(int)"); e << -2; // toggle } class WaitLogo : public QLabel { public: WaitLogo ( ) : QLabel ( 0, "wait hack!", WStyle_Customize | WStyle_NoBorder | WStyle_Tool ) { QImage img = Resource::loadImage ( "launcher/new_wait" ); QPixmap pix; pix. convertFromImage ( img ); setPixmap ( pix ); setAlignment ( AlignCenter ); move ( 0, 0 ); resize ( qApp-> desktop ( )-> width ( ), qApp-> desktop ( )-> height ( )); m_visible = false; show ( ); } virtual void showEvent ( QShowEvent *e ) { QLabel::showEvent ( e ); m_visible = true; } virtual void paintEvent ( QPaintEvent *e ) { QLabel::paintEvent ( e ); if ( m_visible ) qApp-> quit ( ); } private: bool m_visible; }; void LoginWindowImpl::login ( ) { const char *user = ::strdup ( m_user-> currentText ( ). local8Bit ( )); const char *pass = ::strdup ( m_password-> text ( ). local8Bit ( )); if ( !user || !user [0] ) return; if ( !pass ) pass = ""; if ( lApp-> checkPassword ( user, pass )) { Config cfg ( "opie-login" ); cfg. setGroup ( "General" ); cfg. writeEntry ( "LastLogin", user ); cfg. write ( ); lApp-> setLoginAs ( user ); // Draw a big wait icon, the image can be altered in later revisions m_input-> hideInputMethod ( ); new WaitLogo ( ); // WaitLogo::showEvent() calls qApp-> quit() } else { QMessageBox::warning ( this, tr( "Wrong password" ), tr( "The given password is incorrect." )); m_password-> clear ( ); } } |