150 files changed, 1954 insertions, 857 deletions
diff --git a/core/applets/batteryapplet/battery.cpp b/core/applets/batteryapplet/battery.cpp index 480d261..078ce8d 100644 --- a/core/applets/batteryapplet/battery.cpp +++ b/core/applets/batteryapplet/battery.cpp @@ -1,176 +1,166 @@ /********************************************************************** ** Copyright (C) 2000 Trolltech AS. All rights reserved. ** ** This file is part of Qtopia Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #include "battery.h" #include "batterystatus.h" #include <qpe/applnk.h> #include <qpe/config.h> #include <qpe/power.h> #include <qpe/qpeapplication.h> #include <qpainter.h> #include <qtimer.h> BatteryMeter::BatteryMeter( QWidget *parent ) : QWidget( parent ), charging(false) { ps = new PowerStatus; startTimer( 10000 ); setFixedHeight( AppLnk::smallIconSize() ); chargeTimer = new QTimer( this ); connect( chargeTimer, SIGNAL(timeout()), this, SLOT(chargeTimeout()) ); timerEvent(0); QPEApplication::setStylusOperation( this, QPEApplication::RightOnHold ); Config c( "qpe" ); c.setGroup( "Battery" ); style = c.readNumEntry( "Style", 0 ); } BatteryMeter::~BatteryMeter() { delete ps; } QSize BatteryMeter::sizeHint() const { return QSize(10, height() ); } void BatteryMeter::mousePressEvent( QMouseEvent* e ) { if ( e->button() == RightButton ) { style = 1-style; Config c( "qpe" ); c.setGroup( "Battery" ); c.writeEntry( "Style", style ); repaint( true ); } QWidget::mousePressEvent( e ); } void BatteryMeter::mouseReleaseEvent( QMouseEvent* e) { if ( batteryView && batteryView->isVisible() ) { delete (QWidget *) batteryView; } else { if ( !batteryView ) batteryView = new BatteryStatus( ps ); batteryView->showMaximized(); batteryView->raise(); batteryView->show(); } } void BatteryMeter::timerEvent( QTimerEvent * ) { PowerStatus prev = *ps; *ps = PowerStatusManager::readStatus(); if ( prev != *ps ) { percent = ps->batteryPercentRemaining(); if ( !charging && ps->batteryStatus() == PowerStatus::Charging && percent < 0 ) { percent = 0; charging = true; chargeTimer->start( 500 ); } else if ( charging && ps->batteryStatus() != PowerStatus::Charging ) { charging = false; chargeTimer->stop(); if ( batteryView ) batteryView->updatePercent( percent ); } repaint( style != 0 ); if ( batteryView ) batteryView->repaint(); } } void BatteryMeter::chargeTimeout() { percent += 20; if ( percent > 100 ) percent = 0; repaint(FALSE); if ( batteryView ) batteryView->updatePercent( percent ); } void BatteryMeter::paintEvent( QPaintEvent* ) { if ( style == 1 ) { QPainter p(this); QFont f( "Fixed", AppLnk::smallIconSize()/2 ); QFontMetrics fm( f ); p.setFont( f ); - if ( percent > 98 ) { - p.drawText( 0, 0, width(), height(), Qt::AlignCenter, tr( "F" ) ); - } - else if ( percent < 5 ) - { - p.drawText( 0, 0, width(), height(), Qt::AlignCenter, tr( "E" ) ); - } - else - { - p.drawText( 0, AppLnk::smallIconSize()/2, QString::number( percent ) ); - p.drawText( AppLnk::smallIconSize()/4, AppLnk::smallIconSize(), "%" ); - } + p.drawText( 0, AppLnk::smallIconSize()/2, QString::number( percent ) ); + p.drawText( AppLnk::smallIconSize()/4, AppLnk::smallIconSize(), "%" ); return; } QPainter p(this); QColor color; QColor g = gray.light( 160 ); switch ( ps->acStatus() ) { case PowerStatus::Offline: color = blue.light( 150 ); break; case PowerStatus::Online: color = green.dark( 130 ).light( 180 ); break; default: color = red.light( 160 ); } int w = height() / 2; if ( !(w%2) ) w--; // should have an odd value to get a real middle line int h = height() - 4; int pix = (percent * h) / 100; int y2 = height() -2; int y = y2 - pix; int x1 = (width() - w ) / 2; p.setPen(QColor(80,80,80)); p.drawLine(x1+w/4,0,x1+w/4+w/2+1,0); // header p.drawRect(x1,1,w,height()-1); // corpus p.setBrush(color); int extra = ((percent * h) % 100)/(100/4); int middle = w/2; for ( int i = 0; i < middle; i++ ) { p.setPen( gray.dark( 100+i*20 ) ); p.drawLine( x1+middle-i, 2, x1+middle-i, y-1 ); p.drawLine( x1+middle+i, 2, x1+middle+i, y-1 ); p.setPen( color.dark( 100+i*20 ) ); p.drawLine( x1+middle-i, y, x1+middle-i, y2 ); p.drawLine( x1+middle+i, y, x1+middle+i, y2 ); } } diff --git a/core/applets/batteryapplet/batterystatus.cpp b/core/applets/batteryapplet/batterystatus.cpp index 092a48d..5936b5d 100644 --- a/core/applets/batteryapplet/batterystatus.cpp +++ b/core/applets/batteryapplet/batterystatus.cpp @@ -1,255 +1,255 @@ #include "batterystatus.h" #include <qpe/power.h> #include <opie/odevice.h> #include <qpainter.h> #include <qpushbutton.h> #include <qdrawutil.h> #include <qfile.h> #include <qlayout.h> #include <qtextstream.h> #include <qapplication.h> #include <qmessagebox.h> using namespace Opie; BatteryStatus::BatteryStatus( const PowerStatus *p, QWidget *parent ) : QWidget( parent, 0, WDestructiveClose), ps(p), bat2(false) { setCaption( tr("Battery status") ); QPushButton *pb = new QPushButton( tr("Close"), this ); QVBoxLayout *layout = new QVBoxLayout ( this ); jackPercent = 0; pb->setMaximumHeight(40); pb->setMaximumWidth( 120 ); pb->show(); layout->addStretch( 0 ); layout->addWidget( pb ); if ( ODevice::inst ( )-> series ( ) == Model_iPAQ ) { getProcApmStatusIpaq(); } connect( pb, SIGNAL( clicked() ), this, SLOT( close() ) ); percent = ps->batteryPercentRemaining(); show(); } BatteryStatus::~BatteryStatus() { } /* * Make use of the advanced apm interface of the ipaq */ bool BatteryStatus::getProcApmStatusIpaq() { bat2 = false; QFile procApmIpaq("/proc/hal/battery"); if (procApmIpaq.open(IO_ReadOnly) ) { QStringList list; // since it is /proc we _must_ use QTextStream QTextStream stream ( &procApmIpaq); QString streamIn; streamIn = stream.read(); list = QStringList::split("\n", streamIn); for(QStringList::Iterator line=list.begin(); line!=list.end(); line++) { // not nice, need a rewrite later if( (*line).startsWith(" Percentage") ){ if (bat2 == true) { perc2 = (*line).mid(((*line).find('('))+1,(*line).find(')')-(*line).find('(')-2); } else { perc1 = (*line).mid(((*line).find('('))+1,(*line).find(')')-(*line).find('(')-2); } }else if( (*line).startsWith(" Life") ){ if (bat2 == true) { sec2 = (*line).mid(((*line).find(':')+2), 5 ); } else { sec1 = (*line).mid(((*line).find(':')+2), 5 ); } }else if( (*line).startsWith("Battery #1") ){ bat2 = true; }else if( (*line).startsWith(" Status") ){ if (bat2 == true) { jackStatus = (*line).mid((*line).find('(')+1., (*line).find(')')-(*line).find('(')-1); } else { ipaqStatus = (*line).mid((*line).find('(')+1., (*line).find(')')-(*line).find('(')-1); } }else if( (*line).startsWith(" Chemistry") ) { if (bat2 == true) { jackChem = (*line).mid((*line).find('('), (*line).find(')')-(*line).find('(')+1); } else { ipaqChem = (*line).mid((*line).find('('), (*line).find(')')-(*line).find('(')+1); } } } } else { QMessageBox::warning(this, tr("Failure"),tr("could not open file")); } procApmIpaq.close(); jackPercent = perc2.toInt(); ipaqPercent = perc1.toInt(); if (perc2.isEmpty()) { perc2 = "no data"; } else { perc2 += " %"; } if (sec2 == "0" || sec2 == "" || sec2.isEmpty()) { sec2 = "no data"; } else { sec2 += " min"; } jackStatus == (" ( " + jackStatus + " )"); return true; } void BatteryStatus::updatePercent( int pc ) { percent = pc; repaint(FALSE); } void BatteryStatus::drawSegment( QPainter *p, const QRect &r, const QColor &topgrad, const QColor &botgrad, const QColor &highlight, int hightlight_height ) { int h1, h2, s1, s2, v1, v2, ng = r.height(), hy = ng*30/100, hh = hightlight_height; topgrad.hsv( &h1, &s1, &v1 ); botgrad.hsv( &h2, &s2, &v2 ); for ( int j = 0; j < hy-2; j++ ) { p->setPen( QColor( h1 + ((h2-h1)*j)/(ng-1), s1 + ((s2-s1)*j)/(ng-1), v1 + ((v2-v1)*j)/(ng-1), QColor::Hsv ) ); p->drawLine( r.x(), r.top()+hy-2-j, r.x()+r.width(), r.top()+hy-2-j ); } for ( int j = 0; j < hh; j++ ) { p->setPen( highlight ); p->drawLine( r.x(), r.top()+hy-2+j, r.x()+r.width(), r.top()+hy-2+j ); } for ( int j = 0; j < ng-hy-hh; j++ ) { p->setPen( QColor( h1 + ((h2-h1)*j)/(ng-1), s1 + ((s2-s1)*j)/(ng-1), v1 + ((v2-v1)*j)/(ng-1), QColor::Hsv ) ); p->drawLine( r.x(), r.top()+hy+hh-2+j, r.x()+r.width(), r.top()+hy+hh-2+j ); } } void BatteryStatus::paintEvent( QPaintEvent * ) { int screenWidth = qApp->desktop()->width(); int screenHeight = qApp->desktop()->height(); QPainter p(this); QString text; if ( ps->batteryStatus() == PowerStatus::Charging ) { if (bat2) { text = tr("Charging both devices"); } else { text = tr("Charging"); } } else if ( ps->batteryPercentAccurate() ) { text.sprintf( tr("Percentage battery remaining") + ": %i%%", percent ); } else { text = tr("Battery status: "); switch ( ps->batteryStatus() ) { case PowerStatus::High: text += tr("Good"); break; case PowerStatus::Low: text += tr("Low"); break; case PowerStatus::VeryLow: text += tr("Very Low"); break; case PowerStatus::Critical: text += tr("Critical"); break; default: // NotPresent, etc. text += tr("Unknown"); } } p.drawText( 10, 90, text ); if ( ps->acStatus() == PowerStatus::Backup ) p.drawText( 10, 110, tr("On backup power") ); else if ( ps->acStatus() == PowerStatus::Online ) p.drawText( 10, 110, tr("Power on-line") ); else if ( ps->acStatus() == PowerStatus::Offline ) p.drawText( 10, 110, tr("External power disconnected") ); if ( ps->batteryTimeRemaining() >= 0 ) { text.sprintf( tr("Battery time remaining") + ": %im %02is", ps->batteryTimeRemaining() / 60, ps->batteryTimeRemaining() % 60 ); p.drawText( 10, 130, text ); } QColor c; QColor darkc; QColor lightc; if ( ps->acStatus() == PowerStatus::Offline ) { c = blue.light(120); darkc = c.dark(280); lightc = c.light(145); } else if ( ps->acStatus() == PowerStatus::Online ) { c = green.dark(130); darkc = c.dark(200); lightc = c.light(220); } else { c = red; darkc = c.dark(280); lightc = c.light(140); } if ( percent < 0 ) return; int rightEnd1 = screenWidth - 47; int rightEnd2 = screenWidth - 35; int percent2 = ( percent / 100.0 ) * rightEnd1 ; p.setPen( black ); qDrawShadePanel( &p, 9, 30, rightEnd1 , 39, colorGroup(), TRUE, 1, NULL); qDrawShadePanel( &p, rightEnd2, 37, 12, 24, colorGroup(), TRUE, 1, NULL); drawSegment( &p, QRect( 10, 30, percent2, 40 ), lightc, darkc, lightc.light(115), 6 ); drawSegment( &p, QRect( 11 + percent2, 30, rightEnd1 - percent2, 40 ), white.light(80), black, white.light(90), 6 ); drawSegment( &p, QRect( rightEnd2, 37, 10, 25 ), white.light(80), black, white.light(90), 2 ); p.setPen( black); if ( ODevice::inst ( )-> series ( ) == Model_iPAQ ) { p.drawText(15, 50, tr ("Ipaq " + ipaqChem)); QString jacketMsg; if (bat2) { p.setPen(black); p.drawText(10,220, tr("Percentage battery remaining: ") + perc2 + " " + jackStatus); p.drawText(10,240, tr("Battery time remaining: ") + sec2); jacketMsg = tr("Jacket " + jackChem); } else { jackPercent = 0; jacketMsg = tr("No jacket with battery inserted"); } - int jackPerc = ( jackPercent / 100.0 ) * screenWidth - 47; + int jackPerc = ( jackPercent / 100.0 ) * ( screenWidth - 47 ) ; qDrawShadePanel( &p, 9, 160, rightEnd1, 39, colorGroup(), TRUE, 1, NULL); qDrawShadePanel( &p, rightEnd2, 167, 12, 24, colorGroup(), TRUE, 1, NULL); drawSegment( &p, QRect( 10, 160, jackPerc, 40 ), lightc, darkc, lightc.light(115), 6 ); drawSegment( &p, QRect( 11 + jackPerc, 160, rightEnd1 - jackPerc, 40 ), white.light(80), black, white.light(90), 6 ); drawSegment( &p, QRect( rightEnd2, 167, 10, 25 ), white.light(80), black, white.light(90), 2 ); p.setPen( black ); p.drawText(15, 180, jacketMsg); } } diff --git a/core/applets/cardmon/cardmon.cpp b/core/applets/cardmon/cardmon.cpp index b8c4553..4ed09b8 100644 --- a/core/applets/cardmon/cardmon.cpp +++ b/core/applets/cardmon/cardmon.cpp @@ -1,349 +1,353 @@ /* * cardmon.cpp * * --------------------- * * copyright : (c) 2002 by Maximilian Reiss * email : max.reiss@gmx.de * based on two apps by Devin Butterfield */ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "cardmon.h" #include <qpe/resource.h> #include <opie/odevice.h> #include <qpe/applnk.h> #include <qcopchannel_qws.h> #include <qpainter.h> #include <qmessagebox.h> #include <qfile.h> #include <qtextstream.h> #include <qtimer.h> #include <qapplication.h> #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <qsound.h> #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) #include <sys/vfs.h> #include <mntent.h> #endif using namespace Opie; CardMonitor::CardMonitor(QWidget * parent):QWidget(parent), pm( Resource::loadPixmap("cardmon/pcmcia") ) { 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; } CardMonitor::~CardMonitor() { if (popupMenu) { delete popupMenu; } } void CardMonitor::popUp(QString message, QString icon) { if (!popupMenu) { popupMenu = new QPopupMenu(this); } popupMenu->clear(); if (icon.isEmpty()) { popupMenu->insertItem(message, 0); } else { popupMenu->insertItem(QIconSet(Resource::loadPixmap(icon)), 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 CardMonitor::popupTimeout() { popupMenu->hide(); } void CardMonitor::mousePressEvent(QMouseEvent *) { QPopupMenu *menu = new QPopupMenu(this); QString cmd; int err = 0; if (cardInSd) { menu->insertItem(QIconSet(Resource::loadPixmap("cardmon/ide")), tr("Eject SD/MMC card"), 0); } if (cardInPcmcia0) { menu-> insertItem(QIconSet (Resource::loadPixmap("cardmon/" + cardInPcmcia0Type)), tr("Eject card 0: %1").arg(cardInPcmcia0Name), 1); } if (cardInPcmcia1) { menu-> insertItem(QIconSet (Resource::loadPixmap("cardmon/" + cardInPcmcia1Type)), 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) { cmd = "/sbin/cardctl eject 0"; err = system((const char *) cmd); if (err != 0) { qDebug("Could not execute `/sbin/cardctl eject 0'! err=%d", err); popUp(tr("CF/PCMCIA card eject failed!")); } } else if (opt == 0) { if (ODevice::inst()->system() == System_Familiar) { cmd = "umount /dev/mmc/part1"; } else { cmd = "umount /dev/mmcda1"; } err = system((const char *) cmd); if (err != 0) { popUp(tr("SD/MMC card eject failed!")); } } else if (opt == 2) { cmd = "/sbin/cardctl eject 1"; err = system((const char *) cmd); if (err != 0) { qDebug("Could not execute `/sbin/cardctl eject 1'! err=%d", err); popUp(tr("CF/PCMCIA card eject failed!")); } } delete menu; } void CardMonitor::cardMessage(const QCString & msg, const QByteArray &) { if (msg == "stabChanged()") { // qDebug("Pcmcia: stabchanged"); getStatusPcmcia(); } else if (msg == "mtabChanged()") { // qDebug("CARDMONAPPLET: mtabchanged"); getStatusSd(); } } bool CardMonitor::getStatusPcmcia(int showPopUp) { bool cardWas0 = cardInPcmcia0; // remember last state bool cardWas1 = cardInPcmcia1; QString fileName; // one of these 3 files should exist 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 qDebug("no file found"); cardInPcmcia0 = FALSE; cardInPcmcia1 = FALSE; } repaint( FALSE ); return ((cardWas0 == cardInPcmcia0 && cardWas1 == cardInPcmcia1) ? FALSE : TRUE); } bool CardMonitor::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 = me->mnt_fsname; //qDebug( fs ); if (fs.left(14) == "/dev/mmc/part1" || fs.left(7) == "/dev/sd" || fs.left(9) == "/dev/mmcd") { cardInSd = TRUE; show(); } // else { // cardInSd = FALSE; // } } endmntent(mntfp); } if (!showPopUp && cardWas != cardInSd) { QString text = QString::null; QString what = QString::null; if (cardInSd) { text += "New card: SD/MMC"; what = "on"; } else { text += "Ejected: SD/MMC"; what = "off"; } //qDebug("TEXT: " + text ); +#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 CardMonitor::paintEvent(QPaintEvent *) { QPainter p(this); if ( cardInPcmcia0 || cardInPcmcia1 || cardInSd ) { p.drawPixmap(0, 0, pm ); show(); } else { //p.eraseRect(rect()); hide(); } } diff --git a/core/applets/homeapplet/home.h b/core/applets/homeapplet/home.h index 64af97d..1186caf 100644 --- a/core/applets/homeapplet/home.h +++ b/core/applets/homeapplet/home.h @@ -1,49 +1,49 @@ /********************************************************************** ** Copyright (C) 2000 Trolltech AS. All rights reserved. ** ** This file is part of Qtopia Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #ifndef __OPIE_HOME_APPLET_H__ #define __OPIE_HOME_APPLET_H__ #include <qpe/menuappletinterface.h> class HomeApplet : public QObject, public MenuAppletInterface { public: HomeApplet ( ); virtual ~HomeApplet ( ); 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 ( ); private: ulong ref; }; #endif diff --git a/core/applets/restartapplet2/.cvsignore b/core/applets/restartapplet2/.cvsignore index a403d26..4943911 100644 --- a/core/applets/restartapplet2/.cvsignore +++ b/core/applets/restartapplet2/.cvsignore @@ -1,7 +1,6 @@ *.moc *.~ Makefile* config.in moc_* opieobjconfig.in -opieobj diff --git a/core/applets/suspendapplet/suspend.h b/core/applets/suspendapplet/suspend.h index 0c92bcb..75467c1 100644 --- a/core/applets/suspendapplet/suspend.h +++ b/core/applets/suspendapplet/suspend.h @@ -1,49 +1,49 @@ /********************************************************************** ** Copyright (C) 2000 Trolltech AS. All rights reserved. ** ** This file is part of Qtopia Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #ifndef __OPIE_SUSPEND_APPLET_H__ #define __OPIE_SUSPEND_APPLET_H__ #include <qpe/menuappletinterface.h> class SuspendApplet : public QObject, public MenuAppletInterface { public: SuspendApplet ( ); virtual ~SuspendApplet ( ); 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 ( ); private: ulong ref; }; #endif diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp index 0205622..8b2907a 100644 --- a/core/launcher/launcher.cpp +++ b/core/launcher/launcher.cpp @@ -1,1355 +1,1319 @@ /********************************************************************** ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** ** This file is part of the Qtopia Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ // WARNING: Do *NOT* define this yourself. The SL5xxx from SHARP does NOT // have this class. #define QTOPIA_INTERNAL_FSLP -//#include <opie/ofiledialog.h> -#include <opie/ofileselector.h> #include <qpe/qcopenvelope_qws.h> #include <qpe/resource.h> #include <qpe/applnk.h> #include <qpe/config.h> #include <qpe/global.h> #include <qpe/qpeapplication.h> #include <qpe/mimetype.h> #include <qpe/storage.h> #include <qpe/palmtoprecord.h> #include <qpe/version.h> #include <qdir.h> #ifdef QWS #include <qwindowsystem_qws.h> #endif #include <qtimer.h> #include <qcombobox.h> #include <qvbox.h> #include <qlayout.h> #include <qstyle.h> #include <qpushbutton.h> #include <qtabbar.h> #include <qwidgetstack.h> #include <qlayout.h> #include <qregexp.h> #include <qmessagebox.h> #include <qframe.h> #include <qpainter.h> #include <qlabel.h> #include <qtextstream.h> #include <qpopupmenu.h> #include <opie/owait.h> #include "launcherview.h" #include "launcher.h" #include "syncdialog.h" #include "desktop.h" #include <qpe/lnkproperties.h> //#include "mrulist.h" #include "qrsync.h" #include <stdlib.h> #include <unistd.h> #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) #include <stdio.h> #include <sys/vfs.h> #include <mntent.h> #endif #include <qpe/storage.h> #include "mediummountgui.h" namespace { QStringList configToMime( Config *cfg ){ QStringList mimes; bool tmpMime = true; cfg->setGroup("mimetypes" ); tmpMime = cfg->readBoolEntry("all" ,true); if( tmpMime ){ mimes << QString::null; return mimes; }else{ tmpMime = cfg->readBoolEntry("audio", true ); if(tmpMime ) - mimes.append("audio/*" ); + mimes.append("audio/*" ); tmpMime = cfg->readBoolEntry("image", true ); if(tmpMime ) - mimes.append("image/*" ); + mimes.append("image/*" ); tmpMime = cfg->readBoolEntry("text", true ); if(tmpMime ) - mimes.append("text/*"); + mimes.append("text/*"); tmpMime = cfg->readBoolEntry("video", true ); if(tmpMime ) - mimes.append("video/*" ); + mimes.append("video/*" ); } return mimes; } } //#define SHOW_ALL class CategoryTab : public QTab { public: CategoryTab( const QIconSet &icon, const QString &text=QString::null ) - : QTab( icon, text ) + : QTab( icon, text ) { } QColor bgColor; QColor fgColor; }; //=========================================================================== CategoryTabWidget::CategoryTabWidget( QWidget* parent ) : QVBox( parent ) { categoryBar = 0; stack = 0; } void CategoryTabWidget::prevTab() { if ( categoryBar ) { - int n = categoryBar->count(); - int tab = categoryBar->currentTab(); - if ( tab >= 0 ) + int n = categoryBar->count(); + int tab = categoryBar->currentTab(); + if ( tab >= 0 ) categoryBar->setCurrentTab( (tab - 1 + n)%n ); } } void CategoryTabWidget::nextTab() { if ( categoryBar ) { - int n = categoryBar->count(); + int n = categoryBar->count(); int tab = categoryBar->currentTab(); - categoryBar->setCurrentTab( (tab + 1)%n ); + categoryBar->setCurrentTab( (tab + 1)%n ); } } void CategoryTabWidget::showTab(const QString& id) { if ( categoryBar ) { - int idx = ids.findIndex( id ); - categoryBar->setCurrentTab( idx ); + int idx = ids.findIndex( id ); + categoryBar->setCurrentTab( idx ); } } void CategoryTabWidget::addItem( const QString& linkfile ) { -// int i=0; -// AppLnk *app = new AppLnk(linkfile); -// if ( !app->isValid() ) { -// delete app; -// app=0; -// } -// if ( !app || !app->file().isEmpty() ) { - // A document -// delete app; -// app = new DocLnk(linkfile); -// if ( app->fileKnown() ) { -// ((LauncherView*)(stack->widget(ids.count()-1)))->addItem(app); -// } else { -// ((LauncherView*)(stack->widget(ids.count()-1)))->sort(); -// delete app; -// } -// return; -// } - // An application -// for ( QStringList::Iterator it=ids.begin(); it!=ids.end(); ++it) { -// if ( !(*it).isEmpty() ) { -// QRegExp tf(*it,FALSE,TRUE); -// if ( tf.match(app->type()) >= 0 ) { -// ((LauncherView*)stack->widget(i))->addItem(app); -// return; -// } -// i++; - // } - // } - - QCopEnvelope e("QPE/TaskBar","reloadApps()"); + int i=0; + AppLnk *app = new AppLnk(linkfile); + if ( !app->isValid() ) { + delete app; + app=0; + } + if ( !app || !app->file().isEmpty() ) { + // A document + delete app; + app = new DocLnk(linkfile); + if ( app->fileKnown() ) { + ((LauncherView*)(stack->widget(ids.count()-1)))->addItem(app); + } else { + ((LauncherView*)(stack->widget(ids.count()-1)))->sort(); + delete app; + } + return; + } + // An application + for ( QStringList::Iterator it=ids.begin(); it!=ids.end(); ++it) { + if ( !(*it).isEmpty() ) { + QRegExp tf(*it,FALSE,TRUE); + if ( tf.match(app->type()) >= 0 ) { + ((LauncherView*)stack->widget(i))->addItem(app); + return; + } + i++; + } + } + + QCopEnvelope e("QPE/TaskBar","reloadApps()"); } void CategoryTabWidget::initializeCategories(AppLnkSet* rootFolder, - AppLnkSet* /*docFolder*/, const QList<FileSystem> & /*fs*/) + AppLnkSet* docFolder, const QList<FileSystem> &fs) { - QString current; + QString current; if ( categoryBar ) { int c = categoryBar->currentTab(); if ( c >= 0 ) current = ids[c]; } delete categoryBar; categoryBar = new CategoryTabBar( this ); QPalette pal = categoryBar->palette(); pal.setColor( QColorGroup::Light, pal.color(QPalette::Active,QColorGroup::Shadow) ); pal.setColor( QColorGroup::Background, pal.active().background().light(110) ); categoryBar->setPalette( pal ); delete stack; stack = new QWidgetStack(this); tabs=0; ids.clear(); Config cfg("Launcher"); QStringList types = rootFolder->types(); for ( QStringList::Iterator it=types.begin(); it!=types.end(); ++it) { - if ( !(*it).isEmpty() ) { - (void)newView(*it,rootFolder->typePixmap(*it),rootFolder->typeName(*it)); - setTabAppearance( *it, cfg ); - } + if ( !(*it).isEmpty() ) { + (void)newView(*it,rootFolder->typePixmap(*it),rootFolder->typeName(*it)); + setTabAppearance( *it, cfg ); + } } QListIterator<AppLnk> it( rootFolder->children() ); AppLnk* l; while ( (l=it.current()) ) { - if ( l->type() == "Separator" ) { // No tr - rootFolder->remove(l); - delete l; - } else { - int i=0; - for ( QStringList::Iterator it=types.begin(); it!=types.end(); ++it) { - if ( *it == l->type() ) - ((LauncherView*)stack->widget(i))->addItem(l,FALSE); - i++; - } - } - ++it; + if ( l->type() == "Separator" ) { // No tr + rootFolder->remove(l); + delete l; + } else { + int i=0; + for ( QStringList::Iterator it=types.begin(); it!=types.end(); ++it) { + if ( *it == l->type() ) + ((LauncherView*)stack->widget(i))->addItem(l,FALSE); + i++; + } + } + ++it; } rootFolder->detachChildren(); for (int i=0; i<tabs; i++) - ((LauncherView*)stack->widget(i))->sort(); + ((LauncherView*)stack->widget(i))->sort(); // all documents QImage img( Resource::loadImage( "DocsIcon" ) ); QPixmap pm; pm = img.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); + docview = newView( "Documents", // No tr + pm, tr("Documents")); + docview->populate( docFolder, QString::null ); + docFolder->detachChildren(); + docview->setFileSystems(fs); + docview->setToolsEnabled(TRUE); + setTabAppearance( "Documents", cfg ); // No tr - //ljpotter - CategoryTab *catTab ; - catTab = new CategoryTab( pm, "Documents" ); - - categoryBar->addTab( catTab ); - - fileSel = new DocumentTab( stack, 4, 0, "/",""); - stack->addWidget( fileSel, tabs++ ); - - // fileSel->hide(); - - connect( fileSel, SIGNAL( fileSelected( const DocLnk & )), - this, SLOT(clickie(const DocLnk&)) ); - -// connect( fileSel, SIGNAL( fileSelected( const QString & )), -// this, SLOT(clickie(const QString&)) ); - - connect( categoryBar, SIGNAL(selected(int)), stack, SLOT(raiseWidget(int)) ); + connect( categoryBar, SIGNAL(selected(int)), stack, SLOT(raiseWidget(int)) ); ((LauncherView*)stack->widget(0))->setFocus(); cfg. setGroup ( "GUI" ); setBusyIndicatorType ( cfg. readEntry ( "BusyType", QString::null )); if ( !current.isNull() ) { showTab(current); } categoryBar->show(); stack->show(); - QCopEnvelope e("QPE/TaskBar","reloadApps()"); } -void CategoryTabWidget::clickie(const DocLnk &lnk) { - lnk.execute(); - // fileSel->reparse(); -} - -void CategoryTabWidget::clickie(const QString &appStr) { -// DocLnk lnk(appStr); -// lnk.execute(); -} - void CategoryTabWidget::setTabAppearance( const QString &id, Config &cfg ) { QString grp( "Tab %1" ); // No tr cfg.setGroup( grp.arg(id) ); LauncherView *v = view( id ); int idx = ids.findIndex( id ); CategoryTab *tab = (CategoryTab *)categoryBar->tab( idx ); // View QString view = cfg.readEntry( "View", "Icon" ); if ( view == "List" ) // No tr - v->setViewMode( LauncherView::List ); + v->setViewMode( LauncherView::List ); QString bgType = cfg.readEntry( "BackgroundType", "Image" ); if ( bgType == "Image" ) { // No tr - QString pm = cfg.readEntry( "BackgroundImage", "launcher/opie-background" ); - v->setBackgroundType( LauncherView::Image, pm ); + QString pm = cfg.readEntry( "BackgroundImage", "launcher/opie-background" ); + v->setBackgroundType( LauncherView::Image, pm ); } else if ( bgType == "SolidColor" ) { - QString c = cfg.readEntry( "BackgroundColor" ); - v->setBackgroundType( LauncherView::SolidColor, c ); + QString c = cfg.readEntry( "BackgroundColor" ); + v->setBackgroundType( LauncherView::SolidColor, c ); } QString textCol = cfg.readEntry( "TextColor" ); if ( textCol.isEmpty() ) - v->setTextColor( QColor() ); + v->setTextColor( QColor() ); else - v->setTextColor( QColor(textCol) ); + v->setTextColor( QColor(textCol) ); QStringList font = cfg.readListEntry( "Font", ',' ); if ( font.count() == 4 ) - v->setViewFont( QFont(font[0], font[1].toInt(), font[2].toInt(), font[3].toInt()!=0) ); + v->setViewFont( QFont(font[0], font[1].toInt(), font[2].toInt(), font[3].toInt()!=0) ); // Tabs QString tabCol = cfg.readEntry( "TabColor" ); if ( tabCol.isEmpty() ) - tab->bgColor = QColor(); + tab->bgColor = QColor(); else - tab->bgColor = QColor(tabCol); + tab->bgColor = QColor(tabCol); QString tabTextCol = cfg.readEntry( "TabTextColor" ); if ( tabTextCol.isEmpty() ) - tab->fgColor = QColor(); + tab->fgColor = QColor(); else - tab->fgColor = QColor(tabTextCol); + tab->fgColor = QColor(tabTextCol); } -//void CategoryTabWidget::updateDocs(AppLnkSet* docFolder, const QList<FileSystem> & /*fs*/) -//{ - // docFolder->detachChildren(); -//} +void CategoryTabWidget::updateDocs(AppLnkSet* docFolder, const QList<FileSystem> &fs) +{ + docview->populate( docFolder, QString::null ); + docFolder->detachChildren(); + docview->setFileSystems(fs); + docview->updateTools(); +} void CategoryTabWidget::tabProperties() { LauncherView *view = (LauncherView*)stack->widget( categoryBar->currentTab() ); QPopupMenu *m = new QPopupMenu( this ); m->insertItem( tr("Icon View"), LauncherView::Icon ); m->insertItem( tr("List View"), LauncherView::List ); m->setItemChecked( (int)view->viewMode(), TRUE ); int rv = m->exec( QCursor::pos() ); if ( rv >= 0 && rv != view->viewMode() ) { - view->setViewMode( (LauncherView::ViewMode)rv ); + view->setViewMode( (LauncherView::ViewMode)rv ); } delete m; } QString CategoryTabWidget::getAllDocLinkInfo() const { - return ""; + return docview->getAllDocLinkInfo(); } LauncherView* CategoryTabWidget::newView( const QString& id, const QPixmap& pm, const QString& label ) { LauncherView* view = new LauncherView( stack ); connect( view, SIGNAL(clicked(const AppLnk*)), - this, SIGNAL(clicked(const AppLnk*))); + this, SIGNAL(clicked(const AppLnk*))); connect( view, SIGNAL(rightPressed(AppLnk*)), - this, SIGNAL(rightPressed(AppLnk*))); + this, SIGNAL(rightPressed(AppLnk*))); ids.append(id); categoryBar->addTab( new CategoryTab( pm, label ) ); stack->addWidget( view, tabs++ ); return view; } void CategoryTabWidget::updateLink(const QString& linkfile) { - // LauncherView* view; - qApp->processEvents(); -// while ((view = (LauncherView*)stack->widget(i++))) { -// if ( view->removeLink(linkfile) ) -// break; -// } - // addItem(linkfile); - fileSel->reparse(); + int i=0; + LauncherView* view; + //qApp->processEvents(); + while ((view = (LauncherView*)stack->widget(i++))) { + if ( view->removeLink(linkfile) ) + break; + } + addItem(linkfile); + docview->updateTools(); } void CategoryTabWidget::paletteChange( const QPalette &p ) { QVBox::paletteChange( p ); QPalette pal = palette(); pal.setColor( QColorGroup::Light, pal.color(QPalette::Active,QColorGroup::Shadow) ); pal.setColor( QColorGroup::Background, pal.active().background().light(110) ); categoryBar->setPalette( pal ); categoryBar->update(); } void CategoryTabWidget::setBusy(bool on) { if ( on ) - ((LauncherView*)stack->visibleWidget())->setBusy(TRUE); + ((LauncherView*)stack->visibleWidget())->setBusy(TRUE); else - for (int i=0; i<tabs-1; i++) - ((LauncherView*)stack->widget(i))->setBusy(FALSE); + for (int i=0; i<tabs; i++) + ((LauncherView*)stack->widget(i))->setBusy(FALSE); } LauncherView *CategoryTabWidget::view( const QString &id ) { int idx = ids.findIndex( id ); return (LauncherView *)stack->widget(idx); } void CategoryTabWidget::setBusyIndicatorType ( const QString &type ) { - for ( QStringList::Iterator it = ids. begin ( ); it != ids. end ( ); ++it ) - view ( *it )-> setBusyIndicatorType ( type ); + for ( QStringList::Iterator it = ids. begin ( ); it != ids. end ( ); ++it ) + view ( *it )-> setBusyIndicatorType ( type ); } //=========================================================================== CategoryTabBar::CategoryTabBar( QWidget *parent, const char *name ) : QTabBar( parent, name ) { setFocusPolicy( NoFocus ); connect( this, SIGNAL( selected(int) ), this, SLOT( layoutTabs() ) ); } CategoryTabBar::~CategoryTabBar() { } void CategoryTabBar::layoutTabs() { if ( !count() ) - return; + return; // int percentFalloffTable[] = { 100, 70, 40, 12, 6, 3, 1, 0 }; int available = width()-1; QFontMetrics fm = fontMetrics(); int hiddenTabWidth = -7; int middleTab = currentTab(); int hframe, vframe, overlap; style().tabbarMetrics( this, hframe, vframe, overlap ); int x = 0; QRect r; QTab *t; int required = 0; int eventabwidth = (width()-1)/count(); enum Mode { HideBackText, Pack, Even } mode=Even; for ( int i = 0; i < count(); i++ ) { - t = tab(i); - int iw = fm.width( t->text() ) + hframe - overlap; - if ( i != middleTab ) { - available -= hiddenTabWidth + hframe - overlap; - if ( t->iconSet() != 0 ) - available -= t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); - } - if ( t->iconSet() != 0 ) - iw += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); - required += iw; - // As space gets tight, packed looks better than even. "10" must be at least 0. - if ( iw >= eventabwidth-10 ) - mode = Pack; + t = tab(i); + int iw = fm.width( t->text() ) + hframe - overlap; + if ( i != middleTab ) { + available -= hiddenTabWidth + hframe - overlap; + if ( t->iconSet() != 0 ) + available -= t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); + } + if ( t->iconSet() != 0 ) + iw += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); + required += iw; + // As space gets tight, packed looks better than even. "10" must be at least 0. + if ( iw >= eventabwidth-10 ) + mode = Pack; } if ( mode == Pack && required > width()-1 ) - mode = HideBackText; + mode = HideBackText; for ( int i = 0; i < count(); i++ ) { - t = tab(i); - if ( mode != HideBackText ) { - int w = fm.width( t->text() ); - int ih = 0; - if ( t->iconSet() != 0 ) { - w += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); - ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); - } - int h = QMAX( fm.height(), ih ); - h = QMAX( h, QApplication::globalStrut().height() ); - - h += vframe; - w += hframe; - - QRect tr(x, 0, - mode == Even ? eventabwidth : w * (width()-1)/required, h); - t->setRect(tr); - x += tr.width() - overlap; - r = r.unite(tr); - } else if ( i != middleTab ) { - int w = hiddenTabWidth; - int ih = 0; - if ( t->iconSet() != 0 ) { - w += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); - ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); - } - int h = QMAX( fm.height(), ih ); - h = QMAX( h, QApplication::globalStrut().height() ); - - h += vframe; - w += hframe; - - t->setRect( QRect(x, 0, w, h) ); - x += t->rect().width() - overlap; - r = r.unite( t->rect() ); - } else { - int ih = 0; - if ( t->iconSet() != 0 ) { - ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); - } - int h = QMAX( fm.height(), ih ); - h = QMAX( h, QApplication::globalStrut().height() ); - - h += vframe; - - t->setRect( QRect(x, 0, available, h) ); - x += t->rect().width() - overlap; - r = r.unite( t->rect() ); - } + t = tab(i); + if ( mode != HideBackText ) { + int w = fm.width( t->text() ); + int ih = 0; + if ( t->iconSet() != 0 ) { + w += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); + ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); + } + int h = QMAX( fm.height(), ih ); + h = QMAX( h, QApplication::globalStrut().height() ); + + h += vframe; + w += hframe; + + QRect tr(x, 0, + mode == Even ? eventabwidth : w * (width()-1)/required, h); + t->setRect(tr); + x += tr.width() - overlap; + r = r.unite(tr); + } else if ( i != middleTab ) { + int w = hiddenTabWidth; + int ih = 0; + if ( t->iconSet() != 0 ) { + w += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); + ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); + } + int h = QMAX( fm.height(), ih ); + h = QMAX( h, QApplication::globalStrut().height() ); + + h += vframe; + w += hframe; + + t->setRect( QRect(x, 0, w, h) ); + x += t->rect().width() - overlap; + r = r.unite( t->rect() ); + } else { + int ih = 0; + if ( t->iconSet() != 0 ) { + ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); + } + int h = QMAX( fm.height(), ih ); + h = QMAX( h, QApplication::globalStrut().height() ); + + h += vframe; + + t->setRect( QRect(x, 0, available, h) ); + x += t->rect().width() - overlap; + r = r.unite( t->rect() ); + } } QRect rr = tab(count()-1)->rect(); rr.setRight(width()-1); tab(count()-1)->setRect( rr ); for ( t = tabList()->first(); t; t = tabList()->next() ) { QRect tr = t->rect(); tr.setHeight( r.height() ); t->setRect( tr ); } update(); } void CategoryTabBar::paint( QPainter * p, QTab * t, bool selected ) const { CategoryTabBar *that = (CategoryTabBar *) this; CategoryTab *ct = (CategoryTab *)t; QPalette pal = palette(); bool setPal = FALSE; if ( ct->bgColor.isValid() ) { - pal.setColor( QPalette::Active, QColorGroup::Background, ct->bgColor ); - pal.setColor( QPalette::Active, QColorGroup::Button, ct->bgColor ); - pal.setColor( QPalette::Inactive, QColorGroup::Background, ct->bgColor ); - pal.setColor( QPalette::Inactive, QColorGroup::Button, ct->bgColor ); - that->setUpdatesEnabled( FALSE ); - that->setPalette( pal ); - setPal = TRUE; + pal.setColor( QPalette::Active, QColorGroup::Background, ct->bgColor ); + pal.setColor( QPalette::Active, QColorGroup::Button, ct->bgColor ); + pal.setColor( QPalette::Inactive, QColorGroup::Background, ct->bgColor ); + pal.setColor( QPalette::Inactive, QColorGroup::Button, ct->bgColor ); + that->setUpdatesEnabled( FALSE ); + that->setPalette( pal ); + setPal = TRUE; } #if QT_VERSION >= 300 QStyle::SFlags flags = QStyle::Style_Default; if ( selected ) flags |= QStyle::Style_Selected; style().drawControl( QStyle::CE_TabBarTab, p, this, t->rect(), colorGroup(), flags, QStyleOption(t) ); #else style().drawTab( p, this, t, selected ); #endif QRect r( t->rect() ); QFont f( font() ); if ( selected ) - f.setBold( TRUE ); + f.setBold( TRUE ); p->setFont( f ); if ( ct->fgColor.isValid() ) { - pal.setColor( QPalette::Active, QColorGroup::Foreground, ct->fgColor ); - pal.setColor( QPalette::Inactive, QColorGroup::Foreground, ct->fgColor ); - that->setUpdatesEnabled( FALSE ); - that->setPalette( pal ); - setPal = TRUE; + pal.setColor( QPalette::Active, QColorGroup::Foreground, ct->fgColor ); + pal.setColor( QPalette::Inactive, QColorGroup::Foreground, ct->fgColor ); + that->setUpdatesEnabled( FALSE ); + that->setPalette( pal ); + setPal = TRUE; } int iw = 0; int ih = 0; if ( t->iconSet() != 0 ) { - iw = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width() + 2; - ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); + iw = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width() + 2; + ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); } int w = iw + p->fontMetrics().width( t->text() ) + 4; int h = QMAX(p->fontMetrics().height() + 4, ih ); paintLabel( p, QRect( r.left() + (r.width()-w)/2 - 3, - r.top() + (r.height()-h)/2, w, h ), t, + r.top() + (r.height()-h)/2, w, h ), t, #if QT_VERSION >= 300 - t->identifier() == keyboardFocusTab() + t->identifier() == keyboardFocusTab() #else - t->identitifer() == keyboardFocusTab() + t->identitifer() == keyboardFocusTab() #endif - ); + ); if ( setPal ) { - that->unsetPalette(); - that->setUpdatesEnabled( TRUE ); + that->unsetPalette(); + that->setUpdatesEnabled( TRUE ); } } void CategoryTabBar::paintLabel( QPainter* p, const QRect&, - QTab* t, bool has_focus ) const + QTab* t, bool has_focus ) const { QRect r = t->rect(); // if ( t->id != currentTab() ) //r.moveBy( 1, 1 ); // if ( t->iconSet() ) { - // the tab has an iconset, draw it in the right mode - QIconSet::Mode mode = (t->isEnabled() && isEnabled()) ? QIconSet::Normal : QIconSet::Disabled; - if ( mode == QIconSet::Normal && has_focus ) - mode = QIconSet::Active; - QPixmap pixmap = t->iconSet()->pixmap( QIconSet::Small, mode ); - int pixw = pixmap.width(); - int pixh = pixmap.height(); - p->drawPixmap( r.left() + 6, r.center().y() - pixh / 2 + 1, pixmap ); - r.setLeft( r.left() + pixw + 5 ); + // the tab has an iconset, draw it in the right mode + QIconSet::Mode mode = (t->isEnabled() && isEnabled()) ? QIconSet::Normal : QIconSet::Disabled; + if ( mode == QIconSet::Normal && has_focus ) + mode = QIconSet::Active; + QPixmap pixmap = t->iconSet()->pixmap( QIconSet::Small, mode ); + int pixw = pixmap.width(); + int pixh = pixmap.height(); + p->drawPixmap( r.left() + 6, r.center().y() - pixh / 2 + 1, pixmap ); + r.setLeft( r.left() + pixw + 5 ); } QRect tr = r; if ( r.width() < 20 ) - return; + return; if ( t->isEnabled() && isEnabled() ) { #if defined(_WS_WIN32_) - if ( colorGroup().brush( QColorGroup::Button ) == colorGroup().brush( QColorGroup::Background ) ) - p->setPen( colorGroup().buttonText() ); - else - p->setPen( colorGroup().foreground() ); + if ( colorGroup().brush( QColorGroup::Button ) == colorGroup().brush( QColorGroup::Background ) ) + p->setPen( colorGroup().buttonText() ); + else + p->setPen( colorGroup().foreground() ); #else - p->setPen( colorGroup().foreground() ); + p->setPen( colorGroup().foreground() ); #endif - p->drawText( tr, AlignCenter | AlignVCenter | ShowPrefix, t->text() ); + p->drawText( tr, AlignCenter | AlignVCenter | ShowPrefix, t->text() ); } else { - p->setPen( palette().disabled().foreground() ); - p->drawText( tr, AlignCenter | AlignVCenter | ShowPrefix, t->text() ); + p->setPen( palette().disabled().foreground() ); + p->drawText( tr, AlignCenter | AlignVCenter | ShowPrefix, t->text() ); } } //--------------------------------------------------------------------------- Launcher::Launcher( QWidget* parent, const char* name, WFlags fl ) : QMainWindow( parent, name, fl ) { setCaption( tr("Launcher") ); syncDialog = 0; // we have a pretty good idea how big we'll be setGeometry( 0, 0, qApp->desktop()->width(), qApp->desktop()->height() ); tabs = 0; rootFolder = 0; docsFolder = 0; int stamp = uidgen.generate(); // this is our timestamp to see which devices we know //uidgen.store( stamp ); m_timeStamp = QString::number( stamp ); tabs = new CategoryTabWidget( this ); setCentralWidget( tabs ); connect( tabs, SIGNAL(selected(const QString&)), - this, SLOT(viewSelected(const QString&)) ); + this, SLOT(viewSelected(const QString&)) ); connect( tabs, SIGNAL(clicked(const AppLnk*)), - this, SLOT(select(const AppLnk*))); + this, SLOT(select(const AppLnk*))); connect( tabs, SIGNAL(rightPressed(AppLnk*)), - this, SLOT(properties(AppLnk*))); - + this, SLOT(properties(AppLnk*))); #if !defined(QT_NO_COP) QCopChannel* sysChannel = new QCopChannel( "QPE/System", this ); connect( sysChannel, SIGNAL(received(const QCString &, const QByteArray &)), this, SLOT(systemMessage( const QCString &, const QByteArray &)) ); QCopChannel *channel = new QCopChannel( "QPE/Launcher", this ); connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), this, SLOT(launcherMessage(const QCString&, const QByteArray&)) ); #endif storage = new StorageInfo( this ); connect( storage, SIGNAL( disksChanged() ), SLOT( storageChanged() ) ); updateTabs(); preloadApps(); in_lnk_props = FALSE; got_lnk_change = FALSE; } Launcher::~Launcher() { delete rootFolder; delete docsFolder; } static bool isVisibleWindow(int wid) { #ifdef QWS const QList<QWSWindow> &list = qwsServer->clientWindows(); QWSWindow* w; for (QListIterator<QWSWindow> it(list); (w=it.current()); ++it) { - if ( w->winId() == wid ) - return !w->isFullyObscured(); + if ( w->winId() == wid ) + return !w->isFullyObscured(); } #endif return FALSE; } void Launcher::showMaximized() { if ( isVisibleWindow( winId() ) ) - doMaximize(); + doMaximize(); else - QTimer::singleShot( 20, this, SLOT(doMaximize()) ); + QTimer::singleShot( 20, this, SLOT(doMaximize()) ); } void Launcher::doMaximize() { QMainWindow::showMaximized(); tabs->setMaximumWidth( qApp->desktop()->width() ); } void Launcher::updateMimeTypes() { MimeType::clear(); updateMimeTypes(rootFolder); } void Launcher::updateMimeTypes(AppLnkSet* folder) { for ( QListIterator<AppLnk> it( folder->children() ); it.current(); ++it ) { - AppLnk *app = it.current(); - if ( app->type() == "Folder" ) // No tr - updateMimeTypes((AppLnkSet *)app); - else { - MimeType::registerApp(*app); - } + AppLnk *app = it.current(); + if ( app->type() == "Folder" ) // No tr + updateMimeTypes((AppLnkSet *)app); + else { + MimeType::registerApp(*app); + } } } /** This is a HACK.... * Reason: scanning huge mediums, microdirvers for examples * consomes time. To avoid that we invented the MediumMountCheck * * a) the user globally disabled medium checking. We can ignore * all removable medium * b) the user enabled medium checking globally and we need to use this mimefilter * c) the user enabled medium checking on a per medium bases * c1) we already checked and its not ask again turns * c2) we need to ask and then apply the mimefilter */ void Launcher::loadDocs() // ok here comes a hack belonging to Global:: { - OWait *owait = new OWait(); - Global::statusMessage( tr( "Finding documents" ) ); - - owait->show(); - qApp->processEvents(); - if(docsFolder) delete docsFolder; - docsFolder = new DocLnkSet; - DocLnkSet *tmp = 0; - QString home = QString(getenv("HOME")) + "/Documents"; - tmp = new DocLnkSet( home , QString::null); - docsFolder->appendFrom( *tmp ); - delete tmp; - - // RAM documents - StorageInfo storage; - const QList<FileSystem> &fileSystems = storage.fileSystems(); - QListIterator<FileSystem> it ( fileSystems ); - - for ( ; it.current(); ++it ) { - if ( (*it)->disk() == "/dev/mtdblock6" || (*it)->disk() == "tmpfs" ) { - tmp = new DocLnkSet( (*it)->path(), QString::null ); - docsFolder->appendFrom( *tmp ); - delete tmp; - } - } - - Config mediumCfg( "medium"); - mediumCfg.setGroup("main"); - // a) -zecke we don't want to check - if(!mediumCfg.readBoolEntry("use", true ) ) { - owait->hide(); - delete owait; + + OWait *owait = new OWait(); + Global::statusMessage( tr( "Finding documents" ) ); + + owait->show(); + qApp->processEvents(); + + delete docsFolder; + docsFolder = new DocLnkSet; + + DocLnkSet *tmp = 0; + QString home = QString(getenv("HOME")) + "/Documents"; + tmp = new DocLnkSet( home , QString::null); + docsFolder->appendFrom( *tmp ); + delete tmp; + + // RAM documents + StorageInfo storage; + const QList<FileSystem> &fileSystems = storage.fileSystems(); + QListIterator<FileSystem> it ( fileSystems ); + + for ( ; it.current(); ++it ) { + if ( (*it)->disk() == "/dev/mtdblock6" || (*it)->disk() == "tmpfs" ) { + tmp = new DocLnkSet( (*it)->path(), QString::null ); + docsFolder->appendFrom( *tmp ); + delete tmp; + } + } + + Config mediumCfg( "medium"); + mediumCfg.setGroup("main"); + // a) -zecke we don't want to check + if(!mediumCfg.readBoolEntry("use", true ) ) return; - } - // find out wich filesystems are new in this round - // We will do this by having a timestamp inside each mountpoint - // if the current timestamp doesn't match this is a new file system and - // come up with our MediumMountGui :) let the hacking begin - int stamp = uidgen.generate(); - QString newStamp = QString::number( stamp ); // generates newtime Stamp + // find out wich filesystems are new in this round + // We will do this by having a timestamp inside each mountpoint + // if the current timestamp doesn't match this is a new file system and + // come up with our MediumMountGui :) let the hacking begin + int stamp = uidgen.generate(); + + QString newStamp = QString::number( stamp ); // generates newtime Stamp - // b) - if( mediumCfg.readBoolEntry("global", true ) ){ + // b) + if( mediumCfg.readBoolEntry("global", true ) ){ QString mime = configToMime(&mediumCfg).join(";"); for( it.toFirst(); it.current(); ++it ){ - if( (*it)->isRemovable() ){ - tmp = new DocLnkSet( (*it)->path(), mime ); - docsFolder->appendFrom( *tmp ); - delete tmp; - } + if( (*it)->isRemovable() ){ + tmp = new DocLnkSet( (*it)->path(), mime ); + docsFolder->appendFrom( *tmp ); + delete tmp; + } } // done - owait->hide(); - delete owait; return; // save the else - } - // c) zecke - for ( it.toFirst(); it.current(); ++it ) { + } + // c) zecke + for ( it.toFirst(); it.current(); ++it ) { if ( (*it)->isRemovable() ) { // let's find out if we should search on it - Config cfg( (*it)->path() + "/.opiestorage.cf", Config::File); - cfg.setGroup("main"); - QString stamp = cfg.readEntry("timestamp", QDateTime::currentDateTime().toString() ); - /** This medium is uptodate - */ - if( stamp == m_timeStamp ){ // ok we know this card - cfg.writeEntry("timestamp", newStamp ); //just write a new timestamp - // we need to scan the list now. Hopefully the cache will be there - // read the mimetypes from the config and search for documents - QStringList mimetypes = configToMime( &cfg); - //qApp->processEvents(); - Global::statusMessage( tr( "Searching documents" ) ); - tmp = new DocLnkSet( (*it)->path(), mimetypes.join(";") ); - docsFolder->appendFrom( *tmp ); - delete tmp; - - } else { // come up with the gui cause this a new card - MediumMountGui medium(&cfg, (*it)->path() ); - if( medium.check() ){ // we did not ask before or ask again is off - /** c2) */ - if( medium.exec() ){ // he clicked yes so search it - // speicher - //cfg.read(); // cause of a race we need to reread - fixed - cfg.setGroup("main"); - cfg.writeEntry("timestamp", newStamp ); - cfg.write(); - - //qApp->processEvents(); - tmp = new DocLnkSet( (*it)->path(), medium.mimeTypes().join(";" ) ); - docsFolder->appendFrom( *tmp ); - delete tmp; - }// no else - /** c1) */ - } else { // we checked - // do something different see what we need to do - // let's see if we should check the device - cfg.setGroup("main" ); - bool check = cfg.readBoolEntry("autocheck", true ); - if( check ){ // find the documents - - //qApp->processEvents(); + Config cfg( (*it)->path() + "/.opiestorage.cf", Config::File); + cfg.setGroup("main"); + QString stamp = cfg.readEntry("timestamp", QDateTime::currentDateTime().toString() ); + /** This medium is uptodate + */ + if( stamp == m_timeStamp ){ // ok we know this card + cfg.writeEntry("timestamp", newStamp ); //just write a new timestamp + // we need to scan the list now. Hopefully the cache will be there + // read the mimetypes from the config and search for documents + QStringList mimetypes = configToMime( &cfg); + //qApp->processEvents(); Global::statusMessage( tr( "Searching documents" ) ); - tmp = new DocLnkSet( (*it)->path(), configToMime(&cfg ).join(";") ); - docsFolder->appendFrom( *tmp ); - delete tmp; - } - } - } - } - } - m_timeStamp = newStamp; - owait->hide(); - delete owait; + tmp = new DocLnkSet( (*it)->path(), mimetypes.join(";") ); + docsFolder->appendFrom( *tmp ); + delete tmp; + + }else{ // come up with the gui cause this a new card + MediumMountGui medium(&cfg, (*it)->path() ); + if( medium.check() ){ // we did not ask before or ask again is off + /** c2) */ + if( medium.exec() ){ // he clicked yes so search it + // speicher + //cfg.read(); // cause of a race we need to reread - fixed + cfg.setGroup("main"); + cfg.writeEntry("timestamp", newStamp ); + cfg.write(); + + //qApp->processEvents(); + tmp = new DocLnkSet( (*it)->path(), medium.mimeTypes().join(";" ) ); + docsFolder->appendFrom( *tmp ); + delete tmp; + }// no else + /** c1) */ + }else{ // we checked + // do something different see what we need to do + // let's see if we should check the device + cfg.setGroup("main" ); + bool check = cfg.readBoolEntry("autocheck", true ); + if( check ){ // find the documents + + //qApp->processEvents(); + Global::statusMessage( tr( "Searching documents" ) ); + tmp = new DocLnkSet( (*it)->path(), configToMime(&cfg ).join(";") ); + docsFolder->appendFrom( *tmp ); + delete tmp; + } + } + } + } + } + m_timeStamp = newStamp; + owait->hide(); + delete owait; } void Launcher::updateTabs() { MimeType::updateApplications(); // ### reads all applnks twice + delete rootFolder; rootFolder = new AppLnkSet( MimeType::appsFolderName() ); loadDocs(); tabs->initializeCategories(rootFolder, docsFolder, storage->fileSystems()); } void Launcher::updateDocs() { - loadDocs(); - // tabs->updateDocs(docsFolder,storage->fileSystems()); + loadDocs(); + tabs->updateDocs(docsFolder,storage->fileSystems()); } void Launcher::viewSelected(const QString& s) { setCaption( s + tr(" - Launcher") ); } void Launcher::nextView() { tabs->nextTab(); } void Launcher::showTab(const QString& id) { tabs->showTab(id); raise(); } void Launcher::select( const AppLnk *appLnk ) { if ( appLnk->type() == "Folder" ) { // No tr - // Not supported: flat is simpler for the user + // Not supported: flat is simpler for the user } else { - if ( appLnk->exec().isNull() ) { - QMessageBox::information(this,tr("No application"), - tr("<p>No application is defined for this document." - "<p>Type is %1.").arg(appLnk->type())); - return; - } - tabs->setBusy(TRUE); - emit executing( appLnk ); - appLnk->execute(); + if ( appLnk->exec().isNull() ) { + QMessageBox::information(this,tr("No application"), + tr("<p>No application is defined for this document." + "<p>Type is %1.").arg(appLnk->type())); + return; + } + tabs->setBusy(TRUE); + emit executing( appLnk ); + appLnk->execute(); } } void Launcher::externalSelected(const AppLnk *appLnk) { tabs->setBusy(TRUE); emit executing( appLnk ); } void Launcher::properties( AppLnk *appLnk ) { if ( appLnk->type() == "Folder" ) { // No tr - // Not supported: flat is simpler for the user + // Not supported: flat is simpler for the user } else { - in_lnk_props = TRUE; - got_lnk_change = FALSE; - LnkProperties prop(appLnk); - connect(&prop, SIGNAL(select(const AppLnk *)), this, SLOT(externalSelected(const AppLnk *))); - prop.showMaximized(); - prop.exec(); - in_lnk_props = FALSE; - if ( got_lnk_change ) { - updateLink(lnk_change); - } + in_lnk_props = TRUE; + got_lnk_change = FALSE; + LnkProperties prop(appLnk); + connect(&prop, SIGNAL(select(const AppLnk *)), this, SLOT(externalSelected(const AppLnk *))); + prop.showMaximized(); + prop.exec(); + in_lnk_props = FALSE; + if ( got_lnk_change ) { + updateLink(lnk_change); + } } } void Launcher::updateLink(const QString& link) { bool notify_sm = false; if (link.isNull()) { - updateTabs(); - notify_sm = true; + updateTabs(); + notify_sm = true; } else if (link.isEmpty()) { - updateDocs(); + updateDocs(); } else { - tabs->updateLink(link); - notify_sm = true; + tabs->updateLink(link); + notify_sm = true; } if ( notify_sm ) - QCopEnvelope e ( "QPE/TaskBar", "reloadApps()" ); + QCopEnvelope e ( "QPE/TaskBar", "reloadApps()" ); } void Launcher::systemMessage( const QCString &msg, const QByteArray &data) { - QDataStream stream( data, IO_ReadOnly ); + QDataStream stream( data, IO_ReadOnly ); if ( msg == "linkChanged(QString)" ) { - QString link; - stream >> link; - if ( in_lnk_props ) { - got_lnk_change = TRUE; - lnk_change = link; - } else { - updateLink(link); - } + QString link; + stream >> link; + if ( in_lnk_props ) { + got_lnk_change = TRUE; + lnk_change = link; + } else { + updateLink(link); + } } else if ( msg == "busy()" ) { - emit busy(); + emit busy(); } else if ( msg == "notBusy(QString)" ) { - QString app; - stream >> app; - tabs->setBusy(FALSE); - emit notBusy(app); + QString app; + stream >> app; + tabs->setBusy(FALSE); + emit notBusy(app); } else if ( msg == "mkdir(QString)" ) { - QString dir; - stream >> dir; - if ( !dir.isEmpty() ) - mkdir( dir ); + QString dir; + stream >> dir; + if ( !dir.isEmpty() ) + mkdir( dir ); } else if ( msg == "rdiffGenSig(QString,QString)" ) { - QString baseFile, sigFile; - stream >> baseFile >> sigFile; - QRsync::generateSignature( baseFile, sigFile ); + QString baseFile, sigFile; + stream >> baseFile >> sigFile; + QRsync::generateSignature( baseFile, sigFile ); } else if ( msg == "rdiffGenDiff(QString,QString,QString)" ) { - QString baseFile, sigFile, deltaFile; - stream >> baseFile >> sigFile >> deltaFile; - QRsync::generateDiff( baseFile, sigFile, deltaFile ); + QString baseFile, sigFile, deltaFile; + stream >> baseFile >> sigFile >> deltaFile; + QRsync::generateDiff( baseFile, sigFile, deltaFile ); } else if ( msg == "rdiffApplyPatch(QString,QString)" ) { - QString baseFile, deltaFile; - stream >> baseFile >> deltaFile; - if ( !QFile::exists( baseFile ) ) { - QFile f( baseFile ); - f.open( IO_WriteOnly ); - f.close(); - } - QRsync::applyDiff( baseFile, deltaFile ); + QString baseFile, deltaFile; + stream >> baseFile >> deltaFile; + if ( !QFile::exists( baseFile ) ) { + QFile f( baseFile ); + f.open( IO_WriteOnly ); + f.close(); + } + QRsync::applyDiff( baseFile, deltaFile ); #ifndef QT_NO_COP - QCopEnvelope e( "QPE/Desktop", "patchApplied(QString)" ); - e << baseFile; + QCopEnvelope e( "QPE/Desktop", "patchApplied(QString)" ); + e << baseFile; #endif } else if ( msg == "rdiffCleanup()" ) { - mkdir( "/tmp/rdiff" ); - QDir dir; - dir.setPath( "/tmp/rdiff" ); - QStringList entries = dir.entryList(); - for ( QStringList::Iterator it = entries.begin(); it != entries.end(); ++it ) - dir.remove( *it ); + mkdir( "/tmp/rdiff" ); + QDir dir; + dir.setPath( "/tmp/rdiff" ); + QStringList entries = dir.entryList(); + for ( QStringList::Iterator it = entries.begin(); it != entries.end(); ++it ) + dir.remove( *it ); } else if ( msg == "sendHandshakeInfo()" ) { - QString home = getenv( "HOME" ); + QString home = getenv( "HOME" ); #ifndef QT_NO_COP - QCopEnvelope e( "QPE/Desktop", "handshakeInfo(QString,bool)" ); - e << home; - int locked = (int) Desktop::screenLocked(); - e << locked; + QCopEnvelope e( "QPE/Desktop", "handshakeInfo(QString,bool)" ); + e << home; + int locked = (int) Desktop::screenLocked(); + e << locked; #endif } else if ( msg == "autoStart(QString)" ) { QString appName; stream >> appName; Config cfg( "autostart" ); cfg.setGroup( "AutoStart" ); if ( appName.compare("clear") == 0){ cfg.writeEntry("Apps", ""); } } else if ( msg == "autoStart(QString,QString)" ) { QString modifier, appName; stream >> modifier >> appName; Config cfg( "autostart" ); cfg.setGroup( "AutoStart" ); if ( modifier.compare("add") == 0 ){ // only add if appname is entered if (!appName.isEmpty()) { cfg.writeEntry("Apps", appName); } } else if (modifier.compare("remove") == 0 ) { // need to change for multiple entries // actually remove is right now simular to clear, but in future there // should be multiple apps in autostart possible. QString checkName; checkName = cfg.readEntry("Apps", ""); if (checkName == appName) { cfg.writeEntry("Apps", ""); } } // case the autostart feature should be delayed } else if ( msg == "autoStart(QString,QString,QString)") { QString modifier, appName, delay; stream >> modifier >> appName >> delay; Config cfg( "autostart" ); cfg.setGroup( "AutoStart" ); if ( modifier.compare("add") == 0 ){ // only add it appname is entered if (!appName.isEmpty()) { cfg.writeEntry("Apps", appName); cfg.writeEntry("Delay", delay); } } else { } } /* * QtopiaDesktop relies on the major number * to start with 1. We're at 0.9 * so wee need to fake at least 1.4 to be able * to sync with QtopiaDesktop1.6 */ else if ( msg == "sendVersionInfo()" ) { - QCopEnvelope e( "QPE/Desktop", "versionInfo(QString)" ); - QString v2 = QString::fromLatin1("1.4"); - e << v2; - //qDebug("version %s\n", line.latin1()); + QCopEnvelope e( "QPE/Desktop", "versionInfo(QString)" ); + QString v2 = QString::fromLatin1("1.4"); + e << v2; + //qDebug("version %s\n", line.latin1()); } else if ( msg == "sendCardInfo()" ) { #ifndef QT_NO_COP - QCopEnvelope e( "QPE/Desktop", "cardInfo(QString)" ); + QCopEnvelope e( "QPE/Desktop", "cardInfo(QString)" ); #endif - const QList<FileSystem> &fs = storage->fileSystems(); - QListIterator<FileSystem> it ( fs ); - QString s; - QString homeDir = getenv("HOME"); - QString hardDiskHome, hardDiskHomePath; - for ( ; it.current(); ++it ) { - int k4 = (*it)->blockSize()/256; - if ( (*it)->isRemovable() || (*it)->disk() == "/dev/mtdblock6" || (*it)->disk() == "tmpfs") { - s += (*it)->name() + "=" + (*it)->path() + "/Documents " - + QString::number( (*it)->availBlocks() * k4/4 ) - + "K " + (*it)->options() + ";"; - } else if ( (*it)->disk() == "/dev/mtdblock1" || - (*it)->disk() == "/dev/mtdblock/1" ) { - s += (*it)->name() + "=" + homeDir + "/Documents " - + QString::number( (*it)->availBlocks() * k4/4 ) - + "K " + (*it)->options() + ";"; - } else if ( (*it)->name().contains( "Hard Disk") && - homeDir.contains( (*it)->path() ) && - (*it)->path().length() > hardDiskHomePath.length() ) { - hardDiskHomePath = (*it)->path(); - hardDiskHome = - (*it)->name() + "=" + homeDir + "/Documents " - + QString::number( (*it)->availBlocks() * k4/4 ) - + "K " + (*it)->options() + ";"; - } - } - if ( !hardDiskHome.isEmpty() ) - s += hardDiskHome; + const QList<FileSystem> &fs = storage->fileSystems(); + QListIterator<FileSystem> it ( fs ); + QString s; + QString homeDir = getenv("HOME"); + QString hardDiskHome, hardDiskHomePath; + for ( ; it.current(); ++it ) { + int k4 = (*it)->blockSize()/256; + if ( (*it)->isRemovable() || (*it)->disk() == "/dev/mtdblock6" || (*it)->disk() == "tmpfs") { + s += (*it)->name() + "=" + (*it)->path() + "/Documents " + + QString::number( (*it)->availBlocks() * k4/4 ) + + "K " + (*it)->options() + ";"; + } else if ( (*it)->disk() == "/dev/mtdblock1" || + (*it)->disk() == "/dev/mtdblock/1" ) { + s += (*it)->name() + "=" + homeDir + "/Documents " + + QString::number( (*it)->availBlocks() * k4/4 ) + + "K " + (*it)->options() + ";"; + } else if ( (*it)->name().contains( "Hard Disk") && + homeDir.contains( (*it)->path() ) && + (*it)->path().length() > hardDiskHomePath.length() ) { + hardDiskHomePath = (*it)->path(); + hardDiskHome = + (*it)->name() + "=" + homeDir + "/Documents " + + QString::number( (*it)->availBlocks() * k4/4 ) + + "K " + (*it)->options() + ";"; + } + } + if ( !hardDiskHome.isEmpty() ) + s += hardDiskHome; #ifndef QT_NO_COP - e << s; + e << s; #endif } else if ( msg == "sendSyncDate(QString)" ) { - QString app; - stream >> app; - Config cfg( "qpe" ); - cfg.setGroup("SyncDate"); + QString app; + stream >> app; + Config cfg( "qpe" ); + cfg.setGroup("SyncDate"); #ifndef QT_NO_COP - QCopEnvelope e( "QPE/Desktop", "syncDate(QString,QString)" ); - e << app << cfg.readEntry( app ); + QCopEnvelope e( "QPE/Desktop", "syncDate(QString,QString)" ); + e << app << cfg.readEntry( app ); #endif - //qDebug("QPE/System sendSyncDate for %s: response %s", app.latin1(), - //cfg.readEntry( app ).latin1() ); + //qDebug("QPE/System sendSyncDate for %s: response %s", app.latin1(), + //cfg.readEntry( app ).latin1() ); } else if ( msg == "setSyncDate(QString,QString)" ) { - QString app, date; - stream >> app >> date; - Config cfg( "qpe" ); - cfg.setGroup("SyncDate"); - cfg.writeEntry( app, date ); - //qDebug("setSyncDate(QString,QString) %s %s", app.latin1(), date.latin1()); + QString app, date; + stream >> app >> date; + Config cfg( "qpe" ); + cfg.setGroup("SyncDate"); + cfg.writeEntry( app, date ); + //qDebug("setSyncDate(QString,QString) %s %s", app.latin1(), date.latin1()); } else if ( msg == "startSync(QString)" ) { - QString what; - stream >> what; - delete syncDialog; syncDialog = 0; - syncDialog = new SyncDialog( this, "syncProgress", FALSE, - WStyle_Tool | WStyle_Customize | - Qt::WStyle_StaysOnTop ); - syncDialog->showMaximized(); - syncDialog->whatLabel->setText( "<b>" + what + "</b>" ); - connect( syncDialog->buttonCancel, SIGNAL( clicked() ), - SLOT( cancelSync() ) ); + QString what; + stream >> what; + delete syncDialog; syncDialog = 0; + syncDialog = new SyncDialog( this, "syncProgress", FALSE, + WStyle_Tool | WStyle_Customize | + Qt::WStyle_StaysOnTop ); + syncDialog->showMaximized(); + syncDialog->whatLabel->setText( "<b>" + what + "</b>" ); + connect( syncDialog->buttonCancel, SIGNAL( clicked() ), + SLOT( cancelSync() ) ); } else if ( msg == "stopSync()") { - delete syncDialog; syncDialog = 0; + delete syncDialog; syncDialog = 0; } else if ( msg == "getAllDocLinks()" ) { - loadDocs(); + loadDocs(); // directly show updated docs in document tab updateDocs(); QString contents; -// Categories cats; - for ( QListIterator<DocLnk> it( docsFolder->children() ); it.current(); ++it ) { - DocLnk *doc = it.current(); - QFileInfo fi( doc->file() ); - if ( !fi.exists() ) - continue; - - bool fake = !doc->linkFileKnown(); - if ( !fake ) { - QFile f( doc->linkFile() ); - if ( f.open( IO_ReadOnly ) ) { - QTextStream ts( &f ); - ts.setEncoding( QTextStream::UnicodeUTF8 ); - contents += ts.read(); - f.close(); - } else - fake = TRUE; - } - if (fake) { - contents += "[Desktop Entry]\n"; - contents += "Categories = " + // No tr -// cats.labels("Document View",doc->categories()).join(";") + "\n"; // No tr - Qtopia::Record::idsToString( doc->categories() ) + "\n"; - contents += "Name = "+doc->name()+"\n"; // No tr - contents += "Type = "+doc->type()+"\n"; // No tr - } - contents += "File = "+doc->file()+"\n"; // No tr // (resolves path) - contents += QString("Size = %1\n").arg( fi.size() ); // No tr - } - - //qDebug( "sending length %d", contents.length() ); +// Categories cats; + for ( QListIterator<DocLnk> it( docsFolder->children() ); it.current(); ++it ) { + DocLnk *doc = it.current(); + QFileInfo fi( doc->file() ); + if ( !fi.exists() ) + continue; + + bool fake = !doc->linkFileKnown(); + if ( !fake ) { + QFile f( doc->linkFile() ); + if ( f.open( IO_ReadOnly ) ) { + QTextStream ts( &f ); + ts.setEncoding( QTextStream::UnicodeUTF8 ); + contents += ts.read(); + f.close(); + } else + fake = TRUE; + } + if (fake) { + contents += "[Desktop Entry]\n"; + contents += "Categories = " + // No tr +// cats.labels("Document View",doc->categories()).join(";") + "\n"; // No tr + Qtopia::Record::idsToString( doc->categories() ) + "\n"; + contents += "Name = "+doc->name()+"\n"; // No tr + contents += "Type = "+doc->type()+"\n"; // No tr + } + contents += "File = "+doc->file()+"\n"; // No tr // (resolves path) + contents += QString("Size = %1\n").arg( fi.size() ); // No tr + } + + //qDebug( "sending length %d", contents.length() ); #ifndef QT_NO_COP - QCopEnvelope e( "QPE/Desktop", "docLinks(QString)" ); - e << contents; + QCopEnvelope e( "QPE/Desktop", "docLinks(QString)" ); + e << contents; #endif - //qDebug( "================ \n\n%s\n\n===============", - //contents.latin1() ); + //qDebug( "================ \n\n%s\n\n===============", + //contents.latin1() ); - delete docsFolder; - docsFolder = 0; + delete docsFolder; + docsFolder = 0; #ifdef QWS } else if ( msg == "setMouseProto(QString)" ) { - QString mice; - stream >> mice; - setenv("QWS_MOUSE_PROTO",mice.latin1(),1); - qwsServer->openMouse(); + QString mice; + stream >> mice; + setenv("QWS_MOUSE_PROTO",mice.latin1(),1); + qwsServer->openMouse(); } else if ( msg == "setKeyboard(QString)" ) { - QString kb; - stream >> kb; - setenv("QWS_KEYBOARD",kb.latin1(),1); - qwsServer->openKeyboard(); + QString kb; + stream >> kb; + setenv("QWS_KEYBOARD",kb.latin1(),1); + qwsServer->openKeyboard(); #endif } } void Launcher::cancelSync() { #ifndef QT_NO_COP QCopEnvelope e( "QPE/Desktop", "cancelSync()" ); #endif } void Launcher::launcherMessage( const QCString &msg, const QByteArray &data) { - QDataStream stream( data, IO_ReadOnly ); + QDataStream stream( data, IO_ReadOnly ); if ( msg == "setTabView(QString,int)" ) { - QString id; - stream >> id; - int mode; - stream >> mode; - if ( tabs->view(id) ) - tabs->view(id)->setViewMode( (LauncherView::ViewMode)mode ); + QString id; + stream >> id; + int mode; + stream >> mode; + if ( tabs->view(id) ) + tabs->view(id)->setViewMode( (LauncherView::ViewMode)mode ); } else if ( msg == "setTabBackground(QString,int,QString)" ) { - QString id; - stream >> id; - int mode; - stream >> mode; - QString pixmapOrColor; - stream >> pixmapOrColor; - if ( tabs->view(id) ) - tabs->view(id)->setBackgroundType( (LauncherView::BackgroundType)mode, pixmapOrColor ); + QString id; + stream >> id; + int mode; + stream >> mode; + QString pixmapOrColor; + stream >> pixmapOrColor; + if ( tabs->view(id) ) + tabs->view(id)->setBackgroundType( (LauncherView::BackgroundType)mode, pixmapOrColor ); } else if ( msg == "setTextColor(QString,QString)" ) { - QString id; - stream >> id; - QString color; - stream >> color; - if ( tabs->view(id) ) - tabs->view(id)->setTextColor( QColor(color) ); + QString id; + stream >> id; + QString color; + stream >> color; + if ( tabs->view(id) ) + tabs->view(id)->setTextColor( QColor(color) ); } else if ( msg == "setFont(QString,QString,int,int,int)" ) { - QString id; - stream >> id; - QString fam; - stream >> fam; - int size; - stream >> size; - int weight; - stream >> weight; - int italic; - stream >> italic; - if ( tabs->view(id) ) - if ( !fam. isEmpty ( )) - tabs->view(id)->setViewFont( QFont(fam, size, weight, italic!=0) ); - else - tabs->view(id)->unsetViewFont(); - qDebug( "setFont: %s, %d, %d, %d", fam.latin1(), size, weight, italic ); + QString id; + stream >> id; + QString fam; + stream >> fam; + int size; + stream >> size; + int weight; + stream >> weight; + int italic; + stream >> italic; + if ( tabs->view(id) ) + if ( !fam. isEmpty ( )) + tabs->view(id)->setViewFont( QFont(fam, size, weight, italic!=0) ); + else + tabs->view(id)->unsetViewFont(); + qDebug( "setFont: %s, %d, %d, %d", fam.latin1(), size, weight, italic ); } else if ( msg == "setBusyIndicatorType(QString)" ) { - QString type; - stream >> type; - tabs->setBusyIndicatorType(type); + QString type; + stream >> type; + tabs->setBusyIndicatorType(type); } else if ( msg == "home()" ) { - if ( isVisibleWindow( winId ( ))) - nextView ( ); - else - raise ( ); + if ( isVisibleWindow( winId ( ))) + nextView ( ); + else + raise ( ); } } void Launcher::storageChanged() { if ( in_lnk_props ) { - got_lnk_change = TRUE; - lnk_change = QString::null; + got_lnk_change = TRUE; + lnk_change = QString::null; } else { - updateLink( QString::null ); + updateLink( QString::null ); } } bool Launcher::mkdir(const QString &localPath) { QDir fullDir(localPath); if (fullDir.exists()) - return true; + return true; // at this point the directory doesn't exist // go through the directory tree and start creating the direcotories // that don't exist; if we can't create the directories, return false QString dirSeps = "/"; int dirIndex = localPath.find(dirSeps); QString checkedPath; // didn't find any seps; weird, use the cur dir instead if (dirIndex == -1) { - //qDebug("No seperators found in path %s", localPath.latin1()); - checkedPath = QDir::currentDirPath(); + //qDebug("No seperators found in path %s", localPath.latin1()); + checkedPath = QDir::currentDirPath(); } while (checkedPath != localPath) { - // no more seperators found, use the local path - if (dirIndex == -1) - checkedPath = localPath; - else { - // the next directory to check - checkedPath = localPath.left(dirIndex) + "/"; - // advance the iterator; the next dir seperator - dirIndex = localPath.find(dirSeps, dirIndex+1); - } - - QDir checkDir(checkedPath); - if (!checkDir.exists()) { - //qDebug("mkdir making dir %s", checkedPath.latin1()); - - if (!checkDir.mkdir(checkedPath)) { - qDebug("Unable to make directory %s", checkedPath.latin1()); - return FALSE; - } - } + // no more seperators found, use the local path + if (dirIndex == -1) + checkedPath = localPath; + else { + // the next directory to check + checkedPath = localPath.left(dirIndex) + "/"; + // advance the iterator; the next dir seperator + dirIndex = localPath.find(dirSeps, dirIndex+1); + } + + QDir checkDir(checkedPath); + if (!checkDir.exists()) { + //qDebug("mkdir making dir %s", checkedPath.latin1()); + + if (!checkDir.mkdir(checkedPath)) { + qDebug("Unable to make directory %s", checkedPath.latin1()); + return FALSE; + } + } } return TRUE; } void Launcher::preloadApps() { Config cfg("Launcher"); cfg.setGroup("Preload"); QStringList apps = cfg.readListEntry("Apps",','); for (QStringList::ConstIterator it=apps.begin(); it!=apps.end(); ++it) { #ifndef QT_NO_COP - QCopEnvelope e("QPE/Application/"+(*it).local8Bit(), "enablePreload()"); + QCopEnvelope e("QPE/Application/"+(*it).local8Bit(), "enablePreload()"); #endif } } - -DocumentTab::DocumentTab( QWidget *parent, int mode, int selector, const QString &dirName, const QString &fileName) - : OFileSelector(parent,mode,selector,dirName,fileName) -{ - setYesCancelVisible(false); - setToolbarVisible(false); - setPermissionBarVisible(false); - setLineEditVisible(false) ; - //setChooserVisible( bool chooser ); - -} - -DocumentTab::~DocumentTab() { - -} - diff --git a/core/obex/obex.cc b/core/obex/obex.cc index 595fed9..2a306de 100644 --- a/core/obex/obex.cc +++ b/core/obex/obex.cc @@ -1,212 +1,203 @@ #include <qapplication.h> #include <qfile.h> #include <qfileinfo.h> #include <qtextcodec.h> #include <qpe/qcopenvelope_qws.h> #include <opie/oprocess.h> #include "obex.h" using namespace OpieObex; +/* TRANSLATOR OpieObex::Obex */ + Obex::Obex( QObject *parent, const char* name ) : QObject(parent, name ) { m_rec = 0; m_send=0; m_count = 0; m_receive = false; connect( this, SIGNAL(error(int) ), // for recovering to receive SLOT(slotError() ) ); connect( this, SIGNAL(sent(bool) ), SLOT(slotError() ) ); }; Obex::~Obex() { delete m_rec; delete m_send; } void Obex::receive() { m_receive = true; m_outp = QString::null; qWarning("Receive" ); m_rec = new OProcess(); *m_rec << "irobex_palm3"; // connect to the necessary slots connect(m_rec, SIGNAL(processExited(OProcess*) ), this, SLOT(slotExited(OProcess*) ) ); connect(m_rec, SIGNAL(receivedStdout(OProcess*, char*, int ) ), this, SLOT(slotStdOut(OProcess*, char*, int) ) ); if(!m_rec->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) { qWarning("could not start :("); emit done( false ); delete m_rec; m_rec = 0; } // emit currentTry(m_count ); } void Obex::send( const QString& fileName) { // if currently receiving stop it send receive m_count = 0; m_file = fileName; qWarning("send %s", fileName.latin1() ); if (m_rec != 0 ) { qWarning("running"); if (m_rec->isRunning() ) { emit error(-1 ); qWarning("is running"); delete m_rec; m_rec = 0; }else{ qWarning("is not running"); emit error( -1 ); // we did not delete yet but it's not running slotExited is pending return; } } sendNow(); } void Obex::sendNow(){ qWarning("sendNow"); if ( m_count >= 25 ) { // could not send emit error(-1 ); emit sent(false); return; } // OProcess inititialisation m_send = new OProcess(); *m_send << "irobex_palm3"; *m_send << QFile::encodeName(m_file); // connect to slots Exited and and StdOut connect(m_send, SIGNAL(processExited(OProcess*) ), this, SLOT(slotExited(OProcess*)) ); connect(m_send, SIGNAL(receivedStdout(OProcess*, char*, int )), this, SLOT(slotStdOut(OProcess*, char*, int) ) ); // now start it if (!m_send->start(/*OProcess::NotifyOnExit, OProcess::AllOutput*/ ) ) { qWarning("could not send" ); m_count = 25; emit error(-1 ); delete m_send; m_send=0; } // end m_count++; emit currentTry( m_count ); } void Obex::slotExited(OProcess* proc ){ if (proc == m_rec ) { // receive process received(); }else if ( proc == m_send ) { sendEnd(); } } void Obex::slotStdOut(OProcess* proc, char* buf, int len){ if ( proc == m_rec ) { // only receive - for (int i = 0; i < len; i++ ) { - printf("%c", buf[i] ); - } - printf("\n"); - QByteArray ar( len ); + QByteArray ar( len ); memcpy( ar.data(), buf, len ); qWarning("parsed: %s", ar.data() ); m_outp.append( ar ); } } void Obex::received() { if (m_rec->normalExit() ) { if ( m_rec->exitStatus() == 0 ) { // we got one QString filename = parseOut(); qWarning("ACHTUNG %s", filename.latin1() ); - if (filename.contains( 'ö' ) || filename.contains( 'ä' ) || filename.contains('ü' ) ) { - qWarning("renaming!!!!"); - QFileInfo inf( filename ); - QString newName = "/tmp/opie-obex." + inf.extension(); - ::rename( QFile::encodeName( filename ).data(), newName ); - qWarning("name is %s", QFile::encodeName( filename ).data() ); - } emit receivedFile( filename ); } }else{ emit done(false); }; delete m_rec; m_rec = 0; receive(); } void Obex::sendEnd() { if (m_send->normalExit() ) { if ( m_send->exitStatus() == 0 ) { delete m_send; m_send=0; qWarning("done" ); emit sent(true); }else if (m_send->exitStatus() == 255 ) { // it failed maybe the other side wasn't ready // let's try it again delete m_send; m_send = 0; qWarning("try sending again" ); sendNow(); } }else { emit error( -1 ); delete m_send; m_send = 0; } } QString Obex::parseOut( ){ QString path; QStringList list = QStringList::split("\n", m_outp); QStringList::Iterator it; for (it = list.begin(); it != list.end(); ++it ) { if ( (*it).startsWith("Wrote" ) ) { int pos = (*it).findRev('(' ); if ( pos > 0 ) { qWarning( "%d %s", pos, (*it).mid(6 ).latin1() ) ; qWarning("%d %d", (*it).length(), (*it).length()-pos ); path = (*it).remove( pos, (*it).length() - pos ); qWarning("%s", path.latin1() ); path = path.mid(6 ); path = path.stripWhiteSpace(); qWarning("path %s", path.latin1() ); } } } return path; } /** * when sent is done slotError is called we will start receive again */ void Obex::slotError() { qWarning("slotError"); if ( m_receive ) receive(); }; void Obex::setReceiveEnabled( bool receive ) { if ( !receive ) { // m_receive = false; shutDownReceive(); } } void Obex::shutDownReceive() { if (m_rec != 0 ) { qWarning("running"); if (m_rec->isRunning() ) { emit error(-1 ); qWarning("is running"); delete m_rec; m_rec = 0; } } } diff --git a/core/obex/obexhandler.cpp b/core/obex/obexhandler.cpp index 6509d12..5aaf63c 100644 --- a/core/obex/obexhandler.cpp +++ b/core/obex/obexhandler.cpp @@ -1,65 +1,67 @@ #include <qcopchannel_qws.h> #include <qpe/qcopenvelope_qws.h> #include "obexsend.h" #include "receiver.h" #include "obexhandler.h" using namespace OpieObex; +/* TRANSLATOR OpieObex::ObexHandler */ + ObexHandler::ObexHandler() { m_wasRec = false; m_sender = 0l; m_receiver = 0l; QCopChannel* chan = new QCopChannel("QPE/Obex"); connect(chan, SIGNAL(received(const QCString&, const QByteArray& ) ), this, SLOT(irdaMessage(const QCString&, const QByteArray& ) ) ); } ObexHandler::~ObexHandler() { delete m_sender; delete m_receiver; } void ObexHandler::doSend(const QString& str, const QString& desc) { delete m_sender; m_sender = new SendWidget; m_sender->raise(); m_sender->showMaximized(); connect(m_sender, SIGNAL(done() ), this, SLOT(slotSent() ) ); m_sender->send( str, desc ); } void ObexHandler::doReceive(bool b) { if (m_receiver && b ) return; // we should enable receiver and it is on else if (!m_receiver && !b ) return; // we should disbale receiver and it is off else if (m_receiver && !b ) { delete m_receiver; m_receiver=0; }else if (!m_receiver && b ) { m_receiver= new Receiver; } } void ObexHandler::slotSent() { QString file = m_sender->file(); delete m_sender; m_sender = 0; QCopEnvelope e ("QPE/Obex", "done(QString)" ); e << file; doReceive(m_wasRec ); m_wasRec = false; } void ObexHandler::irdaMessage( const QCString& msg, const QByteArray& data) { QDataStream stream( data, IO_ReadOnly ); if ( msg == "send(QString,QString,QString)" ) { QString name, desc; stream >> desc; stream >> name; m_wasRec = (m_receiver != 0 ); doReceive( false ); doSend(name, desc); }else if (msg == "receive(int)") { int rec; stream >> rec; doReceive(rec); } } diff --git a/core/obex/obeximpl.cpp b/core/obex/obeximpl.cpp index 12a078f..5bfc779 100644 --- a/core/obex/obeximpl.cpp +++ b/core/obex/obeximpl.cpp @@ -1,28 +1,30 @@ #include "obexhandler.h" #include "obeximpl.h" using namespace OpieObex; +/* TRANSLATOR OpieObex::ObexImpl */ + ObexImpl::ObexImpl() { m_handler = new ObexHandler; } ObexImpl::~ObexImpl() { delete m_handler; } QRESULT ObexImpl::queryInterface( const QUuid& uuid, QUnknownInterface **iface ) { *iface = 0; if ( uuid == IID_QUnknown ) { *iface = this; }else if ( uuid == IID_ObexInterface ) *iface = this; if (*iface) (*iface)->addRef(); return QS_OK; } Q_EXPORT_INTERFACE() { Q_CREATE_INSTANCE( ObexImpl ) } diff --git a/core/obex/obexsend.cpp b/core/obex/obexsend.cpp index 2931cf7..cf5d958 100644 --- a/core/obex/obexsend.cpp +++ b/core/obex/obexsend.cpp @@ -1,295 +1,297 @@ #include <qpushbutton.h> #include <qlabel.h> #include <qhbox.h> #include <qlayout.h> #include <qtimer.h> #include <qtl.h> #include <qcopchannel_qws.h> #include <qpe/resource.h> #include <qpe/qcopenvelope_qws.h> #include "obex.h" #include "obexsend.h" using namespace OpieObex; +/* TRANSLATOR OpieObex::SendWidget */ + SendWidget::SendWidget( QWidget* parent, const char* name ) : QWidget( parent, name ) { initUI(); } SendWidget::~SendWidget() { } void SendWidget::initUI() { m_obex = new Obex(this, "obex"); connect(m_obex, SIGNAL(error(int) ), this, SLOT(slotIrError(int) ) ); connect(m_obex, SIGNAL(sent(bool) ), this, SLOT(slotIrSent(bool) ) ); connect(m_obex, SIGNAL(currentTry(unsigned int ) ), this, SLOT(slotIrTry(unsigned int ) ) ); QCopChannel* chan = new QCopChannel("QPE/IrDaAppletBack", this ); connect(chan, SIGNAL(received(const QCString&, const QByteArray& ) ), this, SLOT(dispatchIrda(const QCString&, const QByteArray& ) ) ); chan = new QCopChannel("QPE/BluetoothBack", this ); connect(chan, SIGNAL(received(const QCString&, const QByteArray& ) ), this, SLOT(dispatchBt(const QCString&, const QByteArray& ) ) ); QVBoxLayout* lay = new QVBoxLayout(this); QHBox* nameBox = new QHBox(this); QLabel* name = new QLabel(nameBox); name->setText( tr("<qt><h1>Sending:</h1></qt>") ); name->setAlignment( AlignLeft | AlignTop ); m_lblFile = new QLabel(nameBox); lay->addWidget(nameBox, 0); QFrame* frame = new QFrame(this); frame->setFrameShape( QFrame::HLine ); frame->setFrameShadow( QFrame::Sunken ); lay->addWidget(frame, 10); QLabel* devices = new QLabel(this); devices->setText("<qt><b>Devices:</b></qt>"); devices->setAlignment( AlignLeft | AlignTop ); lay->addWidget( devices,10 ); m_devBox = new DeviceBox(this); lay->addWidget( m_devBox, 50 ); connect(m_devBox, SIGNAL(selectedDevice(int, int ) ), this, SLOT(slotSelectedDevice(int, int) ) ); QPushButton *but = new QPushButton(this); but->setText(tr("Done") ); connect(but, SIGNAL(clicked() ), this, SLOT(slotDone() ) ); lay->addWidget( but ); m_lay = lay; // QT does not like if you add items to an layout which already exits.... // and was layouted invalidate() does not help too // so we use RichText.... } /* * in send we'll first set everything up * and then wait for a list of devices. */ void SendWidget::send( const QString& file, const QString& desc ) { m_file = file; m_irDa.clear(); m_start = 0; m_lblFile->setText(desc.isEmpty() ? file : desc ); if ( !QCopChannel::isRegistered("QPE/IrDaApplet") ) { m_irDeSearch = m_devBox->addDevice( tr("IrDa is not enabled!"), DeviceBox::Error ); m_start++; }else m_irDeSearch = m_devBox->addDevice( tr("Searching for IrDa Devices."), DeviceBox::Search ); if ( !QCopChannel::isRegistered("QPE/Bluetooth") ) { m_btDeSearch = m_devBox->addDevice( tr("Bluetooth is not available"), DeviceBox::Error ); m_start++; }else m_btDeSearch = m_devBox->addDevice( tr("Searching for bluetooth Devices."), DeviceBox::Search ); if (m_start != 2 ) { QCopEnvelope e0("QPE/IrDaApplet", "enableIrda()"); QCopEnvelope e1("QPE/Bluetooth", "enableBluetooth()"); QCopEnvelope e2("QPE/IrDaApplet", "listDevices()"); QCopEnvelope e3("QPE/Bluetooth", "listDevices()"); } } void SendWidget::slotIrDaDevices( const QStringList& list) { qWarning("slot it irda devices "); for (QStringList::ConstIterator it = list.begin(); it != list.end(); ++it ) { int id = m_devBox->addDevice( (*it), DeviceBox::IrDa, tr("Scheduling for beam.") ); m_irDa.insert( id, (*it) ); } m_devBox->removeDevice( m_irDeSearch ); m_irDaIt = m_irDa.begin(); slotStartIrda(); } void SendWidget::slotBTDevices( const QMap<QString, QString>& str ) { for(QMap<QString, QString>::ConstIterator it = str.begin(); it != str.end(); ++it ) { int id = m_devBox->addDevice( it.key(), DeviceBox::BT, tr("Click to beam") ); m_bt.insert( id, Pair( it.key(), it.data() ) ); } m_devBox->removeDevice( m_btDeSearch ); } void SendWidget::slotSelectedDevice( int name, int dev ) { qWarning("Start beam? %d %d", name, dev ); if ( name == m_irDeSearch ) { for (QMap<int, QString>::Iterator it= m_irDa.begin(); it != m_irDa.end(); ++it ) m_devBox->removeDevice( it.key() ); QCopEnvelope e2("QPE/IrDaApplet", "listDevices()"); } } void SendWidget::dispatchIrda( const QCString& str, const QByteArray& ar ) { qWarning("dispatch irda %s", str.data() ); if ( str == "devices(QStringList)" ) { QDataStream stream( ar, IO_ReadOnly ); QStringList list; stream >> list; slotIrDaDevices( list ); } } void SendWidget::dispatchBt( const QCString&, const QByteArray& ) { } void SendWidget::slotIrError( int ) { } void SendWidget::slotIrSent( bool b) { qWarning("irda sent!!"); QString text = b ? tr("Sent") : tr("Failure"); m_devBox->setStatus( m_irDaIt.key(), text ); ++m_irDaIt; slotStartIrda(); } void SendWidget::slotIrTry(unsigned int trI) { m_devBox->setStatus( m_irDaIt.key(), tr("Try %1").arg( QString::number( trI ) ) ); } void SendWidget::slotStartIrda() { if (m_irDaIt == m_irDa.end() ) { m_irDeSearch = m_devBox->addDevice(tr("Search again for IrDa."), DeviceBox::Search ); return; } m_devBox->setStatus( m_irDaIt.key(), tr("Start sending") ); m_obex->send( m_file ); } void SendWidget::closeEvent( QCloseEvent* e) { e->accept(); // make sure QTimer::singleShot(0, this, SLOT(slotDone() ) ); } void SendWidget::slotDone() { QCopEnvelope e0("QPE/IrDaApplet", "disableIrda()"); QCopEnvelope e1("QPE/Bluetooth", "disableBluetooth()"); emit done(); } QString SendWidget::file()const { return m_file; } DeviceBox::DeviceBox( QWidget* parent ) : QTextBrowser( parent ) { } DeviceBox::~DeviceBox() { } int DeviceBox::addDevice( const QString& name, int dev, const QString& status ) { /* return a id for a range of devices */ int id = idFor ( dev ); DeviceItem item( name, status, dev,id ); m_dev.insert( id, item ); setText( allText() ); return id; } void DeviceBox::removeDevice( int id ) { if (!m_dev.contains(id) ) return; m_dev.remove( id ); setText( allText() ); } void DeviceBox::setStatus( int id, const QString& status ) { if ( !m_dev.contains(id) ) return; m_dev[id].setStatus(status ); setText( allText() ); } void DeviceBox::setSource( const QString& str ) { qWarning("SetSource:%d", str.toInt() ); int id = str.toInt(); emit selectedDevice( id, m_dev[id].device() ); } int DeviceBox::idFor ( int id ) { static int irId = 1501; static int irBT = 1001; static int irSr = 501; static int irEr = 0; int ret = -1; switch(id ) { case IrDa: ret = irId; irId++; break; case BT: ret = irBT; irBT++; break; case Search: ret = irSr; irSr++; break; case Error: ret = irEr; irEr++; break; } return ret; } QString DeviceBox::allText() { QString str; typedef QMap<int, DeviceItem> DeviceMap; for (QMap<int, DeviceItem>::Iterator it = m_dev.begin(); it != m_dev.end(); ++it ) { str += it.data().toString() + "<br>"; } return str; } DeviceItem::DeviceItem( const QString& name, const QString& status, int dev, int id) { m_name = name; m_status = status; m_dev = dev; m_id = id; } int DeviceItem::id()const { return m_id; } QString DeviceItem::name()const { return m_name; } QString DeviceItem::status()const { return m_status; } int DeviceItem::device()const { return m_dev; } QString DeviceItem::pixmap()const{ QString str; switch(m_dev) { case DeviceBox::IrDa: str ="obex/irda"; break; case DeviceBox::BT: str ="obex/bt"; break; case DeviceBox::Search: str = "mag"; break; case DeviceBox::Error: str = "editdelete"; break; }; return str; } DeviceItem::~DeviceItem() { } void DeviceItem::setStatus(const QString& status ) { m_status = status; } QString DeviceItem::toString()const { return "<p><a href=\""+QString::number(m_id) +"\" ><img src=\""+pixmap()+"\" >"+m_name+" "+m_status+" </a></p>" ; } diff --git a/core/obex/receiver.cpp b/core/obex/receiver.cpp index 31c6afe..bf9e30c 100644 --- a/core/obex/receiver.cpp +++ b/core/obex/receiver.cpp @@ -1,172 +1,203 @@ #include <sys/types.h> #include <sys/stat.h> #include <sys/mman.h> +#include <stdlib.h> // int system #include <unistd.h> #include <fcntl.h> #include <qfile.h> #include <qfileinfo.h> #include <qlabel.h> #include <qhbox.h> +#include <qregexp.h> #include <qtextview.h> #include <qpushbutton.h> #include <qpe/applnk.h> #include <qpe/qpeapplication.h> #include <qpe/qcopenvelope_qws.h> +#include <qpe/global.h> #include "obex.h" #include "receiver.h" using namespace OpieObex; +/* TRANSLATOR OpieObex::Receiver */ + Receiver::Receiver() { m_obex = new Obex(this, "Receiver"); connect(m_obex, SIGNAL(receivedFile(const QString& ) ), this, SLOT(slotReceived(const QString& ) ) ); m_obex->receive(); } Receiver::~Receiver() { m_obex->setReceiveEnabled( false ); delete m_obex; } -void Receiver::slotReceived( const QString& file ) { +void Receiver::slotReceived( const QString& _file ) { + QString file = _file; int check = checkFile(file); if ( check == AddressBook ) handleAddr( file ); else if ( check == Datebook ) handleDateTodo( file ); else handleOther( file ); } void Receiver::handleAddr( const QString& str ) { QCopEnvelope e("QPE/Application/addressbook", "setDocument(QString)" ); e << str; } /* we can not say for sure if it's a VEevent ot VTodo */ void Receiver::handleDateTodo( const QString& str ) { QCopEnvelope e0("QPE/Application/todolist", "setDocument(QString)"); e0 << str; QCopEnvelope e1("QPE/Application/datebook", "setDocument(QString)" ); e1 << str; } /* * Handle other asks if it should accept the * beamed object and creates a DocLnk */ void Receiver::handleOther( const QString& other ) { OtherHandler* hand = new OtherHandler(); hand->handle( other ); } -int Receiver::checkFile( const QString& file ) { +void Receiver::tidyUp( QString& _file, const QString& ending) { + /* libversit fails on BASE64 encoding we try to sed it away */ + QString file = _file; + char foo[24]; // big enough + (void)::strcpy(foo, "/tmp/opie-XXXXXX"); + + int fd = ::mkstemp(foo); + + if ( fd == -1 ) + return; + + (void)::strncat( foo, ending.latin1(), 4 ); + _file = QString::fromLatin1( foo ); + QString cmd = QString("sed -e \"s/^\\(X-MICROSOFT-BODYINK\\)\\;/\\1:/;\" < %2 > %2 ").arg( Global::shellQuote(file)).arg( Global::shellQuote(_file) ); + qWarning("Executing: %s", cmd.latin1() ); + (void)::system( cmd.latin1() ); + + cmd = QString("rm %1").arg( Global::shellQuote(file) ); + (void)::system( cmd.latin1() ); +} +int Receiver::checkFile( QString& file ) { qWarning("check file!! %s", file.latin1() ); int ret; + QString ending; + if (file.right(4) == ".vcs" ) { ret = Datebook; + ending = QString::fromLatin1(".vcs"); }else if ( file.right(4) == ".vcf") { ret = AddressBook; + ending = QString::fromLatin1(".vcf"); }else ret = Other; + if (ending.isEmpty() ) + return ret; + + /** + * currently the parser is broken in regard of BASE64 encoding + * and M$ likes to send that. So we will executed a small + * tidy up system sed script + * At this point we can also remove umlaute from the filename + */ + tidyUp( file, ending ); + qWarning("check it now %d", ret ); return ret; } +/* TRANSLATOR OpieObex::OtherHandler */ + OtherHandler::OtherHandler() : QVBox() { QHBox* box = new QHBox(this); QLabel* lbl = new QLabel(box); lbl->setText(tr("<qt><b>Received:</b></qt>")); m_na = new QLabel(box); QFrame* frame = new QFrame(this); frame->setFrameShape( QFrame::HLine ); frame->setFrameShadow( QFrame::Sunken ); m_view = new QTextView(this); box = new QHBox(this); QPushButton *but = new QPushButton(box); but->setText(tr("Accept") ); connect(but, SIGNAL(clicked() ), this, SLOT(accept()) ); but = new QPushButton(box); but->setText(tr("Deny") ); connect(but, SIGNAL(clicked() ), this, SLOT(deny() ) ); raise(); showMaximized(); } OtherHandler::~OtherHandler() { } void OtherHandler::handle( const QString& file ) { m_file = file; m_na->setText(file); DocLnk lnk(file); qWarning(" %s %s", lnk.type().latin1(), lnk.icon().latin1() ); QString str = tr("<p>You received a file of type %1 (<img src=\"%2\"> )What do you want to do?").arg(lnk.type() ).arg(lnk.icon() ); m_view->setText( str ); } /* * hehe evil evil mmap ahead :) * we quickly copy the file and then we'll create a DocLnk for it */ void OtherHandler::accept() { QString na = targetName( m_file ); copy(m_file, na ); DocLnk lnk(na); lnk.writeLink(); QFile::remove(m_file); delete this; } void OtherHandler::deny() { QFile::remove( m_file ); delete this; } QString OtherHandler::targetName( const QString& file ) { QFileInfo info( file ); + + /* $HOME needs to be set!!!! */ + Global::createDocDir(); + QString newFile = QPEApplication::documentDir()+ "/"+ info.baseName(); QString newFileBase = newFile; int trie = 0; while (QFile::exists(newFile + "."+info.extension() ) ) { newFile = newFileBase + "_"+QString::number(trie) ; trie++; } newFile += "." + info.extension(); return newFile; } /* fast cpy */ void OtherHandler::copy(const QString& src, const QString& file) { qWarning("src %s, dest %s", src.latin1(),file.latin1() ); - int src_fd = ::open( QFile::encodeName( src ), O_RDONLY ); - int to_fd = ::open( QFile::encodeName( file), O_RDWR| O_CREAT| O_TRUNC, - S_IRUSR, S_IWUSR, S_IRGRP, S_IRGRP ); - - struct stat stater; - ::fstat(src_fd, &stater ); - ::lseek(to_fd, stater.st_size-1, SEEK_SET ); - ::write(to_fd, "", 1 ); - - void *src_addr, *dest_addr; - src_addr = ::mmap(0, stater.st_size, PROT_READ, - MAP_FILE | MAP_SHARED, src_fd, 0 ); - dest_addr= ::mmap(0, stater.st_size, PROT_READ | PROT_WRITE, - MAP_FILE | MAP_PRIVATE, to_fd, 0 ); - - ::memcpy(dest_addr , src_addr, stater.st_size ); - ::munmap(src_addr , stater.st_size ); - ::munmap(dest_addr, stater.st_size ); - + QString cmd = QString("mv %1 %2").arg( Global::shellQuote( src )). + arg( Global::shellQuote( file ) ); + ::system( cmd.latin1() ); // done } diff --git a/core/obex/receiver.h b/core/obex/receiver.h index 5b20146..e1d54df 100644 --- a/core/obex/receiver.h +++ b/core/obex/receiver.h @@ -1,55 +1,58 @@ #ifndef OPIE_OBEX_RECEIVER_H #define OPIE_OBEX_RECEIVER_H #include <qobject.h> #include <qvbox.h> #include <qstring.h> class QLabel; class QTextView; namespace OpieObex { class Obex; class OtherHandler; class Receiver : public QObject { Q_OBJECT public: enum { Datebook , AddressBook, Other }; Receiver(); ~Receiver(); private: void handleAddr(const QString& ); void handleDateTodo(const QString& ); void handleOther(const QString& ); - int checkFile( const QString& file ); + /* will alter the file name */ + int checkFile( QString& file ); bool testDateTodo(const QString& file); bool testAddressbook(const QString& file); + /* called by checkFile */ + void tidyUp( QString& file, const QString& ending ); private slots: void slotReceived( const QString& ); private: Obex* m_obex; }; class OtherHandler : public QVBox { Q_OBJECT public: OtherHandler(); ~OtherHandler(); void handle( const QString& file ); private slots: void accept(); void deny(); private: QString targetName( const QString& file ); void copy( const QString& src, const QString& dest ); QLabel* m_na; QTextView* m_view; QString m_file; }; } #endif diff --git a/help/en/html/addressbook.html b/help/en/html/addressbook.html new file mode 100644 index 0000000..5de011c --- a/dev/null +++ b/help/en/html/addressbook.html @@ -0,0 +1,8 @@ +<html><head><title>Addressbook</title></head><body> +<img src="addressbook/AddressBook.png"> +<h1>Addressbook</h1> +<P align="center">FIXME Description<br> +<ul align="left"> +<li><a href="addressbook/about.html">About</a></li> +</ul> +</body></html> diff --git a/help/en/html/advancedfm.html b/help/en/html/advancedfm.html new file mode 100644 index 0000000..7362dc0 --- a/dev/null +++ b/help/en/html/advancedfm.html @@ -0,0 +1,55 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> +<html> <head> +<title>AdvancedFm</title> +</head> + +<body><center> +<h1>Advancedfm</h1> +<h2>The Advanced File Manager</h2> +</center> +<br> +<table width=100%> +<tr><td width=50% valign="top"> + +</td> +<td width=50% valign="top"> + +</td> +</tr> +</table> +<P><B>AdvancedFm</b> is a file manager for Opie. Using the two +tabs, you can move, rename, copy, symlink, set file permissions between the two directories. +<br>All actions on a file can be found by holding your stylus down on a +file. A popup menu will appear. +<br>If you have a <b>Control</b> key available, you can select multiple +files, by holding the <b>Ctrl</b> key while you highlight the files. +This way you can symlink all the selected files in a directory to the directory +in the other tab. + +<P>You can also run commands on files, on in a directory by +selecting <b>"Run Command"</b> from the menu. <b>"Run Command with output"</b> will +send the standard output from your command to a widget so you can see, or study it. You +can also save it to a file if you wish. + +<P>The buttons at top change your current directory to (from left to +right)<br> +<b>[cd up parent dir] [$QPEDIR] [CF card] [SD] [Documents directory] [$HOME]</b> +<br>The button to the left of the combo box, is a directory +bookmark. Click on it to bookmark the current directory, so you can +come back to it easily. +<P>You can type a directory into the edit combo at the top, hit enter +and change to it. + +<P>The titlebar at top tells you what filesystem is used on the +current directory, and how much free space is available there. + + + + +<hr> +<address><center><pre> +© 2002-2003<a href="mailto:llornkcor@handhelds.org">ljp</a> llornkcor@handhelds.org</a></pre></address> +<!-- hhmts start --> +Last modified: Mon Jun 9 15:11:16 MDT 2003 +<!-- hhmts end --> +</body> </html> diff --git a/help/en/html/appearance.html b/help/en/html/appearance.html new file mode 100644 index 0000000..5b852ce --- a/dev/null +++ b/help/en/html/appearance.html @@ -0,0 +1,7 @@ +<html> <head> <title>appearance</title> </head> +<body> + <center><h1>appearance</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/aqpkg.html b/help/en/html/aqpkg.html index ba6baf1..5e1bf32 100644 --- a/help/en/html/aqpkg.html +++ b/help/en/html/aqpkg.html @@ -1,47 +1,20 @@ -<html><head><title>Welcome to AQPkg</title></head><body> -AQPkg is the default package manager for Opie.<br> -<h3>Basic Instructions:</h3> -On startup, you will be shown a window. The main part of the window is taken up -by a list box showing packages. The packages shown will depend on the server selected.<br> -The servers list contains network servers containing feeds of packages that can be downloaded -and installed onto your handheld. These are held in the file /etc/ipkg.conf and can be maintained -using AQPkg. In addition to the servers defined in ipkg.conf file, there are two other servers - -local and local IPKGs. These are not network servers but views of your handheld.<br> -The local server shows all installed packages, and the local IPKGs server shows all ipks -that are stored on your handheld.<br> -On the local server, you can only remove packages. On the local IPKGs server you can only -install and delete packages - removing installed packages is currently not working. On all other -servers you can install, uninstall, upgrade and download packages.<br> -To get the latest package list for a server (or refresh the view), select the server you -wish to update and click the Refresh List button.<br> -To download a package from a remote server, select the server (any except local and local IPKGs), -then select the package(s) you wish to download (by tapping in the box next to the package -name so that a tick appears in the box) and click the Download button. Enter the path where you -want the package to be downloaded to and click OK to download the package.<br> -To install, upgrade or remove a package select the packages you wish to install and click the Apply -button. You will then be shown a dialog which allows you to select which destination you wish -to install the package to, which packages will be installed, removed and upgraded. You can also -set various options. (for the moment, see the documentation for IPKG for more details on these -options). To start the process, click Start. This will perform the necessary operations and -will show you what is happening. Once everything has completed click the Close button.<br> -Note: Currently, the operation to perform for a package is automatically decided based on the -following rules:<br> -If a package isn't installed, then it will be installed.<br> -If a package is installed and there isn't a later version available then it will be removed.<br> -If a package is installed and a different version is available then it will be upgraded. (Note, -I haven't yet found a way to determine if an available package is newer or older than the one -currently installed so it is possible that a package may be downgraded).<br> -As previously mentioned, a package can be explicitly removed by using the local server.<br><br> -A couple of last notes, in the main window, the following may be useful:<br> -If a package is installed then it will have (installed) after it.<br> -If a different version is available then it will have a * after the package name.<br> -You can view details of a package by tapping twice (quickly) on the package name (NOT the -box next to the package name). This will show you a brief description of the package, the -version installed (if it is installed), and the version available for download/installation -(if a different on is available).<br><br><br> -Well, hope you enjoy using this program. If you have any ideas/suggestions/ideas for improvements -then please let me know at andy.qua@blueyonder.co.uk.<br><br> -Thanks for using this. -Andy. - -</body></html>
\ No newline at end of file +<html><head><title>AQPkg</title></head><body> +<p align="center"> +<img src="aqpkg/aqpkg"> +<h1>AQPkg</h1> +<b>Package management for Opie</b> +<p align="left"> +<hr> +AQPkg is the default package manager for Opie. +It allows the user to manage multiple package feeds +and install, remove and update packages.<br> +<ul> +<li><a href="aqpkg/update.html"><img src="aqpkg/update">Update lists</a></li> +<li><a href="aqpkg/upgrade.html"><img src="aqpkg/upgrade">Upgrade packages</a></li> +<li><a href="aqpkg/remove.html"><img src="aqpkg/remove">Remove local packages</a></li> +<li><a href="aqpkg/download.html"><img src="aqpkg/download">Download packages</a></li> +<li><a href="aqpkg/apply.html"><img src="aqpkg/apply">Apply changes</a></li> +<li><a href="aqpkg/configuration.html"><img src="SettingsIcon">Configuration</a></li> +<li><a href="aqpkg/about.html"><img src="UtilsIcon">About</a></li> +</ul> +</body></html> diff --git a/help/en/html/backup.html b/help/en/html/backup.html new file mode 100644 index 0000000..a793038 --- a/dev/null +++ b/help/en/html/backup.html @@ -0,0 +1,7 @@ +<html> <head> <title>backup</title> </head> +<body> + <center><h1>backup</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/bluetooth-manager.html b/help/en/html/bluetooth-manager.html new file mode 100644 index 0000000..7afd864 --- a/dev/null +++ b/help/en/html/bluetooth-manager.html @@ -0,0 +1,7 @@ +<html> <head> <title>bluetooth-manager</title> </head> +<body> + <center><h1>bluetooth-manager</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/bounce.html b/help/en/html/bounce.html new file mode 100644 index 0000000..2edcef9 --- a/dev/null +++ b/help/en/html/bounce.html @@ -0,0 +1,7 @@ +<html> <head> <title>bounce</title> </head> +<body> + <center><h1>bounce</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/buttonsettings.html b/help/en/html/buttonsettings.html new file mode 100644 index 0000000..a169bf5 --- a/dev/null +++ b/help/en/html/buttonsettings.html @@ -0,0 +1,7 @@ +<html> <head> <title>buttonsettings</title> </head> +<body> + <center><h1>buttonsettings</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/buzzword.html b/help/en/html/buzzword.html new file mode 100644 index 0000000..0c1db84 --- a/dev/null +++ b/help/en/html/buzzword.html @@ -0,0 +1,7 @@ +<html> <head> <title>buzzword</title> </head> +<body> + <center><h1>buzzword</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/calculator.html b/help/en/html/calculator.html new file mode 100644 index 0000000..65db274 --- a/dev/null +++ b/help/en/html/calculator.html @@ -0,0 +1,7 @@ +<html> <head> <title>calculator</title> </head> +<body> + <center><h1>calculator</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/calibrate.html b/help/en/html/calibrate.html new file mode 100644 index 0000000..ff2feb3 --- a/dev/null +++ b/help/en/html/calibrate.html @@ -0,0 +1,7 @@ +<html> <head> <title>calibrate</title> </head> +<body> + <center><h1>calibrate</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/checkbook.html b/help/en/html/checkbook.html new file mode 100644 index 0000000..adc22ad --- a/dev/null +++ b/help/en/html/checkbook.html @@ -0,0 +1,7 @@ +<html> <head> <title>checkbook</title> </head> +<body> + <center><h1>checkbook</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/citytime.html b/help/en/html/citytime.html new file mode 100644 index 0000000..7f823e3 --- a/dev/null +++ b/help/en/html/citytime.html @@ -0,0 +1,7 @@ +<html> <head> <title>citytime</title> </head> +<body> + <center><h1>citytime</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/clock.html b/help/en/html/clock.html new file mode 100644 index 0000000..22909fd --- a/dev/null +++ b/help/en/html/clock.html @@ -0,0 +1,7 @@ +<html> <head> <title>clock</title> </head> +<body> + <center><h1>clock</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/confedit.html b/help/en/html/confedit.html new file mode 100644 index 0000000..14b78b8 --- a/dev/null +++ b/help/en/html/confedit.html @@ -0,0 +1,42 @@ +<html> <head> <title>confedit</title> </head> +<body> + <center> + <h1>confedit</h1> + <hr> + <h1>A big fat Warning: <br><br> + Do <b>NOT</b> use confedit!</h1> + unless you know what you are doing...<br> + <br><hr> + </center> + <h2>Possible Actions</h2> + By highlighting an item a editor will show up. <br> + After pressing on a item for some time a popup menu + with the possible actions will show up. + <h3>conf file</h3> + <ul> +<li>Save:<br>save the changes</li> +<li>Revert:<br>revert the file to the backup copy<br> +i.e. undo the last change</li> +<li>Delete:<br>delete the file from the filesystem<br> +This cannot be undone, your settings will be lost and +reverted to the default!</li> + </ul> + <h3>group</h3> + <ul> +<li>Revert:<br>revert the group to the saved version<br> +i.e. undo the last change</li> +<li>Delete:<br>delete the group<br> +This cannot be undone, your settings will be lost and +reverted to the default!</li> + </ul> + <h3>entry</h3> + <ul> +<li>Revert:<br>revert the entry to the saved version<br> +i.e. undo the last change</li> +<li>Delete:<br>delete the entry<br> +This cannot be undone, your settings will be lost and +reverted to the default!</li> + </ul> +</body> +</html> + diff --git a/help/en/html/datebook.html b/help/en/html/datebook.html new file mode 100644 index 0000000..0a16409 --- a/dev/null +++ b/help/en/html/datebook.html @@ -0,0 +1,8 @@ +<html><head><title>Datebook</title></head><body> +<img src="datebook/DateBook.png"> +<h1>Datebook</h1> +<P align="center">FIXME Description<br> +<ul align="left"> +<li><a href="datebook/about.html">About</a></li> +</ul> +</body></html> diff --git a/help/en/html/drawpad.html b/help/en/html/drawpad.html new file mode 100644 index 0000000..e651d35 --- a/dev/null +++ b/help/en/html/drawpad.html @@ -0,0 +1,8 @@ +<html><head><title>Drawpad</title></head><body> +<img src="drawpad/DrawPad.png"> +<h1>Drawpad</h1> +<P align="center">FIXME Description<br> +<ul align="left"> +<li><a href="drawpad/about.html">About</a></li> +</ul> +</body></html> diff --git a/help/en/html/opie-embeddedkonsole.html b/help/en/html/embeddedkonsole.html index 732cbd5..732cbd5 100644 --- a/help/en/html/opie-embeddedkonsole.html +++ b/help/en/html/embeddedkonsole.html diff --git a/help/en/html/euroconv.html b/help/en/html/euroconv.html new file mode 100644 index 0000000..f952180 --- a/dev/null +++ b/help/en/html/euroconv.html @@ -0,0 +1,7 @@ +<html> <head> <title>euroconv</title> </head> +<body> + <center><h1>euroconv</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/fifteen.html b/help/en/html/fifteen.html new file mode 100644 index 0000000..4e5516d --- a/dev/null +++ b/help/en/html/fifteen.html @@ -0,0 +1,7 @@ +<html> <head> <title>fifteen</title> </head> +<body> + <center><h1>fifteen</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/opie-formatter.html b/help/en/html/formatter.html index 5512a61..5512a61 100644 --- a/help/en/html/opie-formatter.html +++ b/help/en/html/formatter.html diff --git a/help/en/html/go.html b/help/en/html/go.html new file mode 100644 index 0000000..55d4d50 --- a/dev/null +++ b/help/en/html/go.html @@ -0,0 +1,7 @@ +<html> <head> <title>go</title> </head> +<body> + <center><h1>go</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/gsmtool.html b/help/en/html/gsmtool.html new file mode 100644 index 0000000..832d52a --- a/dev/null +++ b/help/en/html/gsmtool.html @@ -0,0 +1,7 @@ +<html> <head> <title>gsmtool</title> </head> +<body> + <center><h1>gsmtool</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/index.html b/help/en/html/index.html new file mode 100644 index 0000000..8468786 --- a/dev/null +++ b/help/en/html/index.html @@ -0,0 +1,18 @@ +<html> +<head> +<title>OPIE</title> +</head> +<body> +<h1 align=center>Qtopia</h1> +<p><center> <img align="middle" src="logo32.png" width="64" height="32"> +</center> <center> Built with <a href="help/about-qt-embedded.html">Qt/Embedded</a> from Trolltech. </center></p> +<h2><a href="help/help.html">Using Qtopia</a></h2> +<h2><a href="help/sync.html">Synchronizing with a PC</a></h2> +<h2><a href="help/applications.html">Applications</a></h2> +<h2><a href="help/1Pim.html">PIM</a></h2> +<h2><a href="help/games.html">Games</a></h2> +<h2><a href="help/settings.html">Settings</a></h2> +<h2><a href="help/documents.html">Documents</a></h2> +<h2><a href="help/about.html">About OPIE</a></h2w> +</body> +</html> diff --git a/help/en/html/kbill.html b/help/en/html/kbill.html new file mode 100644 index 0000000..1a43b42 --- a/dev/null +++ b/help/en/html/kbill.html @@ -0,0 +1,7 @@ +<html> <head> <title>kbill</title> </head> +<body> + <center><h1>kbill</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/kcheckers.html b/help/en/html/kcheckers.html new file mode 100644 index 0000000..9cdcdfd --- a/dev/null +++ b/help/en/html/kcheckers.html @@ -0,0 +1,7 @@ +<html> <head> <title>kcheckers</title> </head> +<body> + <center><h1>kcheckers</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/keypebble.html b/help/en/html/keypebble.html new file mode 100644 index 0000000..e968ddc --- a/dev/null +++ b/help/en/html/keypebble.html @@ -0,0 +1,7 @@ +<html> <head> <title>keypebble</title> </head> +<body> + <center><h1>keypebble</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/kpacman.html b/help/en/html/kpacman.html new file mode 100644 index 0000000..d9c2126 --- a/dev/null +++ b/help/en/html/kpacman.html @@ -0,0 +1,7 @@ +<html> <head> <title>kpacman</title> </head> +<body> + <center><h1>kpacman</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/language.html b/help/en/html/language.html new file mode 100644 index 0000000..71e23e3 --- a/dev/null +++ b/help/en/html/language.html @@ -0,0 +1,7 @@ +<html> <head> <title>language</title> </head> +<body> + <center><h1>language</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/launchersettings.html b/help/en/html/launchersettings.html new file mode 100644 index 0000000..aa46099 --- a/dev/null +++ b/help/en/html/launchersettings.html @@ -0,0 +1,7 @@ +<html> <head> <title>launchersettings</title> </head> +<body> + <center><h1>launchersettings</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/light-and-power.html b/help/en/html/light-and-power.html new file mode 100644 index 0000000..2365075 --- a/dev/null +++ b/help/en/html/light-and-power.html @@ -0,0 +1,7 @@ +<html> <head> <title>light-and-power</title> </head> +<body> + <center><h1>light-and-power</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/mail.html b/help/en/html/mail.html new file mode 100644 index 0000000..b84242c --- a/dev/null +++ b/help/en/html/mail.html @@ -0,0 +1,8 @@ +<html><head><title>E-Mail</title></head><body> +<img src="mail/desktopicon.png"> +<h1>E-Mail</h1> +<P align="center">FIXME Description<br> +<ul align="left"> +<li><a href="mail/about.html">About</a></li> +</ul> +</body></html> diff --git a/help/en/html/mailit.html b/help/en/html/mailit.html new file mode 100644 index 0000000..f93cc56 --- a/dev/null +++ b/help/en/html/mailit.html @@ -0,0 +1,15 @@ +<html><head><title>Mail It</title></head><body> +<img src="../../../pics/mailit/desktopicon.png"></img> +<h1>Mail It</h1> +<P align="center"><I>MailIt</I> is a lightweight POP3 mailing application<br> +<ul align="left"> +<li><a href="mailit/features.html">Features</a></li> +<li><a href="mailit/mview.html">Main view</a></li> +<li><a href="mailit/readmail.html">Mail reader view</a></li> +<li><a href="mailit/sendmail.html">Send view</a></li> +<li><a href="mailit/attachments.html">Attachment editor</a></li> +<li><a href="mailit/statusbar.html">Statusbar</a></li> +<li><a href="mailit/settings.html">Settings editor</a></li> +<li><a href="mailit/about.html">About</a></li> +</ul> +</body></html> diff --git a/help/en/html/mediummount.html b/help/en/html/mediummount.html new file mode 100644 index 0000000..b4d23ad --- a/dev/null +++ b/help/en/html/mediummount.html @@ -0,0 +1,7 @@ +<html> <head> <title>mediummount</title> </head> +<body> + <center><h1>mediummount</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/mindbreaker.html b/help/en/html/mindbreaker.html new file mode 100644 index 0000000..2259876 --- a/dev/null +++ b/help/en/html/mindbreaker.html @@ -0,0 +1,7 @@ +<html> <head> <title>mindbreaker</title> </head> +<body> + <center><h1>mindbreaker</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/minesweep.html b/help/en/html/minesweep.html new file mode 100644 index 0000000..ddacb12 --- a/dev/null +++ b/help/en/html/minesweep.html @@ -0,0 +1,7 @@ +<html> <head> <title>minesweep</title> </head> +<body> + <center><h1>minesweep</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/mobilemsg.html b/help/en/html/mobilemsg.html new file mode 100644 index 0000000..97c2a0f --- a/dev/null +++ b/help/en/html/mobilemsg.html @@ -0,0 +1,7 @@ +<html> <head> <title>mobilemsg</title> </head> +<body> + <center><h1>mobilemsg</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/networksettings.html b/help/en/html/networksettings.html new file mode 100644 index 0000000..7ea1fc0 --- a/dev/null +++ b/help/en/html/networksettings.html @@ -0,0 +1,7 @@ +<html> <head> <title>networksettings</title> </head> +<body> + <center><h1>networksettings</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/odict.html b/help/en/html/odict.html new file mode 100644 index 0000000..5808650 --- a/dev/null +++ b/help/en/html/odict.html @@ -0,0 +1,7 @@ +<html> <head> <title>odict</title> </head> +<body> + <center><h1>odict</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/opie-advancedfm.html b/help/en/html/opie-advancedfm.html deleted file mode 100644 index ad75237..0000000 --- a/help/en/html/opie-advancedfm.html +++ b/dev/null @@ -1,54 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> -<html> <head> -<title>AdvancedFm</title> -</head> - -<body><center> -<h1>Opie-AdvancedFm</h1> -<h2>Advanced File Manager</h2> -</center> -<br> -<table width=100%> -<tr><td width=50% valign="top"> - -</td> -<td width=50% valign="top"> - -</td> -</tr> -</table> -<P> AdvancedFm is an advanced file management for Opie. Using the two -tabs, you can move, rename, copy, symlink, set file permissions between the two directories. -<br>All actions on a file can be found by holding your stylus down on a -file. A popup menu will appear. -<br>If you have a Control key available, you can select multiple -files, by holding the Ctrl key while you highlight the files. -This way you can symlink selected files in a directory to the directory -in the other tab. - -<P> You can also run commands on files, on in a directory by -selecting "Run Command" from the menu. "Run Command with output" will -send the standard output from your command to a widget so you can see, or study it. You -can also save it to a file if you wish. - -<P> The buttons at top change your current directory to (from left to -right)<br> -[$QPEDIR] [/mnt/cf] [/mnt/sd] (<-for those that have it) [cd up parent dir] -[~/Documents] [$HOME] - -<P> You can type a directory into the edit combo at the top, hit enter -and change to it. - -<P> The titlebar at top tells you what filesystem is used on the -current directory, and how much free space is available there. - - - - -<hr> -<address><center><pre> -© 2002<a href="mailto:llornkcor@handhelds.org">ljp</a> llornkcor@handhelds.org</a></pre></address> -<!-- hhmts start --> -Last modified: Thu Oct 17 23:45:41 +0000 2002 -<!-- hhmts end --> -</body> </html> diff --git a/help/en/html/opie-appearance-help-en.control b/help/en/html/opie-appearance-help-en.control new file mode 100644 index 0000000..7cf47f2 --- a/dev/null +++ b/help/en/html/opie-appearance-help-en.control @@ -0,0 +1,9 @@ +Package: opie-appearance-help-en +Files: help/en/html/appearance.html help/en/html/appearance +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-appearance +License: GPL +Description: appearance help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-appskey-help-en.control b/help/en/html/opie-appskey-help-en.control deleted file mode 100644 index 257e64d..0000000 --- a/help/en/html/opie-appskey-help-en.control +++ b/dev/null @@ -1,11 +0,0 @@ -Package: opie-appskey-help-en -Files: help/en/html/opie-appskey.html -Priority: optional -Section: opie/onlinedoc -Maintainer: ljp <llornkcor@handhelds.org> -Architecture: arm -Version: $QPE_VERSION-$SUB_VERSION -Depends: opie-appskey -License: GPL -Description: Application Key help files (english) - diff --git a/help/en/html/opie-appskey.html b/help/en/html/opie-appskey.html deleted file mode 100644 index 02b3742..0000000 --- a/help/en/html/opie-appskey.html +++ b/dev/null @@ -1,24 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> -<html> <head> -<title>Opie-Appskey</title> -</head> - -<body> -<center><h1>Opie-Appskey</h1></center> - -<P>Opie Application Key is a program to select which buttons on your -Zaurus, or Ipaq starts which programs.<br> -The icons should match which button it controls.<br> -It scans the /opt/QtPalmtop/apps directory for executables. -<br>Appskey does not really remap the buttons, and can only execute binaries -in the .desktop files in /opt/QtPalmtop/apps directory. - - -<hr> -<center> -<address><center><pre> -© 2002<a href="mailto:llornkcor@handhelds.org">ljp</a> llornkcor@handhelds.org</a></pre></address> -<!-- hhmts start --> -Last modified: Fri Oct 18 02:28:04 +0000 2002 -<!-- hhmts end --> -</body> </html> diff --git a/help/en/html/opie-backgammon-help-en.control b/help/en/html/opie-backgammon-help-en.control new file mode 100644 index 0000000..50f7963 --- a/dev/null +++ b/help/en/html/opie-backgammon-help-en.control @@ -0,0 +1,10 @@ +Package: opie-backgammon-help-en +Files: help/en/html/backgammon.html help/en/html/backgammon +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Architecture: arm +Depends: opie-backgammon +License: GPL +Description: backgammon help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-backup-help-en.control b/help/en/html/opie-backup-help-en.control new file mode 100644 index 0000000..fb20668 --- a/dev/null +++ b/help/en/html/opie-backup-help-en.control @@ -0,0 +1,10 @@ +Package: opie-backup-help-en +Files: help/en/html/backup.html help/en/html/backup +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Architecture: arm +Depends: opie-backup +License: GPL +Description: backup help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-bluetooth-manager-help-en.control b/help/en/html/opie-bluetooth-manager-help-en.control new file mode 100644 index 0000000..425e8c3 --- a/dev/null +++ b/help/en/html/opie-bluetooth-manager-help-en.control @@ -0,0 +1,10 @@ +Package: opie-bluetooth-manager-help-en +Files: help/en/html/bluetooth-manager.html help/en/html/bluetooth-manager +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Architecture: arm +Depends: opie-bluetooth-manager +License: GPL +Description: bluetooth-manager help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-bounce-help-en.control b/help/en/html/opie-bounce-help-en.control new file mode 100644 index 0000000..b0a381e --- a/dev/null +++ b/help/en/html/opie-bounce-help-en.control @@ -0,0 +1,9 @@ +Package: opie-bounce-help-en +Files: help/en/html/bounce.html help/en/html/bounce +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-bounce +License: GPL +Description: bounce help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-buttonsettings-help-en.control b/help/en/html/opie-buttonsettings-help-en.control new file mode 100644 index 0000000..0d57177 --- a/dev/null +++ b/help/en/html/opie-buttonsettings-help-en.control @@ -0,0 +1,9 @@ +Package: opie-buttonsettings-help-en +Files: help/en/html/buttonsettings.html help/en/html/buttonsettings +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-buttonsettings +License: GPL +Description: buttonsettings help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-buzzword-help-en.control b/help/en/html/opie-buzzword-help-en.control new file mode 100644 index 0000000..0fa6474 --- a/dev/null +++ b/help/en/html/opie-buzzword-help-en.control @@ -0,0 +1,9 @@ +Package: opie-buzzword-help-en +Files: help/en/html/buzzword.html help/en/html/buzzword +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-buzzword +License: GPL +Description: buzzword help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-calculator-help-en.control b/help/en/html/opie-calculator-help-en.control new file mode 100644 index 0000000..7076632 --- a/dev/null +++ b/help/en/html/opie-calculator-help-en.control @@ -0,0 +1,9 @@ +Package: opie-calculator-help-en +Files: help/en/html/calculator.html help/en/html/calculator +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-calculator +License: GPL +Description: calculator help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-calibrate-help-en.control b/help/en/html/opie-calibrate-help-en.control new file mode 100644 index 0000000..169cc93 --- a/dev/null +++ b/help/en/html/opie-calibrate-help-en.control @@ -0,0 +1,9 @@ +Package: opie-calibrate-help-en +Files: help/en/html/calibrate.html help/en/html/calibrate +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-calibrate +License: GPL +Description: calibrate help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-checkbook-help-en.control b/help/en/html/opie-checkbook-help-en.control new file mode 100644 index 0000000..66d19f3 --- a/dev/null +++ b/help/en/html/opie-checkbook-help-en.control @@ -0,0 +1,9 @@ +Package: opie-checkbook-help-en +Files: help/en/html/checkbook.html help/en/html/checkbook +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-checkbook +License: GPL +Description: checkbook help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-citytime-help-en.control b/help/en/html/opie-citytime-help-en.control new file mode 100644 index 0000000..b27c58b --- a/dev/null +++ b/help/en/html/opie-citytime-help-en.control @@ -0,0 +1,9 @@ +Package: opie-citytime-help-en +Files: help/en/html/citytime.html help/en/html/citytime +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-citytime +License: GPL +Description: citytime help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-clock-help-en.control b/help/en/html/opie-clock-help-en.control new file mode 100644 index 0000000..f452350 --- a/dev/null +++ b/help/en/html/opie-clock-help-en.control @@ -0,0 +1,9 @@ +Package: opie-clock-help-en +Files: help/en/html/clock.html help/en/html/clock +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-clock +License: GPL +Description: clock help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-confedit-help-en.control b/help/en/html/opie-confedit-help-en.control new file mode 100644 index 0000000..a1bd441 --- a/dev/null +++ b/help/en/html/opie-confedit-help-en.control @@ -0,0 +1,9 @@ +Package: opie-confedit-help-en +Files: help/en/html/confedit.html help/en/html/confedit +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-confedit +License: GPL +Description: confedit help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-euroconv-help-en.control b/help/en/html/opie-euroconv-help-en.control new file mode 100644 index 0000000..f83660c --- a/dev/null +++ b/help/en/html/opie-euroconv-help-en.control @@ -0,0 +1,9 @@ +Package: opie-euroconv-help-en +Files: help/en/html/euroconv.html help/en/html/euroconv +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-euroconv +License: GPL +Description: euroconv help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-fifteen-help-en.control b/help/en/html/opie-fifteen-help-en.control new file mode 100644 index 0000000..f431487 --- a/dev/null +++ b/help/en/html/opie-fifteen-help-en.control @@ -0,0 +1,9 @@ +Package: opie-fifteen-help-en +Files: help/en/html/fifteen.html help/en/html/fifteen +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-fifteen +License: GPL +Description: fifteen help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-go-help-en.control b/help/en/html/opie-go-help-en.control new file mode 100644 index 0000000..824f762 --- a/dev/null +++ b/help/en/html/opie-go-help-en.control @@ -0,0 +1,9 @@ +Package: opie-go-help-en +Files: help/en/html/go.html help/en/html/go +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-go +License: GPL +Description: go help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-gsmtool-help-en.control b/help/en/html/opie-gsmtool-help-en.control new file mode 100644 index 0000000..224cf13 --- a/dev/null +++ b/help/en/html/opie-gsmtool-help-en.control @@ -0,0 +1,9 @@ +Package: opie-gsmtool-help-en +Files: help/en/html/gsmtool.html help/en/html/gsmtool +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-gsmtool +License: GPL +Description: gsmtool help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-kbill-help-en.control b/help/en/html/opie-kbill-help-en.control new file mode 100644 index 0000000..39e5214 --- a/dev/null +++ b/help/en/html/opie-kbill-help-en.control @@ -0,0 +1,9 @@ +Package: opie-kbill-help-en +Files: help/en/html/kbill.html help/en/html/kbill +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-kbill +License: GPL +Description: kbill help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-kcheckers-help-en.control b/help/en/html/opie-kcheckers-help-en.control new file mode 100644 index 0000000..3684de8 --- a/dev/null +++ b/help/en/html/opie-kcheckers-help-en.control @@ -0,0 +1,9 @@ +Package: opie-kcheckers-help-en +Files: help/en/html/kcheckers.html help/en/html/kcheckers +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-kcheckers +License: GPL +Description: kcheckers help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-kpacman-help-en.control b/help/en/html/opie-kpacman-help-en.control new file mode 100644 index 0000000..d572fe1 --- a/dev/null +++ b/help/en/html/opie-kpacman-help-en.control @@ -0,0 +1,9 @@ +Package: opie-kpacman-help-en +Files: help/en/html/kpacman.html help/en/html/kpacman +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-kpacman +License: GPL +Description: kpacman help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-language-help-en.control b/help/en/html/opie-language-help-en.control new file mode 100644 index 0000000..616c636 --- a/dev/null +++ b/help/en/html/opie-language-help-en.control @@ -0,0 +1,9 @@ +Package: opie-language-help-en +Files: help/en/html/language.html help/en/html/language +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-language +License: GPL +Description: language help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-launchersettings-help-en.control b/help/en/html/opie-launchersettings-help-en.control new file mode 100644 index 0000000..3bc8ead --- a/dev/null +++ b/help/en/html/opie-launchersettings-help-en.control @@ -0,0 +1,9 @@ +Package: opie-launchersettings-help-en +Files: help/en/html/launchersettings.html help/en/html/launchersettings +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-launchersettings +License: GPL +Description: launchersettings help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-light-and-power-help-en.control b/help/en/html/opie-light-and-power-help-en.control new file mode 100644 index 0000000..b563f60 --- a/dev/null +++ b/help/en/html/opie-light-and-power-help-en.control @@ -0,0 +1,9 @@ +Package: opie-light-and-power-help-en +Files: help/en/html/light-and-power.html help/en/html/light-and-power +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-light-and-power +License: GPL +Description: light-and-power help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-mediummount-help-en.control b/help/en/html/opie-mediummount-help-en.control new file mode 100644 index 0000000..22261ce --- a/dev/null +++ b/help/en/html/opie-mediummount-help-en.control @@ -0,0 +1,9 @@ +Package: opie-mediummount-help-en +Files: help/en/html/mediummount.html help/en/html/mediummount +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-mediummount +License: GPL +Description: mediummount help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-mindbreaker-help-en.control b/help/en/html/opie-mindbreaker-help-en.control new file mode 100644 index 0000000..828dde7 --- a/dev/null +++ b/help/en/html/opie-mindbreaker-help-en.control @@ -0,0 +1,9 @@ +Package: opie-mindbreaker-help-en +Files: help/en/html/mindbreaker.html help/en/html/mindbreaker +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-mindbreaker +License: GPL +Description: mindbreaker help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-minesweep-help-en.control b/help/en/html/opie-minesweep-help-en.control new file mode 100644 index 0000000..e81ba2d --- a/dev/null +++ b/help/en/html/opie-minesweep-help-en.control @@ -0,0 +1,9 @@ +Package: opie-minesweep-help-en +Files: help/en/html/minesweep.html help/en/html/minesweep +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-minesweep +License: GPL +Description: minesweep help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-mobilemsg-help-en.control b/help/en/html/opie-mobilemsg-help-en.control new file mode 100644 index 0000000..a976e6d --- a/dev/null +++ b/help/en/html/opie-mobilemsg-help-en.control @@ -0,0 +1,9 @@ +Package: opie-mobilemsg-help-en +Files: help/en/html/mobilemsg.html help/en/html/mobilemsg +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-mobilemsg +License: GPL +Description: mobilemsg help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-networksettings-help-en.control b/help/en/html/opie-networksettings-help-en.control new file mode 100644 index 0000000..2cf7ca9 --- a/dev/null +++ b/help/en/html/opie-networksettings-help-en.control @@ -0,0 +1,9 @@ +Package: opie-networksettings-help-en +Files: help/en/html/networksettings.html help/en/html/networksettings +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-networksettings +License: GPL +Description: networksettings help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-odict-help-en.control b/help/en/html/opie-odict-help-en.control new file mode 100644 index 0000000..43ec937 --- a/dev/null +++ b/help/en/html/opie-odict-help-en.control @@ -0,0 +1,9 @@ +Package: opie-odict-help-en +Files: help/en/html/odict.html help/en/html/odict +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-odict +License: GPL +Description: odict help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-opie-write-help-en.control b/help/en/html/opie-opie-write-help-en.control new file mode 100644 index 0000000..cf1fe49 --- a/dev/null +++ b/help/en/html/opie-opie-write-help-en.control @@ -0,0 +1,9 @@ +Package: opie-opie-write-help-en +Files: help/en/html/opie-write.html help/en/html/opie-write +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-opie-write +License: GPL +Description: opie-write help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-opieftp-help-en.control b/help/en/html/opie-opieftp-help-en.control new file mode 100644 index 0000000..d7da397 --- a/dev/null +++ b/help/en/html/opie-opieftp-help-en.control @@ -0,0 +1,9 @@ +Package: opie-opieftp-help-en +Files: help/en/html/opieftp.html help/en/html/opieftp +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-opieftp +License: GPL +Description: opieftp help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-opieirc-help-en.control b/help/en/html/opie-opieirc-help-en.control new file mode 100644 index 0000000..a5027e0 --- a/dev/null +++ b/help/en/html/opie-opieirc-help-en.control @@ -0,0 +1,9 @@ +Package: opie-opieirc-help-en +Files: help/en/html/opieirc.html help/en/html/opieirc +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-opieirc +License: GPL +Description: opieirc help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-opieplayer-help-en.control b/help/en/html/opie-opieplayer-help-en.control new file mode 100644 index 0000000..d3ac2fd --- a/dev/null +++ b/help/en/html/opie-opieplayer-help-en.control @@ -0,0 +1,9 @@ +Package: opie-opieplayer-help-en +Files: help/en/html/opieplayer.html help/en/html/opieplayer +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-opieplayer +License: GPL +Description: opieplayer help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-opierec-help-en.control b/help/en/html/opie-opierec-help-en.control new file mode 100644 index 0000000..bc17507 --- a/dev/null +++ b/help/en/html/opie-opierec-help-en.control @@ -0,0 +1,9 @@ +Package: opie-opierec-help-en +Files: help/en/html/opierec.html +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-opierec +License: GPL +Description: opierec help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-oxygen-help-en.control b/help/en/html/opie-oxygen-help-en.control new file mode 100644 index 0000000..8ee0c52 --- a/dev/null +++ b/help/en/html/opie-oxygen-help-en.control @@ -0,0 +1,9 @@ +Package: opie-oxygen-help-en +Files: help/en/html/oxygen.html help/en/html/oxygen +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-oxygen +License: GPL +Description: oxygen help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-parashoot-help-en.control b/help/en/html/opie-parashoot-help-en.control new file mode 100644 index 0000000..56e2ed2 --- a/dev/null +++ b/help/en/html/opie-parashoot-help-en.control @@ -0,0 +1,9 @@ +Package: opie-parashoot-help-en +Files: help/en/html/parashoot.html help/en/html/parashoot +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-parashoot +License: GPL +Description: parashoot help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-patience-help-en.control b/help/en/html/opie-patience-help-en.control new file mode 100644 index 0000000..b81862d --- a/dev/null +++ b/help/en/html/opie-patience-help-en.control @@ -0,0 +1,9 @@ +Package: opie-patience-help-en +Files: help/en/html/patience.html help/en/html/patience +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-patience +License: GPL +Description: patience help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-qasteroids-help-en.control b/help/en/html/opie-qasteroids-help-en.control new file mode 100644 index 0000000..ba81572 --- a/dev/null +++ b/help/en/html/opie-qasteroids-help-en.control @@ -0,0 +1,9 @@ +Package: opie-qasteroids-help-en +Files: help/en/html/qasteroids.html help/en/html/qasteroids +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-qasteroids +License: GPL +Description: qasteroids help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-qpdf-help-en.control b/help/en/html/opie-qpdf-help-en.control new file mode 100644 index 0000000..a87b8bb --- a/dev/null +++ b/help/en/html/opie-qpdf-help-en.control @@ -0,0 +1,9 @@ +Package: opie-qpdf-help-en +Files: help/en/html/qpdf.html help/en/html/qpdf +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-qpdf +License: GPL +Description: qpdf help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-reader-help-en.control b/help/en/html/opie-reader-help-en.control new file mode 100644 index 0000000..2a4194e --- a/dev/null +++ b/help/en/html/opie-reader-help-en.control @@ -0,0 +1,9 @@ +Package: opie-reader-help-en +Files: help/en/html/reader.html help/en/html/reader +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-reader +License: GPL +Description: reader help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-remote-help-en.control b/help/en/html/opie-remote-help-en.control new file mode 100644 index 0000000..94f03a8 --- a/dev/null +++ b/help/en/html/opie-remote-help-en.control @@ -0,0 +1,9 @@ +Package: opie-remote-help-en +Files: help/en/html/remote.html help/en/html/remote +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-remote +License: GPL +Description: remote help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-rotation-help-en.control b/help/en/html/opie-rotation-help-en.control new file mode 100644 index 0000000..b5593b1 --- a/dev/null +++ b/help/en/html/opie-rotation-help-en.control @@ -0,0 +1,9 @@ +Package: opie-rotation-help-en +Files: help/en/html/rotation.html help/en/html/rotation +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-rotation +License: GPL +Description: rotation help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-security-help-en.control b/help/en/html/opie-security-help-en.control new file mode 100644 index 0000000..3aef0e0 --- a/dev/null +++ b/help/en/html/opie-security-help-en.control @@ -0,0 +1,9 @@ +Package: opie-security-help-en +Files: help/en/html/security.html help/en/html/security +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-security +License: GPL +Description: security help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-sfcave-help-en.control b/help/en/html/opie-sfcave-help-en.control new file mode 100644 index 0000000..b8f1ab6 --- a/dev/null +++ b/help/en/html/opie-sfcave-help-en.control @@ -0,0 +1,9 @@ +Package: opie-sfcave-help-en +Files: help/en/html/sfcave.html help/en/html/sfcave +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-sfcave +License: GPL +Description: sfcave help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-sheetqt-help-en.control b/help/en/html/opie-sheetqt-help-en.control new file mode 100644 index 0000000..de47fe5 --- a/dev/null +++ b/help/en/html/opie-sheetqt-help-en.control @@ -0,0 +1,9 @@ +Package: opie-sheetqt-help-en +Files: help/en/html/sheetqt.html help/en/html/sheetqt +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-sheetqt +License: GPL +Description: sheetqt help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-showimg-help-en.control b/help/en/html/opie-showimg-help-en.control new file mode 100644 index 0000000..e4fced5 --- a/dev/null +++ b/help/en/html/opie-showimg-help-en.control @@ -0,0 +1,9 @@ +Package: opie-showimg-help-en +Files: help/en/html/showimg.html help/en/html/showimg +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-showimg +License: GPL +Description: showimg help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-shutdown-help-en.control b/help/en/html/opie-shutdown-help-en.control new file mode 100644 index 0000000..cf4b153 --- a/dev/null +++ b/help/en/html/opie-shutdown-help-en.control @@ -0,0 +1,9 @@ +Package: opie-shutdown-help-en +Files: help/en/html/shutdown.html help/en/html/shutdown +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-shutdown +License: GPL +Description: shutdown help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-snake-help-en.control b/help/en/html/opie-snake-help-en.control new file mode 100644 index 0000000..4b82cf9 --- a/dev/null +++ b/help/en/html/opie-snake-help-en.control @@ -0,0 +1,9 @@ +Package: opie-snake-help-en +Files: help/en/html/snake.html help/en/html/snake +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-snake +License: GPL +Description: snake help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-sound-help-en.control b/help/en/html/opie-sound-help-en.control new file mode 100644 index 0000000..cb34934 --- a/dev/null +++ b/help/en/html/opie-sound-help-en.control @@ -0,0 +1,9 @@ +Package: opie-sound-help-en +Files: help/en/html/sound.html help/en/html/sound +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-sound +License: GPL +Description: sound help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-sshkeys-help-en.control b/help/en/html/opie-sshkeys-help-en.control new file mode 100644 index 0000000..f3528c2 --- a/dev/null +++ b/help/en/html/opie-sshkeys-help-en.control @@ -0,0 +1,9 @@ +Package: opie-sshkeys-help-en +Files: help/en/html/sshkeys.html help/en/html/sshkeys +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-sshkeys +License: GPL +Description: sshkeys help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-sysinfo-help-en.control b/help/en/html/opie-sysinfo-help-en.control new file mode 100644 index 0000000..21ccd27 --- a/dev/null +++ b/help/en/html/opie-sysinfo-help-en.control @@ -0,0 +1,9 @@ +Package: opie-sysinfo-help-en +Files: help/en/html/sysinfo.html help/en/html/sysinfo +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-sysinfo +License: GPL +Description: sysinfo help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-systemtime-help-en.control b/help/en/html/opie-systemtime-help-en.control new file mode 100644 index 0000000..6b16f46 --- a/dev/null +++ b/help/en/html/opie-systemtime-help-en.control @@ -0,0 +1,9 @@ +Package: opie-systemtime-help-en +Files: help/en/html/systemtime.html help/en/html/systemtime +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-systemtime +License: GPL +Description: systemtime help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-tableviewer-help-en.control b/help/en/html/opie-tableviewer-help-en.control new file mode 100644 index 0000000..3394367 --- a/dev/null +++ b/help/en/html/opie-tableviewer-help-en.control @@ -0,0 +1,9 @@ +Package: opie-tableviewer-help-en +Files: help/en/html/tableviewer.html help/en/html/tableviewer +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-tableviewer +License: GPL +Description: tableviewer help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-tetrix-help-en.control b/help/en/html/opie-tetrix-help-en.control new file mode 100644 index 0000000..c5a09f9 --- a/dev/null +++ b/help/en/html/opie-tetrix-help-en.control @@ -0,0 +1,9 @@ +Package: opie-tetrix-help-en +Files: help/en/html/tetrix.html help/en/html/tetrix +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-tetrix +License: GPL +Description: tetrix help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-tictac-help-en.control b/help/en/html/opie-tictac-help-en.control new file mode 100644 index 0000000..5336b2a --- a/dev/null +++ b/help/en/html/opie-tictac-help-en.control @@ -0,0 +1,9 @@ +Package: opie-tictac-help-en +Files: help/en/html/tictac.html help/en/html/tictac +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-tictac +License: GPL +Description: tictac help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-tinykate-help-en.control b/help/en/html/opie-tinykate-help-en.control new file mode 100644 index 0000000..602bfd2 --- a/dev/null +++ b/help/en/html/opie-tinykate-help-en.control @@ -0,0 +1,9 @@ +Package: opie-tinykate-help-en +Files: help/en/html/tinykate.html help/en/html/tinykate +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-tinykate +License: GPL +Description: tinykate help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-ubrowser-help-en.control b/help/en/html/opie-ubrowser-help-en.control new file mode 100644 index 0000000..98b3b7a --- a/dev/null +++ b/help/en/html/opie-ubrowser-help-en.control @@ -0,0 +1,9 @@ +Package: opie-ubrowser-help-en +Files: help/en/html/ubrowser.html help/en/html/ubrowser +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-ubrowser +License: GPL +Description: ubrowser help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-usermanager-help-en.control b/help/en/html/opie-usermanager-help-en.control new file mode 100644 index 0000000..9642da1 --- a/dev/null +++ b/help/en/html/opie-usermanager-help-en.control @@ -0,0 +1,9 @@ +Package: opie-usermanager-help-en +Files: help/en/html/usermanager.html help/en/html/usermanager +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-usermanager +License: GPL +Description: usermanager help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-vmemo.html b/help/en/html/opie-vmemo.html deleted file mode 100644 index f22e8a7..0000000 --- a/help/en/html/opie-vmemo.html +++ b/dev/null @@ -1,46 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> -<html> <head> -<title>Vmemo</title> -</head> - -<body> -<center><h1>Vmemo</h1></center> -Vmemo is a voice recording taskbar applet. It needs the vmemo-settings -package to also be installed. -<br>This document covers both Vmemo taskbar -applet and Vmemo settings app. - -<h2>Vmemo usage:</h2> -<P>Vmemo must first be set up in the <b>Vmemo Settings</b> app available from the -Settings tab. -<br>Once you do that, you can either start recording by a key press, or -clicking on the microphone icon on the taskbar. -<br>You stop the recording by pressing your chosen recording key again, or -by clicking on the taskbar icon a second time, if you are using that. - -<h2>Vmemo Settings usage:</h2> -In Vmemo settings you can select various options for recording with -vmemo. -<BR><B>Visual Alerts</b> will raise a window when you are recording, -and will disappear when it stops recording. -<BR><B>Sample Rate</B> will allow you to select various sample rates -available. The higher the sample rate, the better quality sound, but -also larger files. -<BR><B>Recording Directory</B> allows you to select where you want the -files to be placed when recording. -<BR><B>Recording Key</B> Selects which button start/ends recording or -to use the taskbar icon for recording. -<BR><B>Recording Limit</B> Lets you choose how long the recording -will last. Unlimited will continue recording until you stop it by -pushing your selected recording button again, or by pusching on the -taskbar icon. -<BR><B>Restart Opie if needed</B> will restart opie after you close -Vmemo Settings app, if you have chosen a different recording key. - -<hr> -<address><center><pre> -© 2002<a href="mailto:llornkcor@handhelds.org">ljp</a> llornkcor@handhelds.org</a></pre></address> -<!-- hhmts start --> -Last modified: Fri Oct 18 01:16:44 +0000 2002 -<!-- hhmts end --> -</body> </html> diff --git a/help/en/html/opie-wlansetup-help-en.control b/help/en/html/opie-wlansetup-help-en.control new file mode 100644 index 0000000..7f555f7 --- a/dev/null +++ b/help/en/html/opie-wlansetup-help-en.control @@ -0,0 +1,9 @@ +Package: opie-wlansetup-help-en +Files: help/en/html/wlansetup.html help/en/html/wlansetup +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-wlansetup +License: GPL +Description: wlansetup help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-wordgame-help-en.control b/help/en/html/opie-wordgame-help-en.control new file mode 100644 index 0000000..f9961fc --- a/dev/null +++ b/help/en/html/opie-wordgame-help-en.control @@ -0,0 +1,9 @@ +Package: opie-wordgame-help-en +Files: help/en/html/wordgame.html help/en/html/wordgame +Priority: optional +Section: opie/onlinedoc +Maintainer: Team Opie <opie@handhelds.org> +Depends: opie-wordgame +License: GPL +Description: wordgame help files (en) +Version: $QPE_VERSION$EXTRAVERSION diff --git a/help/en/html/opie-write.html b/help/en/html/opie-write.html new file mode 100644 index 0000000..c6d92f1 --- a/dev/null +++ b/help/en/html/opie-write.html @@ -0,0 +1,7 @@ +<html> <head> <title>opie-write</title> </head> +<body> + <center><h1>opie-write</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/opieftp.html b/help/en/html/opieftp.html new file mode 100644 index 0000000..bf9db2a --- a/dev/null +++ b/help/en/html/opieftp.html @@ -0,0 +1,7 @@ +<html> <head> <title>opieftp</title> </head> +<body> + <center><h1>opieftp</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/opieplayer.html b/help/en/html/opieplayer.html new file mode 100644 index 0000000..8acc0ec --- a/dev/null +++ b/help/en/html/opieplayer.html @@ -0,0 +1,7 @@ +<html> <head> <title>opieplayer</title> </head> +<body> + <center><h1>opieplayer</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/opierec.html b/help/en/html/opierec.html new file mode 100644 index 0000000..6644a07 --- a/dev/null +++ b/help/en/html/opierec.html @@ -0,0 +1,71 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> +<html> <head> +<title>Opierec</title> +</head> + +<body> +<h1>Opierec</h1> +<h4> +Opierec</h4> is a simple voice recording and audio sampling application for embedded devices.<P> +Opierec is easy to use, and can record just by pushing your PDA's +<B>toggle</B> switch, or by clicking on Opierec's +<B>Rec</B> button.<BR> +It can be used for voice memos, or CD quality audio sampling. +<P> +You first need to configure where you want your file to be recorded at, +depending on what's available CF, or SD cards. The default is +recording to your devices main memory. You +can record wave files using Intel/DVI ADPCM compression format, so they won't take so much space on your device. You will need to +choose your default recording length, but can always stop recording by +hitting the <B>toggle</B> button, or the <B>Stop</B> button. +<P>You can delete, rename, beam (via Ir, if available), or play files by holding the stylus down on +the selected file in the file view. +<P>You can also 'scroll' through a file by either grabbing the slider, +or by using the <B>Forward</B> or <B>Backward</B> buttons, or the +<B>right</B> and <B>left toggle</B> button. +<P>On the Configuration tab, you have a choice between sampling rates, +bit rates ( disabled when using compressed wave), size limit in +seconds, and file destination media. You are also able to adjust the +sound's input and output levels, or quickly mute either. +<P><P> +Opierec's audio files are compatible with desktop audio editors +and players. +<P><P> +<HR><P> +Opierec was written by <a +href="mailto:llornkcor@handhelds.org">L.J. Potter</a> llornkcor@handhelds.org<br> +Copyright +© 2002 by L.J. Potter +<HR> +ADPCM encoding is<P> +<CODE> + +Copyright 1992 by Stichting Mathematisch Centrum, Amsterdam, The +Netherlands. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the names of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +</CODE> +<P><P><a href="http://www.trolltech.com">Trolltech</a> +<hr> +<address></address> +<!-- hhmts start --> +Last modified: Mon Jun 9 15:56:41 MDT 2003 +<!-- hhmts end --> +</body> </html> diff --git a/help/en/html/osearch.html b/help/en/html/osearch.html new file mode 100644 index 0000000..7c9f571 --- a/dev/null +++ b/help/en/html/osearch.html @@ -0,0 +1,20 @@ +<html><head><title>Search Opie</title></head><body> +<p align="center"> +<img src="osearch/OSearch.png"> +<h1>Search Opie with OSearch</h1> +<hr> +<p align="left"> +OSearch is a search tool for the Opie PIM entries. +It also searches for documents and applications. +<br> +<ul> +<li><a href="osearch/search.html">Search</a></li> +<li><a href="osearch/addressbook.html">Addressbook</a></li> +<li><a href="osearch/datebook.html">Datebook</a></li> +<li><a href="osearch/todo.html">Todolist</a></li> +<li><a href="osearch/documents.html">Documents</a></li> +<li><a href="osearch/applications.html">Applications</a></li> +<li><a href="osearch/settings.html">Settings</a></li> +<li><a href="osearch/about.html">About</a></li> +</ul> +</body></html> diff --git a/help/en/html/oxygen.html b/help/en/html/oxygen.html new file mode 100644 index 0000000..07469e3 --- a/dev/null +++ b/help/en/html/oxygen.html @@ -0,0 +1,7 @@ +<html> <head> <title>oxygen</title> </head> +<body> + <center><h1>oxygen</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/parashoot.html b/help/en/html/parashoot.html new file mode 100644 index 0000000..2df27e7 --- a/dev/null +++ b/help/en/html/parashoot.html @@ -0,0 +1,7 @@ +<html> <head> <title>parashoot</title> </head> +<body> + <center><h1>parashoot</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/patience.html b/help/en/html/patience.html new file mode 100644 index 0000000..2880501 --- a/dev/null +++ b/help/en/html/patience.html @@ -0,0 +1,7 @@ +<html> <head> <title>patience</title> </head> +<body> + <center><h1>patience</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/qasteroids.html b/help/en/html/qasteroids.html new file mode 100644 index 0000000..c5e484f --- a/dev/null +++ b/help/en/html/qasteroids.html @@ -0,0 +1,7 @@ +<html> <head> <title>qasteroids</title> </head> +<body> + <center><h1>qasteroids</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/qpdf.html b/help/en/html/qpdf.html new file mode 100644 index 0000000..31303c2 --- a/dev/null +++ b/help/en/html/qpdf.html @@ -0,0 +1,7 @@ +<html> <head> <title>qpdf</title> </head> +<body> + <center><h1>qpdf</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/reader.html b/help/en/html/reader.html new file mode 100644 index 0000000..5bb5e29 --- a/dev/null +++ b/help/en/html/reader.html @@ -0,0 +1,7 @@ +<html> <head> <title>reader</title> </head> +<body> + <center><h1>reader</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/remote.html b/help/en/html/remote.html new file mode 100644 index 0000000..d08316c --- a/dev/null +++ b/help/en/html/remote.html @@ -0,0 +1,7 @@ +<html> <head> <title>remote</title> </head> +<body> + <center><h1>remote</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/rotation.html b/help/en/html/rotation.html new file mode 100644 index 0000000..2ea68d3 --- a/dev/null +++ b/help/en/html/rotation.html @@ -0,0 +1,7 @@ +<html> <head> <title>rotation</title> </head> +<body> + <center><h1>rotation</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/security.html b/help/en/html/security.html new file mode 100644 index 0000000..6d1c51c --- a/dev/null +++ b/help/en/html/security.html @@ -0,0 +1,7 @@ +<html> <head> <title>security</title> </head> +<body> + <center><h1>security</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/sfcave.html b/help/en/html/sfcave.html new file mode 100644 index 0000000..1c05056 --- a/dev/null +++ b/help/en/html/sfcave.html @@ -0,0 +1,7 @@ +<html> <head> <title>sfcave</title> </head> +<body> + <center><h1>sfcave</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/showimg.html b/help/en/html/showimg.html new file mode 100644 index 0000000..85aa7d4 --- a/dev/null +++ b/help/en/html/showimg.html @@ -0,0 +1,7 @@ +<html> <head> <title>showimg</title> </head> +<body> + <center><h1>showimg</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/shutdown.html b/help/en/html/shutdown.html new file mode 100644 index 0000000..01079bf --- a/dev/null +++ b/help/en/html/shutdown.html @@ -0,0 +1,7 @@ +<html> <head> <title>shutdown</title> </head> +<body> + <center><h1>shutdown</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/snake.html b/help/en/html/snake.html new file mode 100644 index 0000000..9a68fe0 --- a/dev/null +++ b/help/en/html/snake.html @@ -0,0 +1,7 @@ +<html> <head> <title>snake</title> </head> +<body> + <center><h1>snake</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/sound.html b/help/en/html/sound.html new file mode 100644 index 0000000..7a85cc8 --- a/dev/null +++ b/help/en/html/sound.html @@ -0,0 +1,7 @@ +<html> <head> <title>sound</title> </head> +<body> + <center><h1>sound</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/sshkeys.html b/help/en/html/sshkeys.html new file mode 100644 index 0000000..4f44cf0 --- a/dev/null +++ b/help/en/html/sshkeys.html @@ -0,0 +1,7 @@ +<html> <head> <title>sshkeys</title> </head> +<body> + <center><h1>sshkeys</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/sysinfo.html b/help/en/html/sysinfo.html new file mode 100644 index 0000000..7de7cfe --- a/dev/null +++ b/help/en/html/sysinfo.html @@ -0,0 +1,61 @@ +<html><head><title>SysInfo</title></head><body> +<p align="center"> +<img src="sysinfo/SystemInfo"> +<h1>SysInfo</h1> +<b>System information viewer</b> +<p align="left"> +<hr> +This application presents a set of tabbed pages each containing +information about the current status of the device's <b>Memory</b>, +<b>Storage</b>, <b>CPU</b>, <b>Processes</b>, <b>Kernal Modules</b>, +and software <b>Versions</b>. +</p> +<p> + +<img src="sysinfo/memorytabicon"><b>Memory</b> +<br> +Displays memory use. Used memory is displayed on the left of +the bar in red. Total available memory equals Free +<em>plus</em> Cached memory. Opie makes use of spare Free +memory as Cache to improve speed, but will reclaim Cached memory +whenever necessary. +<p> + +<img src="sysinfo/storagetabicon"><b>Storage</b> +<br> +Displays storage available for any media currently in use. +<p> + +<img src="sysinfo/cputabicon"><b>CPU</b> +<br> +Displays the CPU usage, or how hard the processor is working. +<p> + +<img src="sysinfo/processtabicon"><b>Processes</b> +<br> +Displays all processes currently running on the system. +Additional information about the process can be viewed by clicking +and holding the desired process. Signals can be sent to a +process by selecting the process, selecting the desired signal +and then clicking the <b>Send</b> button. +<p> +<b>WARNING:</b> Stopping processes can render the device +unstable until it is rebooted. +<p> + +<img src="sysinfo/moduletabicon"><b>Kernel Modules</b> +<br> +Displays all kernel modules currently loaded on the system. +Additional information about the module can be viewed by clicking +and holding the desired module. A module can be removed +by selecting the process, selecting the desired removal option and +then clicking the <b>Send</b> button. +<p> +<b>WARNING:</b> Removing modules can render the device +unstable until it is rebooted. +<p> + +<img src="sysinfo/versiontabicon"><b>Version</b> +<br> +Displays software version numbers. +</body></html> diff --git a/help/en/html/systemtime.html b/help/en/html/systemtime.html new file mode 100644 index 0000000..1b5b146 --- a/dev/null +++ b/help/en/html/systemtime.html @@ -0,0 +1,23 @@ +<html><head><title>SystemTime</title></head><body> +<p align="center"> +<img src="netsystemtime/DateTime"> +<h1>SystemTime</h1> +<b>Set system clock</b> +<p align="left"> +<hr> +This application sets the device's date, time and Opie global display +options. The date and time can be set manually, set using an NTP +time server or predicted based on previous time drift information. +<p> +This application can be accessed by either the icon on the Settings tab +or by clicking on the clock in the lower right-hand corner of the screen. +<br> +<ul> +<li><a href="systemtime/time.html"><img src="netsystemtime/DateTime" width="16" height="16">Setting time/date</a></li> +<li><a href="systemtime/format.html"><img src="netsystemtime/formattab">Time/date formatting</a></li> +<li><a href="systemtime/configuration.html"><img src="SettingsIcon">Configuration</a></li> +<li><a href="systemtime/ntp.html"><img src="netsystemtime/ntptab">Time sever synchronization</a></li> +<li><a href="systemtime/predict.html"><img src="netsystemtime/predicttab">Time prediction</a></li> +<li><a href="systemtime/about.html"><img src="UtilsIcon">About</a></li> +</ul> +</body></html> diff --git a/help/en/html/tableviewer.html b/help/en/html/tableviewer.html new file mode 100644 index 0000000..ea8aa06 --- a/dev/null +++ b/help/en/html/tableviewer.html @@ -0,0 +1,7 @@ +<html> <head> <title>tableviewer</title> </head> +<body> + <center><h1>tableviewer</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/tetrix.html b/help/en/html/tetrix.html new file mode 100644 index 0000000..07df6e1 --- a/dev/null +++ b/help/en/html/tetrix.html @@ -0,0 +1,7 @@ +<html> <head> <title>tetrix</title> </head> +<body> + <center><h1>tetrix</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/textedit.html b/help/en/html/textedit.html new file mode 100644 index 0000000..54de3ad --- a/dev/null +++ b/help/en/html/textedit.html @@ -0,0 +1,8 @@ +<html><head><title>Text Editor</title></head><body> +<img src="textedit/TextEditor.png"> +<h1>Text Editor</h1> +<P align="center">FIXME Description<br> +<ul align="left"> +<li><a href="textedit/about.html">About</a></li> +</ul> +</body></html> diff --git a/help/en/html/tictac.html b/help/en/html/tictac.html new file mode 100644 index 0000000..a7947bf --- a/dev/null +++ b/help/en/html/tictac.html @@ -0,0 +1,7 @@ +<html> <head> <title>tictac</title> </head> +<body> + <center><h1>tictac</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/tinykate.html b/help/en/html/tinykate.html new file mode 100644 index 0000000..9960a40 --- a/dev/null +++ b/help/en/html/tinykate.html @@ -0,0 +1,7 @@ +<html> <head> <title>tinykate</title> </head> +<body> + <center><h1>tinykate</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/today.html b/help/en/html/today.html new file mode 100644 index 0000000..90fe53b --- a/dev/null +++ b/help/en/html/today.html @@ -0,0 +1,8 @@ +<html><head><title>Today</title></head><body> +<img src="today/today_icon.png"> +<h1>Today</h1> +<P align="center">FIXME Description<br> +<ul align="left"> +<li><a href="today/about.html">About</a></li> +</ul> +</body></html> diff --git a/help/en/html/todolist.html b/help/en/html/todolist.html new file mode 100644 index 0000000..3bc77fb --- a/dev/null +++ b/help/en/html/todolist.html @@ -0,0 +1,8 @@ +<html><head><title>Todolist</title></head><body> +<img src="todo/TodoList.png"> +<h1>Todolist</h1> +<P align="center">FIXME Description<br> +<ul align="left"> +<li><a href="todolist/about.html">About</a></li> +</ul> +</body></html> diff --git a/help/en/html/ubrowser.html b/help/en/html/ubrowser.html new file mode 100644 index 0000000..06ccfdd --- a/dev/null +++ b/help/en/html/ubrowser.html @@ -0,0 +1,7 @@ +<html> <head> <title>ubrowser</title> </head> +<body> + <center><h1>ubrowser</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/usermanager.html b/help/en/html/usermanager.html new file mode 100644 index 0000000..692885d --- a/dev/null +++ b/help/en/html/usermanager.html @@ -0,0 +1,7 @@ +<html> <head> <title>usermanager</title> </head> +<body> + <center><h1>usermanager</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/vmemo-help-en.control b/help/en/html/vmemo-help-en.control deleted file mode 100644 index 8753aec..0000000 --- a/help/en/html/vmemo-help-en.control +++ b/dev/null @@ -1,11 +0,0 @@ -Package: vmemo-help-en -Files: help/en/html/vmemo.html -Priority: optional -Section: opie/onlinedoc -Maintainer: ljp <llornkcor@handhelds.org> -Architecture: arm -Version: $QPE_VERSION-$SUB_VERSION -Depends: vmemo -License: GPL -Description: Opie Vmemo voice recording help files (english) - diff --git a/help/en/html/wlansetup.html b/help/en/html/wlansetup.html new file mode 100644 index 0000000..9dda990 --- a/dev/null +++ b/help/en/html/wlansetup.html @@ -0,0 +1,7 @@ +<html> <head> <title>wlansetup</title> </head> +<body> + <center><h1>wlansetup</h1></center> + <hr> +</body> +</html> + diff --git a/help/en/html/wordgame.html b/help/en/html/wordgame.html new file mode 100644 index 0000000..d400584 --- a/dev/null +++ b/help/en/html/wordgame.html @@ -0,0 +1,7 @@ +<html> <head> <title>wordgame</title> </head> +<body> + <center><h1>wordgame</h1></center> + <hr> +</body> +</html> + |