From 2f29d0ec4bb2355f193d744c890add203bd6f2b2 Mon Sep 17 00:00:00 2001 From: clem Date: Fri, 08 Oct 2004 22:50:28 +0000 Subject: Big commit thanks to a little feature request :-) We now have an O-menu applet to lock the PDA immediately, and the internal way to ask for an authentication (on resume, on start up, on demand or for a simple test) is much cleaner: it's through MultiauthPassword(int lockMode) (instead of the old bool at_poweron) --- (limited to 'core/applets') diff --git a/core/applets/lockapplet/.cvsignore b/core/applets/lockapplet/.cvsignore new file mode 100644 index 0000000..5e2908c --- a/dev/null +++ b/core/applets/lockapplet/.cvsignore @@ -0,0 +1,4 @@ +Makefile* +.moc +.obj + diff --git a/core/applets/lockapplet/config.in b/core/applets/lockapplet/config.in new file mode 100644 index 0000000..ddc3522 --- a/dev/null +++ b/core/applets/lockapplet/config.in @@ -0,0 +1,4 @@ + config LOCKAPPLET + boolean "opie-lockapplet (button in the Opie menu to lock the PDA)" + default "y" + depends ( LIBQPE || LIBQPE-X11 ) && SECURITY diff --git a/core/applets/lockapplet/lock.cpp b/core/applets/lockapplet/lock.cpp new file mode 100644 index 0000000..89f27bb --- a/dev/null +++ b/core/applets/lockapplet/lock.cpp @@ -0,0 +1,84 @@ +#include "lock.h" + +/* OPIE */ +#include + +#include +#include + +/* QT */ +#include +#include +#include + + +LockMenuApplet::LockMenuApplet() + :QObject( 0, "LockMenuApplet" ) +{ +} + +LockMenuApplet::~LockMenuApplet ( ) +{} + +int LockMenuApplet::position() const +{ + return 3; +} + +QString LockMenuApplet::name() const +{ + return tr( "Lock shortcut" ); +} + +QString LockMenuApplet::text() const +{ + return tr( "Lock" ); +} + + +QIconSet LockMenuApplet::icon() const +{ + QPixmap pix; + QImage img = Resource::loadImage( "security/lock" ); + if ( !img.isNull() ) + pix.convertFromImage( img.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); + return pix; +} + +QPopupMenu* LockMenuApplet::popup(QWidget*) const +{ + /* no subdir */ + return 0; +} + +void LockMenuApplet::activated() +{ + /* + QMessageBox::information(0,tr("No white rabbit found"), + tr("No white rabbit was seen near Opie." + "Only the beautiful OpieZilla is available" + "for your pleassure")); + */ + Opie::Security::MultiauthPassword::authenticate(Opie::Security::LockNow); +} + + +QRESULT LockMenuApplet::queryInterface( const QUuid &uuid, QUnknownInterface **iface ) +{ + *iface = 0; + if ( uuid == IID_QUnknown ) + *iface = this; + else if ( uuid == IID_MenuApplet ) + *iface = this; + else + return QS_FALSE; + + if ( *iface ) + (*iface)->addRef(); + return QS_OK; +} + +Q_EXPORT_INTERFACE() +{ + Q_CREATE_INSTANCE( LockMenuApplet ) +} diff --git a/core/applets/lockapplet/lock.h b/core/applets/lockapplet/lock.h new file mode 100644 index 0000000..ff94bce --- a/dev/null +++ b/core/applets/lockapplet/lock.h @@ -0,0 +1,36 @@ +/** + * \file lock.h + * \brief defines a lock button that goes in the 'O' Opie menu + * It's based on the examples/menuapplet code of 2004/10/06. + */ +#ifndef CORE_SETTINGS_SECURITY_LOCKAPPLET_LOCK_H +#define CORE_SETTINGS_SECURITY_LOCKAPPLET_LOCK_H + +#include +#include + +class LockMenuApplet: public QObject, public MenuAppletInterface +{ + + Q_OBJECT + +public: + LockMenuApplet ( ); + virtual ~LockMenuApplet ( ); + + QRESULT queryInterface( const QUuid&, QUnknownInterface** ); + Q_REFCOUNT + + virtual int position() const; + + virtual QString name ( ) const; + virtual QIconSet icon ( ) const; + virtual QString text ( ) const; + /* virtual QString tr( const char* ) const; + virtual QString tr( const char*, const char* ) const; + */ + virtual QPopupMenu *popup ( QWidget *parent ) const; + virtual void activated ( ); +}; + +#endif diff --git a/core/applets/lockapplet/lockapplet.pro b/core/applets/lockapplet/lockapplet.pro new file mode 100644 index 0000000..e0ee780 --- a/dev/null +++ b/core/applets/lockapplet/lockapplet.pro @@ -0,0 +1,12 @@ +TEMPLATE = lib +CONFIG += qt plugn warn_on +HEADERS = lock.h +SOURCES = lock.cpp +TARGET = lockapplet +DESTDIR = $(OPIEDIR)/plugins/applets +INCLUDEPATH += $(OPIEDIR)/include +DEPENDPATH += $(OPIEDIR)/include +LIBS += -lqpe +VERSION = 1.0.0 + +include ( $(OPIEDIR)/include.pro ) diff --git a/core/applets/lockapplet/opie-lockapplet.control b/core/applets/lockapplet/opie-lockapplet.control new file mode 100644 index 0000000..e175a3e --- a/dev/null +++ b/core/applets/lockapplet/opie-lockapplet.control @@ -0,0 +1,11 @@ +Package: opie-lockapplet +Files: plugins/applets/liblockapplet.so* +Priority: optional +Section: opie/applets +Maintainer: Opie Team +Architecture: arm +Depends: task-opie-minimal, opie-security +Description: Lock Opie now + Button to lock Opie (as configured in the Security + settings) on demand. +Version: $QPE_VERSION$EXTRAVERSION -- cgit v0.9.0.2