-rw-r--r-- | Rules.make | 1 | ||||
-rw-r--r-- | core/applets/cardmon/.cvsignore | 6 | ||||
-rw-r--r-- | core/applets/cardmon/config.in | 4 | ||||
-rw-r--r-- | core/applets/cardmon/pcmcia.cpp | 371 | ||||
-rw-r--r-- | core/applets/cardmon/pcmcia.h | 80 | ||||
-rw-r--r-- | core/applets/cardmon/pcmcia.pro | 12 | ||||
-rw-r--r-- | packages | 1 |
7 files changed, 472 insertions, 3 deletions
@@ -55,256 +55,257 @@ else echo ENABLE_SQL_PIM_BACKEND=n >> $@ endif ifeq ($(CONFIG_OPIELOGIN_USEPAM),y) echo CONFIG += OPIELOGIN_USEPAM >> $@ endif ifeq ($(CONFIG_LIBQPE_WITHROHFEEDBACK),y) echo CONFIG += LIBQPE_WITHROHFEEDBACK >> $@ endif ifeq ($(CONFIG_LIBQPE_NO_INLINE_IMAGES),y) echo DEFINES += LIBQPE_NO_INLINE_IMAGES >> $@ endif ifeq ($(CONFIG_OPIE_NO_BUILTIN_SHUTDOWN),y) echo DEFINES += OPIE_NO_BUILTIN_SHUTDOWN >> $@ endif ifeq ($(CONFIG_OPIE_NO_BUILTIN_CALIBRATE),y) echo DEFINES += OPIE_NO_BUILTIN_CALIBRATE >> $@ endif ifeq ($(CONFIG_USE_REALTIME_AUDIO_THREAD),y) echo DEFINES += USE_REALTIME_AUDIO_THREAD >> $@ endif ifeq ($(CONFIG_USE_FILE_NOTIFICATION),y) echo DEFINES += USE_FILE_NOTIFICATION >> $@ endif ifeq ($(CONFIG_QT_QWS_ALLOW_CLOCK),y) echo DEFINES += QT_QWS_ALLOW_OVERCLOCK >> $@ endif ifeq ($(CONFIG_OPIE_NEW_ALLOC),y) echo DEFINES += OPIE_NEW_MALLOC >> $@ endif ifeq ($(CONFIG_OPIE_NO_SOUND_PCM_READ_BITS),y) echo DEFINES += OPIE_NO_SOUND_PCM_READ_BITS >> $@ endif echo DEFINES += OPIE_SOUND_FRAGMENT_SHIFT=$(CONFIG_OPIE_SOUND_FRAGMENT_SHIFT) >> $@ ifeq ($(CONFIG_OPIE_WE_VERSION_OVERRIDE),y) echo DEFINES += OPIE_WE_VERSION=$(CONFIG_OPIE_WE_VERSION) >> $@ endif ifeq ($(CONFIG_OPIE_TASKBAR_LOCK_KEY_STATE),y) echo DEFINES += OPIE_TASKBAR_LOCK_KEY_STATE >> $@ endif # Write LIB dirs and INC dirs... ifeq ($(CONFIG_LIBETPAN_DEP),y) echo LIBETPAN_LIB_DIR = $(CONFIG_LIBETPAN_LIB_DIR) >> $@ echo LIBETPAN_INC_DIR = $(CONFIG_LIBETPAN_INC_DIR) >> $@ endif ifeq ($(CONFIG_LIBPCAP_DEP),y) echo LIBPCAP_LIB_DIR = $(CONFIG_LIBPCAP_LIB_DIR) >> $@ echo LIBPCAP_INC_DIR = $(CONFIG_LIBPCAP_INC_DIR) >> $@ endif ifeq ($(CONFIG_LIBSQLITE_DEP),y) echo LIBSQLITE_LIB_DIR = $(CONFIG_LIBSQLITE_LIB_DIR) >> $@ echo LIBSQLITE_INC_DIR = $(CONFIG_LIBSQLITE_INC_DIR) >> $@ endif ifeq ($(CONFIG_LIBXINE_DEP),y) echo LIBXINE_LIB_DIR = $(CONFIG_LIBXINE_LIB_DIR) >> $@ echo LIBXINE_INC_DIR = $(CONFIG_LIBXINE_INC_DIR) >> $@ endif ifeq ($(CONFIG_LIBBLUEZ_DEP),y) echo LIBBLUEZ_LIB_DIR = $(CONFIG_LIBBLUEZ_LIB_DIR) >> $@ echo LIBBLUEZ_INC_DIR = $(CONFIG_LIBBLUEZ_INC_DIR) >> $@ endif ifeq ($(CONFIG_LIBIPK_DEP),y) echo LIBIPK_LIB_DIR = $(CONFIG_LIBIPK_LIB_DIR) >> $@ echo LIBIPK_INC_DIR = $(CONFIG_LIBIPK_INC_DIR) >> $@ endif ifeq ($(CONFIG_LIBSDK_DEP),y) echo LIBSDL_LIB_DIR = $(CONFIG_LIBSDL_LIB_DIR) >> $@ echo LIBSDL_INC_DIR = $(CONFIG_LIBSDL_INC_DIR) >> $@ endif ifeq ($(CONFIG_LIBSWORD_DEP),y) echo LIBSWORD_LIB_DIR = $(CONFIG_LIBSWORD_LIB_DIR) >> $@ echo LIBSWORD_INC_DIR = $(CONFIG_LIBSWORD_INC_DIR) >> $@ endif ifeq ($(CONFIG_LIBFREETYPE2_DEP),y) echo LIBFREETYPE2_INC_DIR = $(CONFIG_LIBFREETYPE2_INC_DIR) >> $@ endif ifeq ($(CONFIG_LIBFLITE_DEP),y) echo LIBFLITE_LIB_DIR = $(CONFIG_LIBFLITE_LIB_DIR) >> $@ echo LIBFLITE_INC_DIR = $(CONFIG_LIBFLITE_INC_DIR) >> $@ endif $(TOPDIR)/.depends : $(shell if [ -e $(TOPDIR)/config.in ]\; then echo $(TOPDIR)/config.in\; fi\;) $(TOPDIR)/.config $(TOPDIR)/packages @echo Generating dependency information... # add to subdir-y, and add descend rules @cat $(TOPDIR)/packages | grep -v '^#' | \ awk '{print \ ".PHONY : " $$2 "\n" \ "subdir-$$(" $$1 ") += " $$2 "\n\n"; \ print $$2 " : " $$2 "/Makefile\n\t+$$(call descend,$$@,$(filter-out $$@,$$(filter-out $$@,$$(MAKECMDGOALS))))\n"; }' > $(TOPDIR)/.depends cat $(TOPDIR)/packages | grep -v '^#' | \ perl -ne '($$cfg, $$dir, $$pro) = $$_ =~ /^(\S+)\s+(\S+)\s+(\S+)/; if ( -e "$$dir/$$pro" ) { print "$$dir/Makefile : $$dir/$$pro \$$(QMAKE) \$$(OPIEDIR)/gen.pro \$$(OPIEDIR)/.config\n\t\$$(call makefilegen,\$$@)\n\n"; }' \ >> $(TOPDIR)/.depends # interpackage dependency generation @cat $(TOPDIR)/packages | \ $(TOPDIR)/scripts/deps.pl >> $(TOPDIR)/.depends $(TOPDIR)/.depends.cfgs: # config.in interdependencies @echo $(configs) | sed -e 's,/config.in,,g' | ( for i in `cat`; do echo $$i; done ) > dirs @cat dirs | ( for i in `cat`; do if [ "`cat dirs|grep $$i 2>/dev/null|wc -l`" -ne "1" ]; then deps=`cat dirs|grep $$i| grep -v "^$$i$$"|for i in \`cat|sed -e's,^$(TOPDIR)/,$$(TOPDIR)/,g'\`; do echo $$i/config.in; done`; echo `echo $$i/config.in|sed -e 's,^$(TOPDIR)/,$$(TOPDIR)/,'` : $$deps; fi; done ) >> $@ @-rm -f dirs $(QTDIR)/stamp-headers : @-rm -f $(QTDIR)/stamp-headers* ( cd $(QTDIR)/include; \ $(patsubst %,ln -sf ../src/kernel/%;,qgfx_qws.h qwsmouse_qws.h \ qcopchannel_qws.h qwindowsystem_qws.h \ qfontmanager_qws.h qwsdefaultdecoration_qws.h)) touch $@ $(QTDIR)/stamp-headers-x11 : @-rm -f $(QTDIR)/stamp-headers* cd $(QTDIR)/include; $(patsubst %,ln -sf $(OPIEDIR)/x11/libqpe-x11/qt/%;,qgfx_qws.h qwsmouse_qws.h qcopchannel_qws.h qwindowsystem_qws.h qfontmanager_qws.h qwsdefaultdecoration_qws.h) touch $@ $(OPIEDIR)/stamp-headers : @-rm -f $(OPIEDIR)/stamp-headers* mkdir -p $(TOPDIR)/include/qpe \ $(TOPDIR)/include/qtopia \ $(TOPDIR)/include/opie \ $(TOPDIR)/include/opie2 \ $(TOPDIR)/include/opie2/private \ $(TOPDIR)/include/qtopia/private \ $(TOPDIR)/include/sl ( cd include/qpe && rm -f *.h; ln -sf ../../library/*.h .; ln -sf ../../library/backend/*.h .; rm -f *_p.h; ) ( cd include/qtopia && rm -f *.h; ln -sf ../../library/*.h .; ) ( cd include/qtopia/private && rm -f *.h; ln -sf ../../../library/backend/*.h .; ) # libopie2 ( cd include/opie2 && ln -sf ../../libopie2/opiecore/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiecore/device/*.h .; ) + ( cd include/opie2 && ln -sf ../../libopie2/opiecore/linux/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiemm/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiedb/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opienet/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiepim/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiepim/core/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiepim/backend/*.h .; ) ( cd include/opie2/private && ln -sf ../../../libopie2/opiepim/private/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiepim/ui/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opieui/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opieui/fileselector/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opieui/big-screen/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiesecurity/*.h .; ) # auxilliary libraries ( cd include/opie2 && ln -sf ../../libqtaux/*.h .; ) ( cd include/sl && ln -sf ../../libslcompat/*.h .; ) ( cd include/ && ln -sf ../noncore/net/ftplib/*.h .; ) ( cd include/ && ln -sf ../inputmethods/pickboard/pickboardcfg.h .; ) ( cd include/ && ln -sf ../inputmethods/pickboard/pickboardpicks.h .; ) # all ( cd include/opie2; for generatedHeader in `cd ../../libopie2/opieui; ls *.ui | sed -e "s,\.ui,\.h,g"`; do \ ln -sf ../../libopie2/opieui/$$generatedHeader $$generatedHeader; done ) ( cd include/opie2; for generatedHeader in `cd ../../libopie2/opiepim/ui; ls *.ui | sed -e "s,\.ui,\.h,g"`; do \ ln -sf ../../libopie2/opiepim/ui/$$generatedHeader $$generatedHeader; done ) ln -sf ../../library/custom.h $(TOPDIR)/include/qpe/custom.h touch $@ $(OPIEDIR)/stamp-headers-x11 : @-rm -f $(OPIEDIR)/stamp-headers* mkdir -p $(TOPDIR)/include/qpe \ $(TOPDIR)/include/qtopia \ $(TOPDIR)/include/qtopia/private \ $(TOPDIR)/include/opie \ $(TOPDIR)/include/opie2 \ $(TOPDIR)/include/opie2/private \ $(TOPDIR)/include/sl ( cd include/qpe && rm -f *.h; ln -sf ../../library/*.h .; ln -sf ../../library/backend/*.h .; rm -f *_p.h; ) ( cd include/qtopia && rm -f *.h; ln -sf ../../library/*.h .; ) ( cd include/qtopia/private && rm -f *.h; ln -sf ../../../library/backend/*.h .; ) # libopie2 ( cd include/opie2 && ln -sf ../../libopie2/opiecore/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiecore/device/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiemm/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiedb/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opienet/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiepim/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiepim/core/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiepim/backend/*.h .; ) ( cd include/opie2/private && ln -sf ../../../libopie2/opiepim/private/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiepim/ui/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opieui/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opieui/fileselector/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opieui/big-screen/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiesecurity/*.h .; ) # auxilliary libraries ( cd include/opie2 && ln -sf ../../libqtaux/*.h .; ) ( cd include/sl && ln -sf ../../libslcompat/*.h .; ) ( cd include/ && ln -sf ../noncore/net/ftplib/*.h .; ) ( cd include/ && ln -sf ../inputmethods/pickboard/pickboardcfg.h .; ) ( cd include/ && ln -sf ../inputmethods/pickboard/pickboardpicks.h .; ) # all ( cd include/opie2; for generatedHeader in `cd ../../libopie2/opieui; ls *.ui | sed -e "s,\.ui,\.h,g"`; do \ ln -sf ../../libopie2/opieui/$$generatedHeader $$generatedHeader; done ) ( cd include/opie2; for generatedHeader in `cd ../../libopie2/opiepim/ui; ls *.ui | sed -e "s,\.ui,\.h,g"`; do \ ln -sf ../../libopie2/opiepim/ui/$$generatedHeader $$generatedHeader; done ) ln -sf ../../library/custom.h $(TOPDIR)/include/qpe/custom.h # Qtopia ( cd include/qpe; ln -sf ../../x11/libqpe-x11/qpe/*.h .; ) ( cd include/qtopia; ln -sf ../../x11/libqpe-x11/qpe/*.h .; ) touch $@ $(TOPDIR)/library/custom.h : $(TOPDIR)/.config @-rm -f $@ @$(if $(patsubst "%",%,$(CONFIG_CUSTOMFILE)),\ ln -sf $(patsubst "%",%,$(CONFIG_CUSTOMFILE)) $@) @touch $@ $(TOPDIR)/scripts/lxdialog/lxdialog $(TOPDIR)/scripts/kconfig/mconf $(TOPDIR)/scripts/kconfig/conf $(TOPDIR)/scripts/kconfig/qconf $(TOPDIR)/scripts/kconfig/libkconfig.so $(TOPDIR)/scripts/kconfig/gconf $(TOPDIR)/qmake/qmake: +$(call descend,$(shell dirname $@),$(shell basename $@)) menuconfig: $(TOPDIR)/scripts/lxdialog/lxdialog $(TOPDIR)/scripts/kconfig/mconf ./config.in $(TOPDIR)/scripts/kconfig/mconf ./config.in @touch ./.config.stamp xconfig: $(TOPDIR)/scripts/kconfig/qconf $(TOPDIR)/scripts/kconfig/libkconfig.so ./config.in $(TOPDIR)/scripts/kconfig/qconf ./config.in @touch .config.stamp gconfig: $(TOPDIR)/scripts/kconfig/gconf $(TOPDIR)/scripts/kconfig/libkconfig.so ./config.in $(TOPDIR)/scripts/kconfig/gconf ./config.in @touch .config.stamp config: $(TOPDIR)/scripts/kconfig/conf ./config.in $(TOPDIR)/scripts/kconfig/conf ./config.in @touch .config.stamp oldconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in $(TOPDIR)/scripts/kconfig/conf -o ./config.in @touch .config.stamp randconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in $(TOPDIR)/scripts/kconfig/conf -r ./config.in @touch .config.stamp allyesconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in $(TOPDIR)/scripts/kconfig/conf -y ./config.in @touch .config.stamp allnoconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in $(TOPDIR)/scripts/kconfig/conf -n ./config.in @touch .config.stamp defconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in $(TOPDIR)/scripts/kconfig/conf -d ./config.in @touch .config.stamp $(TOPDIR)/qmake/qmake : $(TOPDIR)/mkspecs/default $(TOPDIR)/mkspecs/default : ln -sf linux-g++ $@ $(TOPDIR)/scripts/subst : force @( \ echo 's,\$$QPE_VERSION,$(QPE_VERSION),g'; \ echo 's,\$$OPIE_VERSION,$(OPIE_VERSION),g'; \ echo 's,\$$QTE_VERSION,$(QTE_VERSION),g'; \ echo 's,\$$QTE_REVISION,$(QTE_REVISION),g'; \ diff --git a/core/applets/cardmon/.cvsignore b/core/applets/cardmon/.cvsignore index 37c45ac..d704947 100644 --- a/core/applets/cardmon/.cvsignore +++ b/core/applets/cardmon/.cvsignore @@ -1,5 +1,9 @@ -*.moc +*moc +*.~ Makefile* moc_* +opieobj +obj +moc_ .moc .obj diff --git a/core/applets/cardmon/config.in b/core/applets/cardmon/config.in index 50a52b4..5f5af73 100644 --- a/core/applets/cardmon/config.in +++ b/core/applets/cardmon/config.in @@ -1,4 +1,4 @@ - config CARDMON - boolean "opie-cardmon (monitor cf/sd/mmc card status, and eject function)" + config PCMCIA-APPLET + boolean "opie-pcmciaapplet (monitor and configure pcmcia/cf cards)" default "y" depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2CORE diff --git a/core/applets/cardmon/pcmcia.cpp b/core/applets/cardmon/pcmcia.cpp new file mode 100644 index 0000000..2486f17 --- a/dev/null +++ b/core/applets/cardmon/pcmcia.cpp @@ -0,0 +1,371 @@ +/* + This file is part of the Opie Project + =. (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de> + .=l. + .>+-= + _;:, .> :=|. This program is free software; you can +.> <`_, > . <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- : the terms of the GNU Library 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 program 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 +..}^=.= = ; Library General Public License for more +++= -. .` .: details. + : = ...= . :.=- + -. .:....=;==+<; You should have received a copy of the GNU + -_. . . )=. = Library General Public License along with + -- :-=` this library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ + +#include "pcmcia.h" + +/* OPIE */ +#include <opie2/odebug.h> +#include <opie2/odevice.h> +#include <opie2/oprocess.h> +#include <opie2/oresource.h> +#include <opie2/otaskbarapplet.h> +#include <qpe/applnk.h> +#include <qpe/resource.h> +using namespace Opie::Core; +using namespace Opie::Ui; + +/* QT */ +#include <qcopchannel_qws.h> +#include <qpainter.h> +#include <qfile.h> +#include <qtextstream.h> +#include <qsound.h> +#include <qtimer.h> + +/* STD */ +#include <stdio.h> +#include <unistd.h> +#include <stdlib.h> +#include <string.h> +#include <fcntl.h> +#if defined(_OS_LINUX_) || defined(Q_OS_LINUX) +#include <sys/vfs.h> +#include <mntent.h> +#endif + +PcmciaManager::PcmciaManager( QWidget * parent ) : QWidget( parent ) +{ + pm = Opie::Core::OResource::loadPixmap( "cardmon/pcmcia", Opie::Core::OResource::SmallIcon ); +#if 0 + QCopChannel *channel = new QCopChannel("QPE/System", this); + connect(channel, SIGNAL(received(const QCString&,const QByteArray&)), + this, SLOT(systemMsg(const QCString&,const QByteArray&)) ); +#endif + QCopChannel * pcmciaChannel = new QCopChannel( "QPE/Card", this ); + connect( pcmciaChannel, + SIGNAL( received(const QCString&,const QByteArray&) ), this, + SLOT( cardMessage(const QCString&,const QByteArray&) ) ); + + QCopChannel *sdChannel = new QCopChannel( "QPE/Card", this ); + connect( sdChannel, + SIGNAL( received(const QCString&,const QByteArray&) ), this, + SLOT( cardMessage(const QCString&,const QByteArray&) ) ); + + cardInPcmcia0 = FALSE; + cardInPcmcia1 = FALSE; + cardInSd = FALSE; + + setFocusPolicy( NoFocus ); + + setFixedWidth ( AppLnk::smallIconSize() ); + setFixedHeight ( AppLnk::smallIconSize() ); + + getStatusPcmcia( TRUE ); + getStatusSd( TRUE ); + repaint( FALSE ); + popupMenu = 0; +} + + +PcmciaManager::~PcmciaManager() +{ + delete popupMenu; +} + + +void PcmciaManager::popUp( QString message, QString icon ) +{ + if ( !popupMenu ) { + popupMenu = new QPopupMenu( this ); + } + + popupMenu->clear(); + if ( icon.isEmpty() ) { + popupMenu->insertItem( message, 0 ); + } else { + popupMenu->insertItem( QIconSet( Opie::Core::OResource::loadPixmap( icon, Opie::Core::OResource::SmallIcon ) ), + message, 0 ); + } + + QPoint p = mapToGlobal( QPoint( 0, 0 ) ); + QSize s = popupMenu->sizeHint(); + popupMenu->popup( QPoint( p.x() + ( width() / 2 ) - ( s.width() / 2 ), + p.y() - s.height() ), 0 ); + + QTimer::singleShot( 2000, this, SLOT( popupTimeout() ) ); +} + + +void PcmciaManager::popupTimeout() +{ + popupMenu->hide(); +} + + +void PcmciaManager::mousePressEvent( QMouseEvent * ) +{ + QPopupMenu * menu = new QPopupMenu( this ); + QStringList cmd; + bool execute = true; + + if ( cardInSd ) { + menu->insertItem( QIconSet( Opie::Core::OResource::loadPixmap( "cardmon/ide", Opie::Core::OResource::SmallIcon ) ), + tr( "Eject SD/MMC card" ), 0 ); + } + + if ( cardInPcmcia0 ) { + menu-> + insertItem( QIconSet + ( Opie::Core::OResource::loadPixmap( "cardmon/" + cardInPcmcia0Type, Opie::Core::OResource::SmallIcon ) ), + tr( "Eject card 0: %1" ).arg( cardInPcmcia0Name ), 1 ); + } + + if ( cardInPcmcia1 ) { + menu-> + insertItem( QIconSet + ( Opie::Core::OResource::loadPixmap( "cardmon/" + cardInPcmcia1Type, Opie::Core::OResource::SmallIcon ) ), + tr( "Eject card 1: %1" ).arg( cardInPcmcia1Name ), 2 ); + } + + QPoint p = mapToGlobal( QPoint( 0, 0 ) ); + QSize s = menu->sizeHint(); + int opt = menu->exec( QPoint( p.x() + ( width() / 2 ) - ( s.width() / 2 ), + p.y() - s.height() ), 0 ); + + if ( opt == 1 ) { + m_commandOrig = PCMCIA_Socket1; + cmd << "/sbin/cardctl" << "eject" << "0"; + } else if ( opt == 0 ) { + m_commandOrig = MMC_Socket; + cmd << "umount" << cardSdName; + } else if ( opt == 2 ) { + m_commandOrig = PCMCIA_Socket2; + cmd << "/sbin/cardctl" << "eject" << "1"; + }else + execute = false; + + if ( execute ) + execCommand( cmd ); + + delete menu; +} + + +void PcmciaManager::cardMessage( const QCString & msg, const QByteArray & ) +{ + if ( msg == "stabChanged()" ) { + // odebug << "Pcmcia: stabchanged" << oendl; + getStatusPcmcia(); + } else if ( msg == "mtabChanged()" ) { + // odebug << "CARDMONAPPLET: mtabchanged" << oendl; + getStatusSd(); + } +} + + +bool PcmciaManager::getStatusPcmcia( int showPopUp ) { + + bool cardWas0 = cardInPcmcia0; // remember last state + bool cardWas1 = cardInPcmcia1; + + QString fileName; + + if ( QFile::exists( "/var/run/stab" ) ) { fileName = "/var/run/stab"; } + else if ( QFile::exists( "/var/state/pcmcia/stab" ) ) { fileName = "/var/state/pcmcia/stab"; } + else { fileName = "/var/lib/pcmcia/stab"; } + + QFile f( fileName ); + + if ( f.open( IO_ReadOnly ) ) { + QStringList list; + QTextStream stream( &f ); + QString streamIn; + streamIn = stream.read(); + list = QStringList::split( "\n", streamIn ); + for ( QStringList::Iterator line = list.begin(); line != list.end(); + line++ ) { + if ( ( *line ).startsWith( "Socket 0:" ) ) { + if ( ( *line ).startsWith( "Socket 0: empty" ) && cardInPcmcia0 ) { + cardInPcmcia0 = FALSE; + } else if ( !( *line ).startsWith( "Socket 0: empty" ) + && !cardInPcmcia0 ) { + cardInPcmcia0Name = + ( *line ).mid( ( ( *line ).find( ':' ) + 1 ), + ( *line ).length() - 9 ); + cardInPcmcia0Name.stripWhiteSpace(); + cardInPcmcia0 = TRUE; + show(); + line++; + int pos = ( *line ).find( '\t' ) + 1; + cardInPcmcia0Type = + ( *line ).mid( pos, ( *line ).find( "\t", pos ) - pos ); + } + } else if ( ( *line ).startsWith( "Socket 1:" ) ) { + if ( ( *line ).startsWith( "Socket 1: empty" ) && cardInPcmcia1 ) { + cardInPcmcia1 = FALSE; + } else if ( !( *line ).startsWith( "Socket 1: empty" ) + && !cardInPcmcia1 ) { + cardInPcmcia1Name = + ( *line ).mid( ( ( *line ).find( ':' ) + 1 ), + ( *line ).length() - 9 ); + cardInPcmcia1Name.stripWhiteSpace(); + cardInPcmcia1 = TRUE; + show(); + line++; + int pos = ( *line ).find( '\t' ) + 1; + cardInPcmcia1Type = + ( *line ).mid( pos, ( *line ).find( "\t", pos ) - pos ); + } + } + } + f.close(); + + if ( !showPopUp + && ( cardWas0 != cardInPcmcia0 || cardWas1 != cardInPcmcia1 ) ) { + QString text = QString::null; + QString what = QString::null; + if ( cardWas0 != cardInPcmcia0 ) { + if ( cardInPcmcia0 ) { + text += tr( "New card: " ); + what = "on"; + } else { + text += tr( "Ejected: " ); + what = "off"; + } + text += cardInPcmcia0Name; + popUp( text, "cardmon/" + cardInPcmcia0Type ); + } + + if ( cardWas1 != cardInPcmcia1 ) { + if ( cardInPcmcia1 ) { + text += tr( "New card: " ); + what = "on"; + } else { + text += tr( "Ejected: " ); + what = "off"; + } + text += cardInPcmcia1Name; + popUp( text, "cardmon/" + cardInPcmcia1Type ); + } + #ifndef QT_NO_SOUND + QSound::play( Resource::findSound( "cardmon/card" + what ) ); + #endif + + } + } else { + // no file found + odebug << "no file found" << oendl; + cardInPcmcia0 = FALSE; + cardInPcmcia1 = FALSE; + } + + repaint( FALSE ); + return ( ( cardWas0 == cardInPcmcia0 + && cardWas1 == cardInPcmcia1 ) ? FALSE : TRUE ); + +} + + +bool PcmciaManager::getStatusSd( int showPopUp ) +{ + + bool cardWas = cardInSd; // remember last state + cardInSd = FALSE; + + #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) + + struct mntent *me; + FILE *mntfp = setmntent( "/etc/mtab", "r" ); + + if ( mntfp ) { + while ( ( me = getmntent( mntfp ) ) != 0 ) { + QString fs = QFile::decodeName( me->mnt_fsname ); + //odebug << fs << oendl; + if ( fs.left( 14 ) == "/dev/mmc/part1" || fs.left( 7 ) == "/dev/sd" + || fs.left( 9 ) == "/dev/mmcd" || fs.left(11) == "/dev/mmcblk" ) { + cardInSd = TRUE; + cardSdName = fs; + show(); + } + // else { + // cardInSd = FALSE; + // } + } + endmntent( mntfp ); + } + + if ( !showPopUp && cardWas != cardInSd ) { + QString text = QString::null; + QString what = QString::null; + if ( cardInSd ) { + text += tr("New card: SD/MMC"); + what = "on"; + } else { + text += tr("Ejected: SD/MMC"); + what = "off"; + } + //odebug << "TEXT: " + text << oendl; + #ifndef QT_NO_SOUND + QSound::play( Resource::findSound( "cardmon/card" + what ) ); + #endif + + popUp( text, "cardmon/ide" ); // XX add SD pic + } + #else + #error "Not on Linux" + #endif + repaint( FALSE ); + return ( ( cardWas == cardInSd ) ? FALSE : TRUE ); +} + +void PcmciaManager::paintEvent( QPaintEvent * ) +{ + + QPainter p( this ); + + if ( cardInPcmcia0 || cardInPcmcia1 || cardInSd ) { + p.drawPixmap( 0, 0, pm ); + show(); + } else { + //p.eraseRect(rect()); + hide(); + } +} + +int PcmciaManager::position() +{ + return 7; +} + +void PcmciaManager::execCommand( const QStringList &strList ) +{ +} + +EXPORT_OPIE_APPLET_v1( PcmciaManager ) + diff --git a/core/applets/cardmon/pcmcia.h b/core/applets/cardmon/pcmcia.h new file mode 100644 index 0000000..58a2d42 --- a/dev/null +++ b/core/applets/cardmon/pcmcia.h @@ -0,0 +1,80 @@ +/* + This file is part of the Opie Project + =. (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de> + .=l. + .>+-= + _;:, .> :=|. This program is free software; you can +.> <`_, > . <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- : the terms of the GNU Library 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 program 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 +..}^=.= = ; Library General Public License for more +++= -. .` .: details. + : = ...= . :.=- + -. .:....=;==+<; You should have received a copy of the GNU + -_. . . )=. = Library General Public License along with + -- :-=` this library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ + +#ifndef PCMCIA_H +#define PCMCIA_H + +#include <qwidget.h> +#include <qpixmap.h> +#include <qpopupmenu.h> + +class PcmciaManager : public QWidget +{ + Q_OBJECT +public: + enum { + PCMCIA_Socket1, + PCMCIA_Socket2, + MMC_Socket + }; + + PcmciaManager( QWidget *parent = 0 ); + ~PcmciaManager(); + bool getStatusPcmcia( int showPopUp = FALSE ); + bool getStatusSd( int showPopUp = FALSE ); + static int position(); +private slots: + void cardMessage( const QCString &msg, const QByteArray & ); + void popupTimeout(); + +protected: + void paintEvent( QPaintEvent* ); + void mousePressEvent( QMouseEvent * ); + +private: + void execCommand( const QStringList &command ); + int m_commandOrig; + QPixmap pm; + // pcmcia socket 0 + bool cardInPcmcia0; + QString cardInPcmcia0Name; + QString cardInPcmcia0Type; + // pcmcia socket 1 + bool cardInPcmcia1; + QString cardInPcmcia1Name; + QString cardInPcmcia1Type; + bool cardInSd; + QString cardSdName; // the device which is mounted + void iconShow(); + QPopupMenu *popupMenu; + void popUp(QString message, QString icon = QString::null ); +}; + +#endif + diff --git a/core/applets/cardmon/pcmcia.pro b/core/applets/cardmon/pcmcia.pro new file mode 100644 index 0000000..c4f7b62 --- a/dev/null +++ b/core/applets/cardmon/pcmcia.pro @@ -0,0 +1,12 @@ +TEMPLATE = lib +CONFIG += qt plugin warn_on +HEADERS = pcmcia.h +SOURCES = pcmcia.cpp +TARGET = pcmciaapplet +DESTDIR = $(OPIEDIR)/plugins/applets +INCLUDEPATH += $(OPIEDIR)/include +DEPENDPATH += $(OPIEDIR)/include +LIBS += -lqpe -lopiecore2 +VERSION = 0.1.0 + +include( $(OPIEDIR)/include.pro ) @@ -52,210 +52,211 @@ CONFIG_EXAMPLE_LIBOPIE2MM examples/opiemm opiemm.pro CONFIG_EXAMPLE_LIBOPIE2NET examples/opienet opienet.pro CONFIG_EXAMPLE_LIBOPIE2PIM examples/opiepim opiepim.pro CONFIG_EXAMPLE_LIBOPIE2SECURITY examples/opiesecurity opiesecurity.pro CONFIG_EXAMPLE_LIBOPIE2UI examples/opieui opieui.pro CONFIG_EXAMPLE_MENU examples/menuapplet menuapplet.pro CONFIG_EXAMPLE_VPN examples/networksettings networksettings.pro CONFIG_FIFTEEN noncore/games/fifteen fifteen.pro CONFIG_FILEBROWSER noncore/unsupported/filebrowser filebrowser.pro CONFIG_FLAT noncore/styles/flat flat.pro CONFIG_FORMATTER noncore/tools/formatter formatter.pro CONFIG_FREETYPE freetype freetype.pro CONFIG_FRESH noncore/styles/fresh fresh.pro CONFIG_FTPLIB noncore/net/ftplib ftplib.pro CONFIG_GO noncore/games/go go.pro CONFIG_GSMTOOL noncore/unsupported/gsmtool gsmtool.pro CONFIG_GUTENBROWSER noncore/apps/opie-gutenbrowser opie-gutenbrowser.pro CONFIG_HANDWRITING inputmethods/handwriting handwriting.pro CONFIG_HELPBROWSER core/apps/helpbrowser helpbrowser.pro CONFIG_HOMEAPPLET core/applets/homeapplet homeapplet.pro CONFIG_HOTPLUG_QCOP core/tools/hotplug-qcop hotplug-qcop.pro CONFIG_INTERFACES noncore/settings/networksettings/interfaces interfaces.pro CONFIG_IRDAAPPLET core/applets/irdaapplet irdaapplet.pro CONFIG_JUMPX inputmethods/jumpx jumpx.pro CONFIG_KBILL noncore/games/kbill kbill.pro CONFIG_KCHECKERS noncore/games/kcheckers kcheckers.pro CONFIG_KEYBOARD inputmethods/keyboard keyboard.pro CONFIG_KEYHELPER noncore/applets/keyhelper keyhelper.pro CONFIG_KEYPEBBLE noncore/comm/keypebble keypebble.pro CONFIG_KEYVIEW development/keyview keyview.pro CONFIG_KJUMPX inputmethods/kjumpx kjumpx.pro CONFIG_KPACMAN noncore/games/kpacman kpacman.pro CONFIG_LANGUAGE noncore/settings/language language.pro CONFIG_LAUNCHER core/launcher server.pro CONFIG_LAUNCHER-SETTINGS core/settings/launcher launcher.pro CONFIG_LIBFFMPEG core/multimedia/opieplayer/libffmpeg libffmpeg.pro CONFIG_LIBFLASH core/multimedia/opieplayer/libflash libflash.pro CONFIG_LIBMAD core/multimedia/opieplayer/libmad libmad.pro CONFIG_LIBMAIL noncore/unsupported/mail2/libmail libmail.pro CONFIG_LIBMAILWRAPPER noncore/net/mail/libmailwrapper libmailwrapper.pro CONFIG_LIBMPEG3 core/multimedia/opieplayer/libmpeg3 libmpeg3.pro CONFIG_LIBOPIE2CORE libopie2/opiecore opiecore.pro CONFIG_LIBOPIE2DB libopie2/opiedb opiedb.pro CONFIG_LIBOPIE2EXAMPLES libopie2/examples examples.pro CONFIG_LIBOPIE2MM libopie2/opiemm opiemm.pro CONFIG_LIBOPIE2NET libopie2/opienet opienet.pro CONFIG_LIBOPIE2PIM libopie2/opiepim opiepim.pro CONFIG_LIBOPIE2SECURITY libopie2/opiesecurity opiesecurity.pro CONFIG_LIBOPIE2UI libopie2/opieui opieui.pro CONFIG_LIBOPIETOOTH noncore/net/opietooth/lib lib.pro CONFIG_LIBOPIE noncore/unsupported/libopie libopie.pro CONFIG_LIBQPE library library.pro CONFIG_LIBQPE-X11 x11/libqpe-x11 libqpe-x11.pro CONFIG_LIBQRSYNC rsync rsync.pro CONFIG_LIBQTAUX libqtaux libqtaux.pro CONFIG_LIBSLCOMPAT libslcompat libslcompat.pro CONFIG_LIBSQL libsql libsql.pro CONFIG_LIBTREMOR core/multimedia/opieplayer/vorbis/tremor tremor.pro CONFIG_LIBTREMORPLUGIN core/multimedia/opieplayer/vorbis libtremor.pro CONFIG_LIGHT-AND-POWER core/settings/light-and-power light-and-power.pro CONFIG_LIQUID noncore/styles/liquid liquid.pro CONFIG_LOCKAPPLET core/applets/lockapplet lockapplet.pro CONFIG_LOGOUTAPPLET core/applets/logoutapplet logoutapplet.pro CONFIG_MAIL3 noncore/net/mail mail.pro CONFIG_MAILAPPLET noncore/net/mail/taskbarapplet taskbarapplet.pro CONFIG_MAILIT noncore/unsupported/mailit mailit.pro CONFIG_MAIN_TAB_EXAMPLE examples/main-tab main-tab.pro CONFIG_MEDIUMMOUNT noncore/settings/mediummount mediummount.pro CONFIG_MEMORYAPPLET noncore/applets/memoryapplet memoryapplet.pro CONFIG_METAL noncore/styles/metal metal.pro CONFIG_MINDBREAKER noncore/games/mindbreaker mindbreaker.pro CONFIG_MINESWEEP noncore/games/minesweep minesweep.pro CONFIG_MOBILEMSG noncore/unsupported/mobilemsg mobilemsg.pro CONFIG_MODPLUG core/multimedia/opieplayer/modplug modplug.pro CONFIG_MULTIAUTH_BLUEPING noncore/securityplugins/blueping bluepingplugin.pro CONFIG_MULTIAUTH_DUMMY noncore/securityplugins/dummy dummyplugin.pro CONFIG_MULTIAUTH_NOTICE noncore/securityplugins/notice noticeplugin.pro CONFIG_MULTIAUTH_PIN noncore/securityplugins/pin pinplugin.pro CONFIG_MULTIKEYAPPLET core/applets/multikeyapplet multikeyapplet.pro CONFIG_MULTIKEY inputmethods/multikey multikey.pro CONFIG_NETSYSTEMTIME noncore/settings/netsystemtime netsystemtime.pro CONFIG_NETWORKAPPLET noncore/applets/networkapplet networkapplet.pro CONFIG_NETWORKSETUP noncore/settings/networksettings networksettings.pro CONFIG_NOTESAPPLET noncore/applets/notesapplet notesapplet.pro CONFIG_NS2BT noncore/settings/networksettings2/bluetooth bluetooth.pro CONFIG_NS2GPRS noncore/settings/networksettings2/gprs GPRS.pro CONFIG_NS2CABLE noncore/settings/networksettings2/cable cable.pro CONFIG_NS2CORE noncore/settings/networksettings2/networksettings2 networksettings2.pro CONFIG_NS2OPIETOOTH noncore/settings/networksettings2/opietooth2 opietooth2.pro CONFIG_NS2OPIETOOTHAPPLET noncore/settings/networksettings2/opietooth2_applet opietooth2_applet.pro CONFIG_NS2IRDA noncore/settings/networksettings2/irda irda.pro CONFIG_NS2LANCARD noncore/settings/networksettings2/lancard lancard.pro CONFIG_NS2MODEM noncore/settings/networksettings2/modem modem.pro CONFIG_NS2NETWORK noncore/settings/networksettings2/network network.pro CONFIG_NS2 noncore/settings/networksettings2 networksettings.pro CONFIG_NS2PPP noncore/settings/networksettings2/ppp ppp.pro CONFIG_NS2PROFILE noncore/settings/networksettings2/profile profile.pro CONFIG_NS2USB noncore/settings/networksettings2/usb usb.pro CONFIG_NS2VPN noncore/settings/networksettings2/vpn vpn.pro CONFIG_NS2WLAN noncore/settings/networksettings2/wlan wlan.pro CONFIG_OAPP core/apps/oapp oapp.pro CONFIG_OBEX core/obex obex.pro CONFIG_ODICT noncore/apps/odict odict.pro CONFIG_OIPKG noncore/unsupported/oipkg oipkg.pro CONFIG_OPIEALARM core/opiealarm opiealarm.pro CONFIG_OPIE-CONSOLE noncore/apps/opie-console opie-console.pro CONFIG_OPIE_EYE noncore/graphics/opie-eye phunk_view.pro CONFIG_OPIE_EYE_SLAVE noncore/graphics/opie-eye/slave slave.pro CONFIG_OPIEFTP noncore/net/opieftp opieftp.pro CONFIG_OPIEIRC noncore/net/opieirc opieirc.pro CONFIG_OPIE-LOGIN core/opie-login opie-login.pro CONFIG_OPIEMAIL2 noncore/unsupported/mail2 mail.pro CONFIG_OPIEPLAYER2 noncore/multimedia/opieplayer2 opieplayer2.pro CONFIG_OPIEPLAYER3 noncore/multimedia/opieplayer3 opieplayer3.pro CONFIG_OPIEPLAYER core/multimedia/opieplayer opieplayer.pro CONFIG_OPIE-RDESKTOP noncore/net/opierdesktop opierdesktop.pro CONFIG_OPIE-READER noncore/apps/opie-reader opie-reader.pro CONFIG_OPIE-READER-FLITEDYN noncore/apps/opie-reader/FliteDyn FliteDyn.pro CONFIG_OPIE-READER-FLITEDYN16 noncore/apps/opie-reader/FliteDyn16 FliteDyn16.pro CONFIG_OPIEREC noncore/multimedia/opierec opierec.pro CONFIG_OPIE-SHEET noncore/apps/opie-sheet opie-sheet.pro CONFIG_OPIE-SH noncore/tools/opie-sh opie-sh.pro CONFIG_OPIETOOTH-APPLET noncore/net/opietooth/applet applet.pro CONFIG_OPIETOOTH-MANAGER noncore/net/opietooth/manager manager.pro CONFIG_OPIE-WRITE noncore/apps/opie-write opie-write.pro CONFIG_OSEARCH core/pim/osearch osearch.pro CONFIG_OXYGEN noncore/apps/oxygen oxygen.pro CONFIG_PACKAGEMANAGER noncore/settings/packagemanager packagemanager.pro CONFIG_PARASHOOT noncore/games/parashoot parashoot.pro +CONFIG_PCMCIA-APPLET noncore/applets/pcmcia pcmcia.pro CONFIG_PHASE noncore/styles/phase phase.pro CONFIG_PICKBOARD inputmethods/pickboard pickboard.pro CONFIG_PIMCONVERTER noncore/tools/pimconverter converter.pro CONFIG_POWERCHORD noncore/multimedia/powerchord powerchord.pro CONFIG_PPP noncore/settings/networksettings/ppp ppp.pro CONFIG_PYQUICKLAUNCH-APPLET noncore/applets/pyquicklaunch pyquicklaunch.pro CONFIG_PYQUICKLAUNCHER noncore/tools/pyquicklauncher pyquicklauncher.pro CONFIG_PYTHON-EXAMPLES examples/python bla.pro CONFIG_QASHMONEY noncore/unsupported/qashmoney qashmoney.pro CONFIG_QASTEROIDS noncore/games/qasteroids qasteroids.pro CONFIG_QCOP core/apps/qcop qcop.pro CONFIG_QPDF noncore/unsupported/qpdf qpdf.pro CONFIG_QSS core/apps/qss qss.pro CONFIG_QUICKLAUNCHER core/tools/quicklauncher quicklauncher.pro CONFIG_QWS core/qws qws.pro CONFIG_REMOTE noncore/tools/remote remote.pro CONFIG_RESTARTAPPLET2 core/applets/restartapplet2 restartapplet2.pro CONFIG_RESTARTAPPLET core/applets/restartapplet restartapplet.pro CONFIG_ROTATEAPPLET core/applets/rotateapplet rotateapplet.pro CONFIG_ROTATION noncore/settings/rotation rotation.pro CONFIG_RUNAPPLET core/applets/runapplet runapplet.pro CONFIG_SCREENSHOTAPPLET core/applets/screenshotapplet screenshotapplet.pro CONFIG_SECURITY core/settings/security security.pro CONFIG_MULTIAUTH_DEMO core/settings/security/demo multiauth.pro CONFIG_SFCAVE noncore/games/sfcave sfcave.pro CONFIG_SFCAVE-SDL noncore/games/sfcave-sdl sfcave-sdl.pro CONFIG_SHOWIMG noncore/unsupported/showimg showimg.pro CONFIG_SIMPLE_EXAMPLE examples/simple simple.pro CONFIG_SIMPLE_ICON examples/simple-icon simple-icon.pro CONFIG_SIMPLE_MAIN examples/simple-main simple-main.pro CONFIG_SIMPLE noncore/tools/calc2/simple simple.pro CONFIG_SIMPLE_PIM examples/simple-pim simple-pim.pro CONFIG_SINGLE single single.pro CONFIG_SNAKE noncore/games/snake snake.pro CONFIG_SOLITAIRE noncore/games/solitaire solitaire.pro CONFIG_SOUND noncore/settings/sound sound.pro CONFIG_SSHKEYS noncore/settings/sshkeys sshkeys.pro CONFIG_SUSPENDAPPLET core/applets/suspendapplet suspendapplet.pro CONFIG_SYMLINKER core/symlinker symlinker.pro CONFIG_SYSINFO noncore/settings/sysinfo sysinfo.pro CONFIG_TABLEVIEWER noncore/apps/tableviewer tableviewer.pro CONFIG_TABMANAGER noncore/settings/tabmanager tabmanager.pro CONFIG_TABOAPP core/apps/taboapp taboapp.pro CONFIG_TEST libsql/test test.pro CONFIG_TEST noncore/apps/opie-console/test test.pro CONFIG_TETRIX noncore/games/tetrix tetrix.pro CONFIG_TEXTEDIT core/apps/textedit textedit.pro CONFIG_THEME noncore/styles/theme theme.pro CONFIG_TICTAC noncore/games/tictac tictac.pro CONFIG_TINYKATE noncore/apps/tinykate tinykate.pro CONFIG_TODAY_ADDRESSBOOK core/pim/today/plugins/addressbook addressbook.pro CONFIG_TODAY core/pim/today today.pro CONFIG_TODAY_DATEBOOK core/pim/today/plugins/datebook datebook.pro CONFIG_TODAY_EXAMPLE examples/todayplugin todayplugin.pro CONFIG_TODAY_FORTUNE noncore/todayplugins/fortune fortune.pro CONFIG_TODAY_MAIL core/pim/today/plugins/mail mail.pro CONFIG_TODAY_STOCKTICKERLIB noncore/todayplugins/stockticker/stocktickerlib stocktickerlib.pro CONFIG_TODAY_STOCKTICKER noncore/todayplugins/stockticker/stockticker stockticker.pro CONFIG_TODAY_TODOLIST core/pim/today/plugins/todolist todolist.pro CONFIG_TODAY_WEATHER noncore/todayplugins/weather weather.pro CONFIG_TODO core/pim/todo todo.pro CONFIG_TONLEITER noncore/multimedia/tonleiter tonleiter.pro CONFIG_TRACKER noncore/multimedia/tracker tracker.pro CONFIG_UBROWSER noncore/unsupported/ubrowser ubrowser.pro CONFIG_UNIKEYBOARD inputmethods/unikeyboard unikeyboard.pro CONFIG_USERMANAGER noncore/settings/usermanager usermanager.pro CONFIG_VMEMO core/applets/vmemo vmemo.pro CONFIG_VOLUMEAPPLET core/applets/volumeapplet volumeapplet.pro CONFIG_VOLUMEAPPLET2 noncore/applets/volumeapplet2 volumeapplet2.pro CONFIG_VTAPPLET core/applets/vtapplet vtapplet.pro CONFIG_WAVPLUGIN core/multimedia/opieplayer/wavplugin wavplugin.pro CONFIG_WEBSTYLE noncore/styles/web web.pro CONFIG_WELLENREITER noncore/net/wellenreiter wellenreiter.pro CONFIG_WIRELESSAPPLET noncore/applets/wirelessapplet wirelessapplet.pro CONFIG_WLAN noncore/settings/networksettings/wlan wlan.pro CONFIG_WORDGAME noncore/games/wordgame wordgame.pro CONFIG_YATZEE noncore/games/oyatzee oyatzee.pro CONFIG_ZKBAPPLET noncore/applets/zkbapplet zkbapplet.pro CONFIG_ZLINES noncore/games/zlines zlines.pro CONFIG_ZSAFE noncore/apps/zsafe zsafe.pro CONFIG_ZSAME noncore/games/zsame zsame.pro CONFIG_OPIESTUMBLER noncore/net/opiestumbler opiestumbler.pro |