summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/cardmon/cardmon.cpp26
-rw-r--r--core/applets/clockapplet/clock.cpp10
-rw-r--r--core/applets/irdaapplet/irda.cpp4
-rw-r--r--core/applets/multikeyapplet/multikey.cpp2
-rw-r--r--core/applets/restartapplet/restart.cpp2
-rw-r--r--core/applets/restartapplet/restartappletimpl.cpp5
-rw-r--r--core/applets/rotateapplet/rotate.cpp9
-rw-r--r--core/applets/screenshotapplet/screenshot.cpp522
-rw-r--r--core/applets/vmemo/vmemo.cpp108
-rw-r--r--core/applets/vtapplet/vt.cpp65
-rw-r--r--core/obex/obexsend.cpp29
-rw-r--r--core/obex/receiver.cpp41
12 files changed, 417 insertions, 406 deletions
diff --git a/core/applets/cardmon/cardmon.cpp b/core/applets/cardmon/cardmon.cpp
index 1ad8b55..3a6ad27 100644
--- a/core/applets/cardmon/cardmon.cpp
+++ b/core/applets/cardmon/cardmon.cpp
@@ -1,100 +1,96 @@
/*
* 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"
/* OPIE */
+#include <opie2/odebug.h>
#include <opie2/odevice.h>
#include <opie2/otaskbarapplet.h>
#include <qpe/applnk.h>
#include <qpe/resource.h>
+using namespace Opie::Core;
+using namespace Opie::Ui;
/* QT */
#include <qcopchannel_qws.h>
#include <qpainter.h>
#include <qfile.h>
#include <qtextstream.h>
#include <qsound.h>
#include <qtimer.h>
/* STD */
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
-
#if defined(_OS_LINUX_) || defined(Q_OS_LINUX)
#include <sys/vfs.h>
#include <mntent.h>
#endif
-using namespace Opie;
-
-using namespace Opie::Ui;
-using namespace Opie::Ui;
-using namespace Opie::Core;
-
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 );
@@ -152,110 +148,110 @@ void CardMonitor::mousePressEvent( QMouseEvent * )
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");
+ // odebug << "Pcmcia: stabchanged" << oendl;
getStatusPcmcia();
}
else if ( msg == "mtabChanged()" )
{
- // qDebug("CARDMONAPPLET: mtabchanged");
+ // odebug << "CARDMONAPPLET: mtabchanged" << oendl;
getStatusSd();
}
}
bool CardMonitor::getStatusPcmcia( int showPopUp )
{
- bool cardWas0 = cardInPcmcia0; // remember last state
+ 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 =
@@ -286,139 +282,139 @@ bool CardMonitor::getStatusPcmcia( int showPopUp )
}
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" );
+ odebug << "no file found" << oendl;
cardInPcmcia0 = FALSE;
cardInPcmcia1 = FALSE;
}
repaint( FALSE );
return ( ( cardWas0 == cardInPcmcia0
&& cardWas1 == cardInPcmcia1 ) ? FALSE : TRUE );
}
bool CardMonitor::getStatusSd( int showPopUp )
{
- bool cardWas = cardInSd; // remember last state
+ 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 );
+ //odebug << fs << oendl;
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 );
+ //odebug << "TEXT: " + text << oendl;
#ifndef QT_NO_SOUND
QSound::play( Resource::findSound( "cardmon/card" + what ) );
#endif
- popUp( text, "cardmon/ide" ); // XX add SD pic
+ 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();
}
}
int CardMonitor::position()
{
return 7;
}
EXPORT_OPIE_APPLET_v1( CardMonitor )
diff --git a/core/applets/clockapplet/clock.cpp b/core/applets/clockapplet/clock.cpp
index 3b13d74..7d396e7 100644
--- a/core/applets/clockapplet/clock.cpp
+++ b/core/applets/clockapplet/clock.cpp
@@ -1,108 +1,112 @@
/**********************************************************************
** 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 "clock.h"
+/* OPIE */
+#include <opie2/odebug.h>
#include <opie2/otaskbarapplet.h>
#include <qpe/qpeapplication.h>
#include <qpe/qcopenvelope_qws.h>
#include <qpe/config.h>
+using namespace Opie::Core;
using namespace Opie::Ui;
+
LauncherClock::LauncherClock( QWidget *parent ) : QLabel( parent )
{
// If you want a sunken border around the clock do this:
// setFrameStyle( QFrame::Panel | QFrame::Sunken );
//setFont( QFont( "Helvetica", , QFont::Normal ) );
connect( qApp, SIGNAL( timeChanged() ), this, SLOT( updateTime() ) );
connect( qApp, SIGNAL( clockChanged(bool) ),
this, SLOT( slotClockChanged(bool) ) );
readConfig();
timerId = 0;
timerEvent( 0 );
show();
}
int LauncherClock::position()
{
return 10;
}
void LauncherClock::readConfig() {
Config config( "qpe" );
config.setGroup( "Time" );
ampmFormat = config.readBoolEntry( "AMPM", TRUE );
config.setGroup( "Date" );
format = config.readNumEntry("ClockApplet",0);
}
void LauncherClock::mouseReleaseEvent( QMouseEvent * )
{
- QCString setTimeApp;
- setTimeApp="systemtime";
- QCopEnvelope e("QPE/Application/"+setTimeApp, "raise()");
+ QCString setTimeApp;
+ setTimeApp="systemtime";
+ QCopEnvelope e("QPE/Application/"+setTimeApp, "raise()");
}
void LauncherClock::timerEvent( QTimerEvent *e )
{
if ( !e || e->timerId() == timerId ) {
killTimer( timerId );
changeTime();
QTime t = QTime::currentTime();
int ms = (60 - t.second())*1000 - t.msec();
timerId = startTimer( ms );
} else {
QLabel::timerEvent( e );
}
}
void LauncherClock::updateTime( void )
{
changeTime();
}
void LauncherClock::changeTime( void )
{
QTime tm = QDateTime::currentDateTime().time();
QString s;
if( ampmFormat ) {
int hour = tm.hour();
if (hour == 0)
hour = 12;
if (hour > 12)
hour -= 12;
s.sprintf( "%2d:%02d %s", hour, tm.minute(),
(tm.hour() >= 12) ? "PM" : "AM" );
} else
s.sprintf( "%2d:%02d", tm.hour(), tm.minute() );
if (format==1) {
QDate dm = QDate::currentDate();
QString d;
d.sprintf("%d/%d ", dm.day(), dm.month());
setText( d+s );
} else if (format==2) {
QDate dm = QDate::currentDate();
QString d;
d.sprintf("%d/%d ", dm.month(), dm.day());
setText( d+s );
} else {
setText( s );
diff --git a/core/applets/irdaapplet/irda.cpp b/core/applets/irdaapplet/irda.cpp
index 2196d18..7122b40 100644
--- a/core/applets/irdaapplet/irda.cpp
+++ b/core/applets/irdaapplet/irda.cpp
@@ -162,109 +162,109 @@ bool IrdaApplet::setIrdaDiscoveryStatus ( bool d )
if ( discovery. open ( IO_WriteOnly | IO_Raw )) {
discovery.putch ( d ? '1' : '0' );
return true;
}
return false;
}
bool IrdaApplet::setIrdaReceiveStatus ( bool d )
{
QCopEnvelope e ( "QPE/Obex", "receive(int)" );
e << ( d ? 1 : 0 );
m_receive_active = d;
m_receive_state_changed = true;
return true;
}
void IrdaApplet::showDiscovered ( )
{
// static Sound snd_found ( "irdaapplet/irdaon" );
// static Sound snd_lost ( "irdaapplet/irdaoff" );
QFile discovery ( "/proc/net/irda/discovery" );
if ( discovery. open ( IO_ReadOnly )) {
bool qcopsend = false;
QString discoveredDevice;
QString deviceAddr;
// since it is /proc we _must_ use QTextStream
QStringList list = QStringList::split ( "\n", QTextStream ( &discovery ). read ( ));
QMap <QString, QString>::Iterator it;
for ( it = m_devices. begin ( ); it != m_devices. end ( ); ++it )
it. data ( ). prepend ( "+++" );
for ( QStringList::Iterator lit = list. begin ( ); lit != list. end ( ); ++lit ) {
const QString &line = *lit;
if ( line. startsWith ( "nickname:" )) {
discoveredDevice = line. mid ( line. find ( ':' ) + 2, line. find ( ',' ) - line. find ( ':' ) - 2 );
deviceAddr = line. mid ( line. find ( "daddr:" ) + 9, 8 );
- // qDebug(discoveredDevice + "(" + deviceAddr + ")");
+ // odebug << discoveredDevice + "(" + deviceAddr + ")" << oendl;
if ( !m_devices. contains ( deviceAddr )) {
popup ( tr( "Found:" ) + " " + discoveredDevice );
//snd_found. play ( );
qcopsend = true;
}
m_devices. replace ( deviceAddr, discoveredDevice );
}
}
for ( it = m_devices. begin ( ); it != m_devices. end ( ); ) {
- // qDebug("IrdaMon: delete " + it.currentKey() + "=" + *devicesAvailable[it.currentKey()] + "?");
+ // odebug << "IrdaMon: delete " + it.currentKey() + "=" + *devicesAvailable[it.currentKey()] + "?" << oendl;
if ( it. data ( ). left ( 3 ) == "+++" ) {
popup ( tr( "Lost:" ) + " " + it. data ( ). mid ( 3 ));
//snd_lost. play ( );
QMap <QString, QString>::Iterator tmp = it;
tmp++;
m_devices. remove ( it ); // in contrast to QValueListIterator this remove doesn't return the next Iterator
it = tmp;
qcopsend = true;
}
else
it++;
}
// XXX if( qcopsend ) {
QCopEnvelope e ( "QPE/Network", "irdaSend(bool)" );
e << ( m_devices. count ( ) > 0 );
// }
}
}
void IrdaApplet::mousePressEvent ( QMouseEvent * )
{
QPopupMenu *menu = new QPopupMenu ( this );
QString cmd;
/* Refresh active state */
timerEvent ( 0 );
// menu->insertItem( tr("More..."), 4 );
if ( m_irda_active && !m_devices. isEmpty ( )) {
menu-> insertItem ( tr( "Discovered Device:" ), 9 );
for ( QMap<QString, QString>::Iterator it = m_devices. begin ( ); it != m_devices. end ( ); ++it )
menu-> insertItem ( *it );
menu-> insertSeparator ( );
}
menu-> insertItem ( m_irda_active ? tr( "Disable IrDA" ) : tr( "Enable IrDA" ), 0 );
if ( m_irda_active ) {
menu-> insertItem ( m_irda_discovery_active ? tr( "Disable Discovery" ) : tr( "Enable Discovery" ), 1 );
menu-> insertItem ( m_receive_active ? tr( "Disable Receive" ) : tr( "Enable Receive" ), 2 );
}
diff --git a/core/applets/multikeyapplet/multikey.cpp b/core/applets/multikeyapplet/multikey.cpp
index 195ada5..195d8a4 100644
--- a/core/applets/multikeyapplet/multikey.cpp
+++ b/core/applets/multikeyapplet/multikey.cpp
@@ -23,97 +23,97 @@
#include <qdir.h>
using namespace Opie::Ui;
Multikey::Multikey(QWidget *parent) : QLabel(parent), popupMenu(this), current("EN")
{
QCopChannel* swChannel = new QCopChannel("MultiKey/Switcher", this);
connect( swChannel, SIGNAL(received(const QCString&,const QByteArray&)),
this, SLOT(message(const QCString&,const QByteArray&)));
setFont( QFont( "Helvetica", 10, QFont::Normal ) );
QPEApplication::setStylusOperation(this, QPEApplication::RightOnHold);
lang = 0;
QCopEnvelope e("MultiKey/Keyboard", "getmultikey()");
setText("EN");
popupMenu.insertItem("EN", 0);
show();
}
void Multikey::mousePressEvent(QMouseEvent *ev)
{
if (!sw_maps.count())
return;
if (ev->button() == RightButton) {
QPoint p = mapToGlobal(QPoint(0, 0));
QSize s = popupMenu.sizeHint();
int opt = popupMenu.exec(QPoint(p.x() + (width() / 2) - (s.width() / 2),
p.y() - s.height()), 0);
if (opt == -1)
return;
lang = opt;
QCopEnvelope e("MultiKey/Keyboard", "setmultikey(QString)");
e << sw_maps[lang];
setText(labels[lang]);
}
QWidget::mousePressEvent(ev);
}
void Multikey::mouseReleaseEvent(QMouseEvent *ev)
{
if (!sw_maps.count())
return;
lang = lang < sw_maps.count()-1 ? lang+1 : 0;
QCopEnvelope e("MultiKey/Keyboard", "setmultikey(QString)");
- //qDebug("Lang=%d, count=%d, lab=%s", lang, sw_maps.count(), labels[lang].ascii());
+ //odebug << "Lang=" << lang << ", count=" << sw_maps.count() << ", lab=" << labels[lang].ascii() << "" << oendl;
e << sw_maps[lang];
setText(labels[lang]);
}
void Multikey::message(const QCString &message, const QByteArray &data)
{
if ( message == "setsw(QString,QString)" ) {
QDataStream stream(data, IO_ReadOnly);
QString maps, current_map;
stream >> maps >> current_map;
QStringList sw = QStringList::split(QChar('|'), maps);
sw.append(current_map);
QDir map_dir(QPEApplication::qpeDir() + "/share/multikey/", "*.keymap");
lang = 0;
labels.clear();
sw_maps.clear();
popupMenu.clear();
for (uint i = 0; i < sw.count(); ++i) {
QString keymap_map;
if (sw[i][0] != '/') {
keymap_map = map_dir.absPath() + "/" + sw[i];
} else {
if ((map_dir.exists(QFileInfo(sw[i]).fileName(), false)
&& i != sw.count()-1) || !QFile::exists(sw[i])) {
continue;
}
keymap_map = sw[i];
}
QFile map(keymap_map);
if (map.open(IO_ReadOnly)) {
QString line;
map.readLine(line, 1024);
while (!map.atEnd()) {
if (line.find(QRegExp("^sw\\s*=\\s*")) != -1) {
if (i != sw.count()-1) {
if (keymap_map == current_map) {
lang = i;
}
sw_maps.append(keymap_map);
diff --git a/core/applets/restartapplet/restart.cpp b/core/applets/restartapplet/restart.cpp
index 226c2a8..2e17608 100644
--- a/core/applets/restartapplet/restart.cpp
+++ b/core/applets/restartapplet/restart.cpp
@@ -8,65 +8,63 @@
** 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.
**
**********************************************************************/
#include "restart.h"
#include <qpe/qcopenvelope_qws.h>
#include <qpainter.h>
/* XPM */
static char *restart_xpm[] = {
"16 16 11 1",
" c None",
". c #000000",
"+ c #DCDCDC",
"@ c #A0A0A0",
"# c #C3C3C3",
"$ c #808080",
"% c #FFA858",
"& c #FFDCA8",
"* c #FFFFC0",
"= c #FFFFFF",
"- c #585858",
" .. ",
" .. .++. .. ",
" .+@.@##@.@+. ",
" .@+$@%%@$+@. ",
" .$%%&%&%$. ",
" ..+@%&$$%&@+.. ",
".+#@%&%@@&*%@#+.",
".$@+$&*&&=*$+@$.",
" .--+$&*=&$+--. ",
" .$#++$$++#$. ",
" .@=$-$++$-$=@. ",
" .+@-..@@..-@+. ",
" ... .+=. ... ",
" .-$. ",
" .. ",
" "};
RestartApplet::RestartApplet( QWidget *parent, const char *name )
: QWidget( parent, name ) {
setFixedHeight( 18 );
setFixedWidth( 16 );
- qDebug("new restartapplet");
show();
}
RestartApplet::~RestartApplet() {
}
void RestartApplet::mousePressEvent( QMouseEvent *) {
QCopEnvelope e("QPE/System", "restart()");
}
void RestartApplet::paintEvent( QPaintEvent* ) {
QPainter p(this);
- qDebug("paint RESTART pixmap");
p.drawPixmap( 0, 1, ( const char** ) restart_xpm );
}
diff --git a/core/applets/restartapplet/restartappletimpl.cpp b/core/applets/restartapplet/restartappletimpl.cpp
index d8e10d3..3adc80c 100644
--- a/core/applets/restartapplet/restartappletimpl.cpp
+++ b/core/applets/restartapplet/restartappletimpl.cpp
@@ -1,67 +1,66 @@
/**********************************************************************
** 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 "restart.h"
#include "restartappletimpl.h"
RestartAppletImpl::RestartAppletImpl()
: restart(0)
{
}
RestartAppletImpl::~RestartAppletImpl()
{
delete restart;
}
QWidget *RestartAppletImpl::applet( QWidget *parent )
{
- qDebug("restart applet");
if ( !restart )
restart = new RestartApplet( parent );
return restart;
}
int RestartAppletImpl::position() const
{
return 6;
}
QRESULT RestartAppletImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
{
*iface = 0;
if ( uuid == IID_QUnknown )
*iface = this;
else if ( uuid == IID_TaskbarApplet )
*iface = this;
else
- return QS_FALSE;
-
+ return QS_FALSE;
+
if ( *iface )
(*iface)->addRef();
return QS_OK;
}
Q_EXPORT_INTERFACE()
{
Q_CREATE_INSTANCE( RestartAppletImpl )
}
diff --git a/core/applets/rotateapplet/rotate.cpp b/core/applets/rotateapplet/rotate.cpp
index f621aa9..f23423d 100644
--- a/core/applets/rotateapplet/rotate.cpp
+++ b/core/applets/rotateapplet/rotate.cpp
@@ -1,147 +1,148 @@
/*
This file is part of the OPIE Project
Copyright (C) 2003 Maximilian Reiss <harlekin@handhelds.org>
Copyright (C) 2003 Greg Gilbert <ggilbert@treke.net>
               =. Copyright (C) 2004 Michael Lauer <mickey@Vanille.de>
             .=l.
           .>+-=
 _;:,     .>    :=|. This library is free software; you can
.> <,   >  .   <= redistribute it and/or modify it under
:=1 )Y*s>-.--   : the terms of the GNU Library General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%+i>       _;_.
    .i_,=:_.      -<s. This library is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=| MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = Library General Public License along with
    --        :-= this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include "rotate.h"
/* OPIE */
+#include <opie2/odebug.h>
#include <opie2/odevice.h>
#include <qpe/config.h>
#include <qpe/power.h>
#include <qpe/qcopenvelope_qws.h>
#include <qpe/resource.h>
using namespace Opie::Core;
/* QT */
#include <time.h>
RotateApplet::RotateApplet()
:QObject( 0, "RotateApplet" ), m_flipped( false )
{
#if !defined(QT_NO_COP)
QCopChannel *rotateChannel = new QCopChannel( "QPE/Rotation" , this );
connect ( rotateChannel, SIGNAL( received(const QCString&,const QByteArray&) ),
this, SLOT ( channelReceived(const QCString&,const QByteArray&) ) );
#endif
}
RotateApplet::~RotateApplet ( )
{}
/**
* Qcop receive method.
*/
void RotateApplet::channelReceived( const QCString &msg, const QByteArray & data )
{
- qDebug( "RotateApplet::channelReceived( '%s' )", (const char*) msg );
+ odebug << "RotateApplet::channelReceived( '" << msg << "' )" << oendl;
if ( ODevice::inst()->hasHingeSensor() )
{
struct timespec interval;
struct timespec remain;
interval.tv_sec = 0;
interval.tv_nsec = 600000;
::nanosleep( &interval, &remain );
OHingeStatus status = ODevice::inst()->readHingeSensor();
- qDebug( "RotateApplet::readHingeSensor = %d", (int) status );
+ odebug << "RotateApplet::readHingeSensor = " << (int) status << "" << oendl;
Config cfg( "apm" );
cfg.setGroup( PowerStatusManager::readStatus().acStatus() == PowerStatus::Online ? "AC" : "Battery" );
int action = cfg.readNumEntry( "CloseHingeAction", 0 );
if ( status == CASE_CLOSED )
{
switch ( action )
{
case 1: /* DISPLAY OFF */ ODevice::inst()->setDisplayBrightness( 0 ); break;
case 2: /* SUSPEND */ ODevice::inst()->suspend(); break;
default: /* IGNORE */ break;
}
}
else /* status != CASE_CLOSED */
{
switch ( action )
{
case 1: /* DISPLAY OFF */ ODevice::inst()->setDisplayBrightness( 127 ); break;
case 2: /* SUSPEND */ /* How to wake up the device from kernel? */; break;
default: /* IGNORE */ break;
}
}
- qDebug( "RotateApplet::switchAction %d performed.", cfg.readNumEntry( "CloseHingeAction", 0 ) );
+ odebug << "RotateApplet::switchAction " << cfg.readNumEntry( "CloseHingeAction" ) << " performed." << oendl;
}
QDataStream stream( data, IO_ReadOnly );
if ( msg == "flip()" )
{
activated ( );
}
else if ( msg == "rotateDefault()")
{
rotateDefault();
}
}
int RotateApplet::position() const
{
return 3;
}
QString RotateApplet::name() const
{
return tr( "Rotate shortcut" );
}
QString RotateApplet::text() const
{
return tr( "Rotate" );
}
/*QString RotateApplet::tr( const char* s ) const
{
return qApp->translate( "RotateApplet", s, 0 );
}
QString RotateApplet::tr( const char* s, const char* p ) const
{
return qApp->translate( "RotateApplet", s, p );
}
*/
QIconSet RotateApplet::icon() const
{
QPixmap pix;
QImage img = Resource::loadImage( "Rotation" );
if ( !img.isNull() )
pix.convertFromImage( img.smoothScale( 14, 14 ) );
return pix;
}
@@ -194,59 +195,59 @@ void RotateApplet::activated()
{
rot = ODevice::inst()->direction();
}
else
{
rot = (ODirection) rotDirection;
}
// hide inputs methods before rotation
QCopEnvelope en( "QPE/TaskBar", "hideInputMethod()" );
if ( m_flipped )
{
// if flipped, flip back to the original state,
// regardless of rotation direction
newRotation = defaultRotation;
}
else
{
if ( rot == CCW )
{
newRotation = ( defaultRotation + 90 ) % 360;
}
else if ( rot == CW )
{
newRotation = ( defaultRotation + 270 ) % 360;
}
else if ( rot == Flip )
{
newRotation = ( defaultRotation + 180 ) % 360;
}
}
QCopEnvelope env( "QPE/System", "setCurrentRotation(int)" );
env << newRotation;
m_flipped = !m_flipped;
}
QRESULT RotateApplet::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
{
*iface = 0;
if ( uuid == IID_QUnknown )
*iface = this;
else if ( uuid == IID_MenuApplet )
*iface = this;
else
- return QS_FALSE;
+ return QS_FALSE;
if ( *iface )
(*iface)->addRef();
return QS_OK;
}
Q_EXPORT_INTERFACE()
{
Q_CREATE_INSTANCE( RotateApplet )
}
diff --git a/core/applets/screenshotapplet/screenshot.cpp b/core/applets/screenshotapplet/screenshot.cpp
index 9aa012a..938ea0c 100644
--- a/core/applets/screenshotapplet/screenshot.cpp
+++ b/core/applets/screenshotapplet/screenshot.cpp
@@ -1,542 +1,544 @@
/**********************************************************************
** Copyright (C) 2002 L.J. Potter ljp@llornkcor.com
** All rights reserved.
**
** 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.
**
**********************************************************************/
#include "screenshot.h"
#include "inputDialog.h"
/* OPIE */
+#include <opie2/odebug.h>
#include <opie2/otaskbarapplet.h>
#include <qpe/qpeapplication.h>
#include <qpe/applnk.h>
+using namespace Opie::Core;
+using namespace Opie::Ui;
/* QT */
#include <qlineedit.h>
#include <qdir.h>
#include <qlabel.h>
#include <qpushbutton.h>
#include <qpainter.h>
#include <qspinbox.h>
#include <qlayout.h>
#include <qcheckbox.h>
#include <qmessagebox.h>
/* STD */
#include <stdlib.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <unistd.h>
/* XPM */
-using namespace Opie::Ui;
static char * snapshot_xpm[] = {
"32 32 177 2",
-" c None",
-". c #042045",
-"+ c #0D2B47",
-"@ c #0E325E",
-"# c #0D2E50",
-"$ c #0A1C32",
-"% c #0F3A69",
-"& c #164680",
-"* c #165EAE",
-"= c #134D89",
-"- c #0A3A6E",
-"; c #031024",
-"> c #031B36",
-", c #1A5EA3",
-"' c #1862B1",
-") c #1866B9",
-"! c #0F5AAC",
-"~ c #0F56A8",
-"{ c #0C4C96",
-"] c #030918",
-"^ c #060206",
-"/ c #20242C",
-"( c #3E3B3B",
-"_ c #186ABD",
-": c #115EB3",
-"< c #082644",
-"[ c #222C38",
-"} c #5A5859",
-"| c #091921",
-"1 c #1E7EDE",
-"2 c #1A7ADA",
-"3 c #1970CD",
-"4 c #1758A1",
-"5 c #0E529A",
-"6 c #094388",
-"7 c #22364E",
-"8 c #384454",
-"9 c #04162C",
-"0 c #123451",
-"a c #3296B4",
-"b c #298AB1",
-"c c #2484AC",
-"d c #033D86",
-"e c #033677",
-"f c #072C58",
-"g c #525862",
-"h c #5E5E5E",
-"i c #23492A",
-"j c #4FBD3F",
-"k c #50B24C",
-"l c #51C72E",
-"m c #42C64A",
-"n c #2686CA",
-"o c #0B52A4",
-"p c #054A9A",
-"q c #053B7C",
-"r c #2B2325",
-"s c #6E7070",
-"t c #0D240E",
-"u c #1E423E",
-"v c #468ABE",
-"w c #6A8AC2",
-"x c #7EAA8E",
-"y c #84BE4E",
-"z c #65C639",
-"A c #064EA0",
-"B c #0A4DA0",
-"C c #4E5242",
-"D c #62362E",
-"E c #721A1A",
-"F c #6E0A0A",
-"G c #3E0E0E",
-"H c #6AB85E",
-"I c #7E8ECA",
-"J c #929CD4",
-"K c #9EAECA",
-"L c #9EBEAE",
-"M c #8EC26A",
-"N c #32A276",
-"O c #20518C",
-"P c #46566E",
-"Q c #614A51",
-"R c #AE2A26",
-"S c #C41C1A",
-"T c #CE0A0A",
-"U c #A60606",
-"V c #921616",
-"W c #863735",
-"X c #866A66",
-"Y c #9E9EA2",
-"Z c #1E5212",
-"` c #7EC652",
-" . c #B2B2F2",
-".. c #CACAF6",
-"+. c #AECEC6",
-"@. c #92CE72",
-"#. c #42AA86",
-"$. c #365E96",
-"%. c #B82420",
-"&. c #E20E0E",
-"*. c #EF0E0B",
-"=. c #566A86",
-"-. c #92929A",
-";. c #16260E",
-">. c #2E571A",
-",. c #7ED64E",
-"'. c #9ECEB2",
-"). c #C6D5EF",
-"!. c #E2E0FE",
-"~. c #A2DE8A",
-"{. c #4AAA5B",
-"]. c #2A6AB2",
-"^. c #9A7A6E",
-"/. c #D25A52",
-"(. c #F62626",
-"_. c #FA0206",
-":. c #DE1E16",
-"<. c #B63A26",
-"[. c #865A2E",
-"}. c #26568E",
-"|. c #435F7D",
-"1. c #7AE246",
-"2. c #96EA6E",
-"3. c #BEEAAE",
-"4. c #D0EADC",
-"5. c #B6CEFE",
-"6. c #9ADE8A",
-"7. c #2A609A",
-"8. c #7E623E",
-"9. c #CA7A72",
-"0. c #F26E6E",
-"a. c #FE5252",
-"b. c #FA3638",
-"c. c #DA2E28",
-"d. c #9E3E3A",
-"e. c #3E7656",
-"f. c #76CB3A",
-"g. c #90DE44",
-"h. c #A2EE6A",
-"i. c #9EEA9A",
-"j. c #92BEDE",
-"k. c #7ADA7E",
-"l. c #5ECE52",
-"m. c #6A5E52",
-"n. c #A83238",
-"o. c #FA5656",
-"p. c #F29A92",
-"q. c #D29E92",
-"r. c #8A7A62",
-"s. c #05336B",
-"t. c #59C631",
-"u. c #8AD23A",
-"v. c #66E242",
-"w. c #1D6FC1",
-"x. c #E61212",
-"y. c #CA261E",
-"z. c #5A763E",
-"A. c #1E6E9A",
-"B. c #023272",
-"C. c #329696",
-"D. c #2074B6",
-"E. c #3E4E76",
-"F. c #5A525E",
-"G. c #425868",
-"H. c #04448E",
-"I. c #28828A",
-"J. c #2D8593",
-"K. c #12427A",
-"L. c #054696",
-"M. c #042B5E",
-"N. c #134F95",
-"O. c #1E6ABB",
-"P. c #1A5E96",
-"Q. c #022E67",
-"R. c #0C3E7C",
-"S. c #023E8A",
-"T. c #021A3E",
+" c None",
+". c #042045",
+"+ c #0D2B47",
+"@ c #0E325E",
+"# c #0D2E50",
+"$ c #0A1C32",
+"% c #0F3A69",
+"& c #164680",
+"* c #165EAE",
+"= c #134D89",
+"- c #0A3A6E",
+"; c #031024",
+"> c #031B36",
+", c #1A5EA3",
+"' c #1862B1",
+") c #1866B9",
+"! c #0F5AAC",
+"~ c #0F56A8",
+"{ c #0C4C96",
+"] c #030918",
+"^ c #060206",
+"/ c #20242C",
+"( c #3E3B3B",
+"_ c #186ABD",
+": c #115EB3",
+"< c #082644",
+"[ c #222C38",
+"} c #5A5859",
+"| c #091921",
+"1 c #1E7EDE",
+"2 c #1A7ADA",
+"3 c #1970CD",
+"4 c #1758A1",
+"5 c #0E529A",
+"6 c #094388",
+"7 c #22364E",
+"8 c #384454",
+"9 c #04162C",
+"0 c #123451",
+"a c #3296B4",
+"b c #298AB1",
+"c c #2484AC",
+"d c #033D86",
+"e c #033677",
+"f c #072C58",
+"g c #525862",
+"h c #5E5E5E",
+"i c #23492A",
+"j c #4FBD3F",
+"k c #50B24C",
+"l c #51C72E",
+"m c #42C64A",
+"n c #2686CA",
+"o c #0B52A4",
+"p c #054A9A",
+"q c #053B7C",
+"r c #2B2325",
+"s c #6E7070",
+"t c #0D240E",
+"u c #1E423E",
+"v c #468ABE",
+"w c #6A8AC2",
+"x c #7EAA8E",
+"y c #84BE4E",
+"z c #65C639",
+"A c #064EA0",
+"B c #0A4DA0",
+"C c #4E5242",
+"D c #62362E",
+"E c #721A1A",
+"F c #6E0A0A",
+"G c #3E0E0E",
+"H c #6AB85E",
+"I c #7E8ECA",
+"J c #929CD4",
+"K c #9EAECA",
+"L c #9EBEAE",
+"M c #8EC26A",
+"N c #32A276",
+"O c #20518C",
+"P c #46566E",
+"Q c #614A51",
+"R c #AE2A26",
+"S c #C41C1A",
+"T c #CE0A0A",
+"U c #A60606",
+"V c #921616",
+"W c #863735",
+"X c #866A66",
+"Y c #9E9EA2",
+"Z c #1E5212",
+"` c #7EC652",
+" . c #B2B2F2",
+".. c #CACAF6",
+"+. c #AECEC6",
+"@. c #92CE72",
+"#. c #42AA86",
+"$. c #365E96",
+"%. c #B82420",
+"&. c #E20E0E",
+"*. c #EF0E0B",
+"=. c #566A86",
+"-. c #92929A",
+";. c #16260E",
+">. c #2E571A",
+",. c #7ED64E",
+"'. c #9ECEB2",
+"). c #C6D5EF",
+"!. c #E2E0FE",
+"~. c #A2DE8A",
+"{. c #4AAA5B",
+"]. c #2A6AB2",
+"^. c #9A7A6E",
+"/. c #D25A52",
+"(. c #F62626",
+"_. c #FA0206",
+":. c #DE1E16",
+"<. c #B63A26",
+"[. c #865A2E",
+"}. c #26568E",
+"|. c #435F7D",
+"1. c #7AE246",
+"2. c #96EA6E",
+"3. c #BEEAAE",
+"4. c #D0EADC",
+"5. c #B6CEFE",
+"6. c #9ADE8A",
+"7. c #2A609A",
+"8. c #7E623E",
+"9. c #CA7A72",
+"0. c #F26E6E",
+"a. c #FE5252",
+"b. c #FA3638",
+"c. c #DA2E28",
+"d. c #9E3E3A",
+"e. c #3E7656",
+"f. c #76CB3A",
+"g. c #90DE44",
+"h. c #A2EE6A",
+"i. c #9EEA9A",
+"j. c #92BEDE",
+"k. c #7ADA7E",
+"l. c #5ECE52",
+"m. c #6A5E52",
+"n. c #A83238",
+"o. c #FA5656",
+"p. c #F29A92",
+"q. c #D29E92",
+"r. c #8A7A62",
+"s. c #05336B",
+"t. c #59C631",
+"u. c #8AD23A",
+"v. c #66E242",
+"w. c #1D6FC1",
+"x. c #E61212",
+"y. c #CA261E",
+"z. c #5A763E",
+"A. c #1E6E9A",
+"B. c #023272",
+"C. c #329696",
+"D. c #2074B6",
+"E. c #3E4E76",
+"F. c #5A525E",
+"G. c #425868",
+"H. c #04448E",
+"I. c #28828A",
+"J. c #2D8593",
+"K. c #12427A",
+"L. c #054696",
+"M. c #042B5E",
+"N. c #134F95",
+"O. c #1E6ABB",
+"P. c #1A5E96",
+"Q. c #022E67",
+"R. c #0C3E7C",
+"S. c #023E8A",
+"T. c #021A3E",
" ",
" ",
" ",
" . + @ # + ",
" $ # % & * * = - # $ ",
"; > % @ = , ' ) ' ! ~ { % @ . ] ^ / ( ",
"; + ' * ) _ ) ) ' : : ! { { % < . [ ( } ",
"| @ 1 2 3 _ _ ) ' : : : : 4 5 6 6 # 7 8 } ",
"9 0 a b b b c _ ) : : ! ! ~ ~ 5 ~ d e f [ 8 g h h } ",
"| i j k j l m n 3 ) : ! ! ! ~ o o o p 6 q f / r r r s ",
"t u v w x y y z a 1 3 ' : ! ~ A A B A p = C D E F G ( s ",
"| u H I J K L M H k N 3 3 : ~ o o 5 O P Q R S T T U V W X Y ",
"| Z ` J .....+.@.z #.3 _ 3 3 ) $.P W %.S &.*.*.&.S W Q P =.-. ",
";.>.,.'.).!.!.).~.,.{.) : ) 3 ].h ^./.(._._._.:.<.[.g }.= & |. ",
";.>.1.2.3.4.4.5.6.,.{._ : : : 7.8.9.0.a.b.b.c.d.} e.4 = 6 q # ",
";.>.z f.g.h.i.j.k.l.N ) : ! ! 4 m.n.c.o.p.q.r.|.5 { d e e s.. ",
"t Z l t.f.u.g.1.v.#.w.' : ! ~ ~ 7.|.n.x.y.z.A.A q - e e e B.> ",
"| 0 c k t.t.l l C.D.) * * ! 5 { B o E.F.F.G.= H.e e e e q B.. ",
"; + D.I.J.I.I.I.w.) : : * o K.7 - L.= O = }.6 6 e q q e q s.> ",
"9 + ) ) ) ) ' ' , * : ! ! ! K.< . M.q 6 B N.{ d q e e e e s.9 ",
"9 # O.) ) ' , , P.* ! ! ! ! = % . . M.e d p L.d B.B.e B.B.Q.9 ",
"; < ' ' ' ' , , 4 4 ~ ! ! ~ ! 5 e q e e q A H.d q q e e B.Q.9 ",
"; $ R.K.5 4 4 ' ! ! 4 ~ ! ~ ~ ~ o { B o A A L.S.B.B.B.B.B.Q.> ",
" ] $ 0 R.= ' ' 4 4 5 4 5 5 o B o B p A A L.d e e B.B.B.Q.9 ",
" # + - { 4 4 ~ ! o { o L.p p p p p H.S.B.B.s.Q.Q.M.T. ",
" + s.6 B o o 5 B p L.p p L.p H.q B.Q.Q.Q.Q.M.; ",
" < # s.- B o B p p L.L.H.L.H.d B.Q.Q.Q.Q.Q.9 ",
" $ . s.d 6 B A p H.S.L.H.q B.Q.Q.M.M.. ; ",
" ; 9 . 6 L.p L.d L.H.d Q.M.M.. 9 ; ] ",
" | > e L.d L.H.e M.. ; ] ] ",
" > 9 . S.Q.. ; ] ",
" T.; ] "};
static const char *SCAP_hostname = "www.handhelds.org";
static const int SCAP_port = 80;
ScreenshotControl::ScreenshotControl( QWidget *parent, const char *name )
: QFrame( parent, name, WDestructiveClose | WStyle_StaysOnTop | WType_Popup )
{
setFrameStyle( QFrame::PopupPanel | QFrame::Raised );
QVBoxLayout *vbox = new QVBoxLayout ( this, 5, 3 );
QHBoxLayout *hbox;
hbox = new QHBoxLayout ( vbox );
QLabel *l = new QLabel ( tr( "Delay" ), this );
hbox-> addWidget ( l );
delaySpin = new QSpinBox( 0, 60, 1, this, "Spinner" );
delaySpin-> setButtonSymbols ( QSpinBox::PlusMinus );
delaySpin-> setSuffix ( tr( "sec" ));
delaySpin-> setFocusPolicy( QWidget::NoFocus );
delaySpin-> setValue ( 1 );
hbox-> addWidget ( delaySpin );
saveNamedCheck = new QCheckBox ( tr( "Save named" ), this);
saveNamedCheck-> setFocusPolicy ( QWidget::NoFocus );
vbox->addWidget( saveNamedCheck);
vbox-> addSpacing ( 3 );
l = new QLabel ( tr( "Save screenshot as..." ), this );
vbox-> addWidget ( l, AlignCenter );
hbox = new QHBoxLayout ( vbox );
grabItButton = new QPushButton( tr( "File" ), this, "GrabButton" );
grabItButton ->setFocusPolicy( QWidget::TabFocus );
hbox-> addWidget ( grabItButton );
scapButton = new QPushButton( tr( "Scap" ), this, "ScapButton" );
scapButton ->setFocusPolicy( QWidget::TabFocus );
hbox-> addWidget ( scapButton );
setFixedSize ( sizeHint ( ));
setFocusPolicy ( QWidget::NoFocus );
grabTimer = new QTimer ( this, "grab timer");
-
+
connect ( grabTimer, SIGNAL( timeout()), this, SLOT( performGrab()));
connect ( grabItButton, SIGNAL( clicked()), SLOT( slotGrab()));
connect ( scapButton, SIGNAL( clicked()), SLOT( slotScap()));
}
void ScreenshotControl::slotGrab()
{
buttonPushed = 1;
hide();
setFileName = FALSE;
if ( saveNamedCheck->isChecked()) {
setFileName = TRUE;
InputDialog *fileDlg;
fileDlg = new InputDialog( 0 , tr("Name of screenshot "), TRUE, 0);
fileDlg->exec();
fileDlg->raise();
QString fileName, list;
if ( fileDlg->result() == 1 ) {
fileName = fileDlg->LineEdit1->text();
if (fileName.find("/", 0, TRUE) == -1)
FileNamePath = QDir::homeDirPath() + "/Documents/image/png/" + fileName;
else
FileNamePath = fileName;
}
delete fileDlg;
}
if ( delaySpin->value() )
grabTimer->start( delaySpin->value() * 1000, true );
else
show();
}
void ScreenshotControl::slotScap()
{
buttonPushed = 2;
hide();
if ( delaySpin->value() )
grabTimer->start( delaySpin->value() * 1000, true );
else
show();
}
void ScreenshotControl::savePixmap()
{
DocLnk lnk;
QString fileName;
if ( setFileName) {
fileName = FileNamePath;
//not sure why this is needed here, but it forgets fileName
// if this is below the braces
if (fileName.right(3) != "png")
fileName = fileName + ".png";
lnk.setFile(fileName); //sets File property
- qDebug("saving file " + fileName);
+ odebug << "saving file " + fileName << oendl;
snapshot.save( fileName, "PNG");
QFileInfo fi( fileName);
lnk.setName( fi.fileName()); //sets file name
if (!lnk.writeLink())
- qDebug("Writing doclink did not work");
+ odebug << "Writing doclink did not work" << oendl;
}
else {
fileName = "sc_" + QDateTime::currentDateTime().toString();
fileName.replace(QRegExp("'"), "");
fileName.replace(QRegExp(" "), "_");
fileName.replace(QRegExp(":"), ".");
fileName.replace(QRegExp(","), "");
QString dirName = QDir::homeDirPath() + "/Documents/image/png/";
if ( !QDir( dirName).exists() ) {
- qDebug("making dir " + dirName);
+ odebug << "making dir " + dirName << oendl;
QString msg = "mkdir -p " + dirName;
system(msg.latin1());
}
fileName = dirName + fileName;
if (fileName.right(3) != "png")
fileName = fileName + ".png";
lnk.setFile(fileName); //sets File property
- qDebug("saving file " + fileName);
+ odebug << "saving file " + fileName << oendl;
snapshot.save( fileName, "PNG");
QFileInfo fi( fileName);
lnk.setName( fi.fileName()); //sets file name
if (!lnk.writeLink())
- qDebug("Writing doclink did not work");
+ odebug << "Writing doclink did not work" << oendl;
}
QPEApplication::beep();
}
void ScreenshotControl::performGrab()
{
- snapshot = QPixmap::grabWindow( QPEApplication::desktop()->winId(), 0, 0, QApplication::desktop()->width(), QApplication::desktop()->height() );
+ snapshot = QPixmap::grabWindow( QPEApplication::desktop()->winId(), 0, 0, QApplication::desktop()->width(), QApplication::desktop()->height() );
- if (buttonPushed == 1) {
- qDebug("grabbing screen");
- grabTimer->stop();
- show();
- qApp->processEvents();
- savePixmap();
- } else {
- grabTimer->stop();
+ if (buttonPushed == 1) {
+ odebug << "grabbing screen" << oendl;
+ grabTimer->stop();
+ show();
+ qApp->processEvents();
+ savePixmap();
+ } else {
+ grabTimer->stop();
- struct sockaddr_in raddr;
- struct hostent *rhost_info;
- int sock = -1;
- bool ok = false;
+ struct sockaddr_in raddr;
+ struct hostent *rhost_info;
+ int sock = -1;
+ bool ok = false;
- QString displayEnv = getenv("QWS_DISPLAY");
- qDebug(displayEnv);
+ QString displayEnv = getenv("QWS_DISPLAY");
+ odebug << displayEnv << oendl;
- if(( displayEnv.left(2) != ":0" ) && (!displayEnv.isEmpty())) {
+ if(( displayEnv.left(2) != ":0" ) && (!displayEnv.isEmpty())) {
- if (( rhost_info = (struct hostent *) ::gethostbyname ((char *) SCAP_hostname )) != 0 ) {
- ::memset ( &raddr, 0, sizeof (struct sockaddr_in));
- ::memcpy ( &raddr. sin_addr, rhost_info-> h_addr, rhost_info-> h_length );
- raddr. sin_family = rhost_info-> h_addrtype;
- raddr. sin_port = htons ( SCAP_port );
+ if (( rhost_info = (struct hostent *) ::gethostbyname ((char *) SCAP_hostname )) != 0 ) {
+ ::memset ( &raddr, 0, sizeof (struct sockaddr_in));
+ ::memcpy ( &raddr. sin_addr, rhost_info-> h_addr, rhost_info-> h_length );
+ raddr. sin_family = rhost_info-> h_addrtype;
+ raddr. sin_port = htons ( SCAP_port );
- if (( sock = ::socket ( AF_INET, SOCK_STREAM, 0 )) >= 0 ) {
- if ( ::connect ( sock, (struct sockaddr *) & raddr, sizeof (struct sockaddr)) >= 0 ) {
+ if (( sock = ::socket ( AF_INET, SOCK_STREAM, 0 )) >= 0 ) {
+ if ( ::connect ( sock, (struct sockaddr *) & raddr, sizeof (struct sockaddr)) >= 0 ) {
- QString header;
+ QString header;
- QPixmap pix;
+ QPixmap pix;
- QString SCAP_model="";
+ QString SCAP_model="";
#warning FIXME: model string should be filled with actual device model
- if( snapshot.width() > 320)
- SCAP_model ="Corgi";
-
- if(displayEnv == "QVFb:0") {//set this if you plan on using this app in qvfb!!
- pix = snapshot.xForm(QWMatrix().rotate(90));
- } else
- pix = ( snapshot.width() > snapshot.height() ) ? snapshot : snapshot.xForm( QWMatrix().rotate(90) );
-
- QImage img = pix.convertToImage().convertDepth( 16 ); // could make that also depth independent, if hh.org/scap can handle it
-
- header = "POST /scap/capture.cgi?%1+%2 HTTP/1.1\n" // 1: model / 2: user
- "Content-length: %3\n" // 3: content length
- "Content-Type: image/png\n"
- "Host: %4\n" // 4: scap host
- "\n";
-
-
- header = header.arg( SCAP_model).arg( ::getenv( "USER" ) ).arg( img.numBytes() ).arg( SCAP_hostname );
- qDebug(header);
-
- if ( !pix.isNull() ) {
- const char *ascii = header.latin1( );
- uint ascii_len = ::strlen( ascii );
- ::write ( sock, ascii, ascii_len );
- ::write ( sock, img.bits(), img.numBytes() );
-
- ok = true;
- }
- }
- ::close ( sock );
- }
- }
- if ( ok ) {
- QMessageBox::information( 0, tr( "Success" ), QString( "<p>%1</p>" ).arg ( tr( "Screenshot was uploaded to %1" )).arg( SCAP_hostname ));
- } else {
- QMessageBox::warning( 0, tr( "Error" ), QString( "<p>%1</p>" ).arg( tr( "Connection to %1 failed." )).arg( SCAP_hostname ));
- }
- } else {
- QMessageBox::warning( 0, tr( "Error" ),tr("Please set <b>QWS_DISPLAY</b> environmental variable."));
- }
- }
-
+ if( snapshot.width() > 320)
+ SCAP_model ="Corgi";
+
+ if(displayEnv == "QVFb:0") {//set this if you plan on using this app in qvfb!!
+ pix = snapshot.xForm(QWMatrix().rotate(90));
+ } else
+ pix = ( snapshot.width() > snapshot.height() ) ? snapshot : snapshot.xForm( QWMatrix().rotate(90) );
+
+ QImage img = pix.convertToImage().convertDepth( 16 ); // could make that also depth independent, if hh.org/scap can handle it
+
+ header = "POST /scap/capture.cgi?%1+%2 HTTP/1.1\n" // 1: model / 2: user
+ "Content-length: %3\n" // 3: content length
+ "Content-Type: image/png\n"
+ "Host: %4\n" // 4: scap host
+ "\n";
+
+
+ header = header.arg( SCAP_model).arg( ::getenv( "USER" ) ).arg( img.numBytes() ).arg( SCAP_hostname );
+ odebug << header << oendl;
+
+ if ( !pix.isNull() ) {
+ const char *ascii = header.latin1( );
+ uint ascii_len = ::strlen( ascii );
+ ::write ( sock, ascii, ascii_len );
+ ::write ( sock, img.bits(), img.numBytes() );
+
+ ok = true;
+ }
+ }
+ ::close ( sock );
+ }
+ }
+ if ( ok ) {
+ QMessageBox::information( 0, tr( "Success" ), QString( "<p>%1</p>" ).arg ( tr( "Screenshot was uploaded to %1" )).arg( SCAP_hostname ));
+ } else {
+ QMessageBox::warning( 0, tr( "Error" ), QString( "<p>%1</p>" ).arg( tr( "Connection to %1 failed." )).arg( SCAP_hostname ));
+ }
+ } else {
+ QMessageBox::warning( 0, tr( "Error" ),tr("Please set <b>QWS_DISPLAY</b> environmental variable."));
+ }
+ }
+
}
//===========================================================================
ScreenshotApplet::ScreenshotApplet( QWidget *parent, const char *name )
: QWidget( parent, name )
{
- setFixedWidth( AppLnk::smallIconSize());
+ setFixedWidth( AppLnk::smallIconSize());
QImage img = (const char **)snapshot_xpm;
img = img.smoothScale(AppLnk::smallIconSize(), AppLnk::smallIconSize());
m_icon.convertFromImage(img);
}
ScreenshotApplet::~ScreenshotApplet()
{
}
int ScreenshotApplet::position()
{
return 6;
}
void ScreenshotApplet::mousePressEvent( QMouseEvent *)
{
ScreenshotControl *sc = new ScreenshotControl ( );
QPoint curPos = mapToGlobal ( QPoint ( 0, 0 ));
// windowPosX is the windows position centered above the applets icon.
// If the icon is near the edge of the screen, the window would leave the visible area
// so we check the position against the screen width and correct the difference if needed
-
+
int screenWidth = qApp->desktop()->width();
int windowPosX = curPos. x ( ) - ( sc-> sizeHint ( ). width ( ) - width ( )) / 2 ;
int ZwindowPosX, XwindowPosX;
-
+
// the window would be placed beyond the screen wich doesn't look tooo good
if ( (windowPosX + sc-> sizeHint ( ). width ( )) > screenWidth ) {
- XwindowPosX = windowPosX + sc-> sizeHint ( ). width ( ) - screenWidth;
- ZwindowPosX = windowPosX - XwindowPosX - 1;
+ XwindowPosX = windowPosX + sc-> sizeHint ( ). width ( ) - screenWidth;
+ ZwindowPosX = windowPosX - XwindowPosX - 1;
} else {
- ZwindowPosX = windowPosX;
+ ZwindowPosX = windowPosX;
}
-
+
sc-> move ( ZwindowPosX, curPos. y ( ) - sc-> sizeHint ( ). height ( ) );
sc-> show ( );
}
void ScreenshotApplet::paintEvent( QPaintEvent* )
{
QPainter p ( this );
- p.drawPixmap( 0,0, m_icon );
+ p.drawPixmap( 0,0, m_icon );
}
EXPORT_OPIE_APPLET_v1( ScreenshotApplet )
diff --git a/core/applets/vmemo/vmemo.cpp b/core/applets/vmemo/vmemo.cpp
index 7dd5b4b..622b1df 100644
--- a/core/applets/vmemo/vmemo.cpp
+++ b/core/applets/vmemo/vmemo.cpp
@@ -1,80 +1,84 @@
/************************************************************************************
**
** 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.
**
************************************************************************************/
// copyright 2002 Jeremy Cowgar <jc@cowgar.com>
// copyright 2002 and 2003 L.J.Potter <ljp@llornkcor.com>
+/* OPIE */
+#include <opie2/odebug.h>
+using namespace Opie::Core;
+
extern "C" {
#include "adpcm.h"
}
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/soundcard.h>
#include <errno.h>
typedef struct _waveheader {
u_long main_chunk; /* 'RIFF' */
u_long length; /* filelen */
u_long chunk_type; /* 'WAVE' */
u_long sub_chunk; /* 'fmt ' */
- u_long sc_len; /* length of sub_chunk, =16
+ u_long sc_len; /* length of sub_chunk, =16
(chunckSize) format len */
u_short format; /* should be 1 for PCM-code (formatTag) */
u_short modus; /* 1 Mono, 2 Stereo (channels) */
u_long sample_fq; /* samples per second (samplesPerSecond) */
u_long byte_p_sec; /* avg bytes per second (avgBytePerSecond) */
u_short byte_p_spl; /* samplesize; 1 or 2 bytes (blockAlign) */
u_short bit_p_spl; /* 8, 12 or 16 bit (bitsPerSample) */
u_long data_chunk; /* 'data' */
u_long data_length;/* samplecount */
} WaveHeader;
#define RIFF 0x46464952
#define WAVE 0x45564157
#define FMT 0x20746D66
#define DATA 0x61746164
#define PCM_CODE 1
#define WAVE_MONO 1
#define WAVE_STEREO 2
struct adpcm_state encoder_state;
//struct adpcm_state decoder_state;
#define WAVE_FORMAT_DVI_ADPCM (0x0011)
#define WAVE_FORMAT_PCM (0x0001)
#include "vmemo.h"
#include <opie2/otaskbarapplet.h>
#include <qpe/qpeapplication.h>
#include <qpe/config.h>
#include <qpainter.h>
#include <qmessagebox.h>
int seq = 0;
/* XPM */
static char * vmemo_xpm[] = {
"16 16 102 2",
" c None",
". c #60636A",
"+ c #6E6E72",
"@ c #68696E",
"# c #4D525C",
@@ -153,492 +157,492 @@ static char * vmemo_xpm[] = {
"M c #343437",
"N c #8F8F98",
"O c #000407",
"P c #2D3137",
"Q c #B0B1BC",
"R c #3B3C40",
"S c #6E6E74",
"T c #95959C",
"U c #74747A",
"V c #1D1D1E",
"W c #91929A",
"X c #42444A",
"Y c #22282E",
"Z c #B0B2BC",
"` c #898A90",
" . c #65656A",
".. c #999AA2",
"+. c #52535A",
"@. c #151B21",
"#. c #515257",
"$. c #B5B5BE",
"%. c #616167",
"&. c #1A1D22",
"*. c #000713",
"=. c #1F1F21",
" ",
" . + @ # ",
" $ % & * = - ",
" ; > , ' ) ! ~ ",
" { ] ^ / ( _ : ",
" < [ } | 1 2 3 ",
" 4 5 6 7 8 9 0 a b c ",
" d e f g h i j 3 k l m n ",
" o p q r s t u v w n ",
" o x y z A B C D E n ",
" F G H I J K L M N O ",
" P Q R S T U V W X ",
" Y Z ` b ...+. ",
" @.#.$.%.&. ",
" *.B =. ",
" n n n n n n n n n "};
using namespace Opie::Ui;
VMemo::VMemo( QWidget *parent, const char *_name )
: QWidget( parent, _name ) {
setFixedHeight( 18 );
setFixedWidth( 14 );
-
+
t_timer = new QTimer( this );
connect( t_timer, SIGNAL( timeout() ), SLOT( timerBreak() ) );
-
+
Config vmCfg("Vmemo");
vmCfg.setGroup("Defaults");
int toggleKey = setToggleButton(vmCfg.readNumEntry("toggleKey", -1));
useADPCM = vmCfg.readBoolEntry("use_ADPCM", 0);
- qDebug("toggleKey %d", toggleKey);
+ odebug << "toggleKey " << toggleKey << "" << oendl;
if ( QFile::exists ( "/dev/sharp_buz" ) || QFile::exists ( "/dev/sharp_led" ))
systemZaurus=TRUE;
- else
+ else
systemZaurus=FALSE;
-
+
myChannel = new QCopChannel( "QPE/VMemo", this );
connect( myChannel, SIGNAL(received(const QCString&,const QByteArray&)),
this, SLOT(receive(const QCString&,const QByteArray&)) );
if( toggleKey != -1 ) {
// keyRegister(key, channel, message)
QCopEnvelope e("QPE/Launcher", "keyRegister(int,QCString,QCString)");
// e << 4096; // Key_Escape
// e << Key_F5; //4148
e << toggleKey;
e << QString("QPE/VMemo");
e << QString("toggleRecord()");
}
if(toggleKey == 1)
usingIcon=TRUE;
else
usingIcon=FALSE;
if( vmCfg.readNumEntry("hideIcon",0) == 1)
hide();
recording = FALSE;
// }
}
VMemo::~VMemo() {
}
int VMemo::position()
{
return 6;
}
void VMemo::receive( const QCString &msg, const QByteArray &data ) {
- qDebug("receive");
+ odebug << "receive" << oendl;
QDataStream stream( data, IO_ReadOnly );
if (msg == "toggleRecord()") {
if (recording) {
fromToggle = TRUE;
stopRecording();
} else {
fromToggle = TRUE;
startRecording();
}
}
}
void VMemo::paintEvent( QPaintEvent* ) {
QPainter p(this);
p.drawPixmap( 0, 1,( const char** ) vmemo_xpm );
}
void VMemo::mousePressEvent( QMouseEvent * me) {
/* No mousePress/mouseRelease recording on the iPAQ. The REC button on the iPAQ calls these functions
mousePressEvent and mouseReleaseEvent with a NULL parameter. */
-
+
// if (!systemZaurus && me != NULL)
// return;
// }
if(!recording)
startRecording();
else
stopRecording();
}
void VMemo::mouseReleaseEvent( QMouseEvent * ) {
}
bool VMemo::startRecording() {
Config config( "Vmemo" );
config.setGroup( "System" );
useAlerts = config.readBoolEntry("Alert",1);
if(useAlerts) {
msgLabel = new QLabel( 0, "alertLabel" );
msgLabel->setText("<B><P><font size=+2>VMemo-Recording</font></B>");
msgLabel->show();
}
- qDebug("Start recording engines");
+ odebug << "Start recording engines" << oendl;
recording = TRUE;
if (openDSP() == -1) {
recording = FALSE;
return FALSE;
}
-
+
config.setGroup("Defaults");
date = TimeString::dateString( QDateTime::currentDateTime(),false,true);
date.replace(QRegExp("'"),"");
date.replace(QRegExp(" "),"_");
date.replace(QRegExp(":"),".");
date.replace(QRegExp(","),"");
QString fName;
config.setGroup( "System" );
fName = QPEApplication::documentDir() ;
fileName = config.readEntry("RecLocation", fName);
int s;
s=fileName.find(':');
if(s)
fileName=fileName.right(fileName.length()-s-2);
- qDebug("pathname will be "+fileName);
+ odebug << "pathname will be "+fileName << oendl;
if( fileName.left(1).find('/') == -1)
fileName="/"+fileName;
if( fileName.right(1).find('/') == -1)
fileName+="/";
fName = "vm_"+ date+ ".wav";
-
+
fileName+=fName;
- qDebug("filename is "+fileName);
+ odebug << "filename is "+fileName << oendl;
// open tmp file here
char *pointer;
- pointer=tmpnam(NULL);
- qDebug("Opening tmp file %s",pointer);
-
+ pointer=tmpnam(NULL);
+ odebug << "Opening tmp file " << pointer << "" << oendl;
+
if(openWAV(pointer ) == -1) {
QString err("Could not open the temp file\n");
err += fileName;
QMessageBox::critical(0, "vmemo", err, "Abort");
::close(dsp);
return FALSE;
}
if( record() ) {
QString cmd;
if( fileName.find(".wav",0,TRUE) == -1)
fileName += ".wav";
cmd.sprintf("mv %s "+fileName, pointer);
// move tmp file to regular file here
-
+
system(cmd.latin1());
QArray<int> cats(1);
cats[0] = config.readNumEntry("Category", 0);
-
+
QString dlName("vm_");
dlName += date;
DocLnk l;
l.setFile(fileName);
l.setName(dlName);
l.setType("audio/x-wav");
l.setCategories(cats);
l.writeLink();
return TRUE;
} else
return FALSE;
-
+
}
void VMemo::stopRecording() {
show();
- qDebug("Stopped recording");
+ odebug << "Stopped recording" << oendl;
recording = FALSE;
if(useAlerts) {
msgLabel->close();
msgLabel=0;
delete msgLabel;
}
t_timer->stop();
Config cfg("Vmemo");
cfg.setGroup("Defaults");
if( cfg.readNumEntry("hideIcon",0) == 1 )
hide();
}
int VMemo::openDSP() {
Config cfg("Vmemo");
cfg.setGroup("Record");
-
+
speed = cfg.readNumEntry("SampleRate", 22050);
channels = cfg.readNumEntry("Stereo", 1) ? 2 : 1; // 1 = stereo(2), 0 = mono(1)
if (cfg.readNumEntry("SixteenBit", 1)==1) {
format = AFMT_S16_LE;
resolution = 16;
} else {
format = AFMT_U8;
resolution = 8;
}
- qDebug("samplerate: %d, channels %d, resolution %d", speed, channels, resolution);
+ odebug << "samplerate: " << speed << ", channels " << channels << ", resolution " << resolution << "" << oendl;
if(systemZaurus) {
dsp = open("/dev/dsp1", O_RDONLY); //Zaurus needs /dev/dsp1
channels=1; //zaurus has one input channel
} else {
dsp = open("/dev/dsp", O_RDONLY);
}
-
+
if(dsp == -1) {
msgLabel->close();
msgLabel=0;
delete msgLabel;
-
+
perror("open(\"/dev/dsp\")");
errorMsg="open(\"/dev/dsp\")\n "+(QString)strerror(errno);
QMessageBox::critical(0, "vmemo", errorMsg, "Abort");
return -1;
}
-
+
if(ioctl(dsp, SNDCTL_DSP_SETFMT , &format)==-1) {
perror("ioctl(\"SNDCTL_DSP_SETFMT\")");
return -1;
}
if(ioctl(dsp, SNDCTL_DSP_CHANNELS , &channels)==-1) {
perror("ioctl(\"SNDCTL_DSP_CHANNELS\")");
return -1;
}
if(ioctl(dsp, SNDCTL_DSP_SPEED , &speed)==-1) {
perror("ioctl(\"SNDCTL_DSP_SPEED\")");
return -1;
}
if(ioctl(dsp, SOUND_PCM_READ_RATE , &rate)==-1) {
perror("ioctl(\"SOUND_PCM_READ_RATE\")");
return -1;
}
QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << FALSE; //mute
-
+
return 1;
}
int VMemo::openWAV(const char *filename) {
track.setName(filename);
if(!track.open(IO_WriteOnly|IO_Truncate|IO_Raw)) {
errorMsg=filename;
return -1;
}
wav=track.handle();
Config vmCfg("Vmemo");
vmCfg.setGroup("Defaults");
useADPCM = vmCfg.readBoolEntry("use_ADPCM", 0);
-
+
WaveHeader wh;
wh.main_chunk = RIFF;
- wh.length=0;
+ wh.length=0;
wh.chunk_type = WAVE;
wh.sub_chunk = FMT;
wh.sc_len = 16;
if(useADPCM)
wh.format = WAVE_FORMAT_DVI_ADPCM;//PCM_CODE;
else
- wh.format = PCM_CODE;
+ wh.format = PCM_CODE;
wh.modus = channels;
wh.sample_fq = speed;
wh.byte_p_sec = speed * channels * resolution/8;
- wh.byte_p_spl = channels * (resolution / 8);
+ wh.byte_p_spl = channels * (resolution / 8);
wh.bit_p_spl = resolution;
wh.data_chunk = DATA;
- wh.data_length= 0;
+ wh.data_length= 0;
// qDebug("Write header channels %d, speed %d, b/s %d, blockalign %d, bitrate %d"
// , wh.modus, wh.sample_fq, wh.byte_p_sec, wh.byte_p_spl, wh.bit_p_spl );
write (wav, &wh, sizeof(WaveHeader));
-
+
return 1;
}
bool VMemo::record() {
length=0;
int result, value;
QString msg;
msg.sprintf("Recording format %d", format);
- qDebug(msg);
+ odebug << msg << oendl;
Config config("Vmemo");
config.setGroup("Record");
int sRate=config.readNumEntry("SizeLimit", 30);
if(sRate > 0)
t_timer->start( sRate * 1000+1000, TRUE);
// if(systemZaurus) {
// } else { // 16 bit only capabilities
msg.sprintf("Recording format other");
- qDebug(msg);
+ odebug << msg << oendl;
int bufsize=1024;
int bytesWritten=0;
signed short sound[1024], monoBuffer[1024];
char abuf[bufsize/2];
short sbuf[bufsize];
Config vmCfg("Vmemo");
vmCfg.setGroup("Defaults");
useADPCM = vmCfg.readBoolEntry("use_ADPCM", 0);
while(recording) {
if(useADPCM)
result = read( dsp, sbuf, bufsize); // 8192
else
result = read(dsp, sound, 1024); // 8192
if( result <= 0) {
perror("recording error ");
-// qDebug(currentFileName);
+// odebug << currentFileName << oendl;
QMessageBox::message(tr("Note"),tr("error recording"));
recording=FALSE;
break;
return FALSE;
}
if(useADPCM) {
adpcm_coder( sbuf, abuf, result/2, &encoder_state);
bytesWritten = ::write(wav, abuf, result/4);
} else {
for (int i = 0; i < result; i++) { //since Z is mono do normally
monoBuffer[i] = sound[i];
}
length+=write(wav, monoBuffer, result);
}
length +=bytesWritten;
if(length<0) {
recording=false;
perror("dev/dsp's is a lookin' messy");
QMessageBox::message("Vmemo","Error writing to file\n"+ fileName);
break;
return FALSE;
}
- // printf("%d\r",length);
+ // odebug << "" << length << "\r" << oendl;
// fflush(stdout);
qApp->processEvents();
}
// qDebug("file has length of %d lasting %d seconds",
// length, (( length / speed) / channels) / 2 );
// }
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<//
value = length+36;
lseek(wav, 4, SEEK_SET);
write(wav, &value, 4);
lseek(wav, 40, SEEK_SET);
write(wav, &length, 4);
track.close();
- qDebug("Track closed");
-
+ odebug << "Track closed" << oendl;
+
if( ioctl( dsp, SNDCTL_DSP_RESET,0) == -1)
perror("ioctl(\"SNDCTL_DSP_RESET\")");
::close(dsp);
Config cfgO("OpieRec");
cfgO.setGroup("Sounds");
int nFiles = cfgO.readNumEntry( "NumberofFiles",0);
QString currentFileName = fileName;
QString currentFile = "vm_"+ date;
-
+
float numberOfRecordedSeconds=(float) length / (float)speed * (float)2;
cfgO.writeEntry( "NumberofFiles", nFiles + 1);
cfgO.writeEntry( QString::number( nFiles + 1), currentFile);
cfgO.writeEntry( currentFile, currentFileName);
QString time;
time.sprintf("%.2f", numberOfRecordedSeconds);
cfgO.writeEntry( currentFileName, time );
- // qDebug("writing config numberOfRecordedSeconds "+time);
+ // odebug << "writing config numberOfRecordedSeconds "+time << oendl;
cfgO.write();
- qDebug("done recording "+fileName);
+ odebug << "done recording "+fileName << oendl;
Config cfg("qpe");
cfg.setGroup("Volume");
QString foo = cfg.readEntry("Mute","TRUE");
if(foo.find("TRUE",0,TRUE) != -1)
QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << TRUE; //mute
return TRUE;
}
int VMemo::setToggleButton(int tog) {
for( int i=0; i < 10;i++) {
switch (tog) {
case 0:
- return -1;
- break;
+ return -1;
+ break;
case 1:
- return 0;
- break;
+ return 0;
+ break;
case 2:
return Key_F24; //was Escape
- break;
+ break;
case 3:
return Key_Space;
- break;
+ break;
case 4:
return Key_F12;
- break;
+ break;
case 5:
return Key_F9;
- break;
+ break;
case 6:
return Key_F10;
- break;
+ break;
case 7:
return Key_F11;
- break;
+ break;
case 8:
return Key_F13;
- break;
+ break;
};
}
return -1;
}
void VMemo::timerBreak() {
//stop
stopRecording();
QMessageBox::message("Vmemo","Vmemo recording has ended");
}
EXPORT_OPIE_APPLET_v1( VMemo )
diff --git a/core/applets/vtapplet/vt.cpp b/core/applets/vtapplet/vt.cpp
index bd39093..aec63c3 100644
--- a/core/applets/vtapplet/vt.cpp
+++ b/core/applets/vtapplet/vt.cpp
@@ -1,161 +1,164 @@
/**********************************************************************
-** Copyright (C) 2003 Michael 'Mickey' Lauer. All rights reserved.
-**
-** Contact me @ mickeyl@handhelds.org
+** Copyright (C) 2003-2004 Michael 'Mickey' Lauer <mickey@Vanille.de>
**
** 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.
**
**********************************************************************/
+#include "vt.h"
+
+/* OPIE */
+#include <opie2/odebug.h>
#include <qpe/resource.h>
+using namespace Opie::Core;
+/* QT */
#include <qpopupmenu.h>
+/* STD */
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <linux/vt.h>
-#include "vt.h"
-
VTApplet::VTApplet ( )
- : QObject ( 0, "VTApplet" )
+ : QObject ( 0, "VTApplet" )
{
}
VTApplet::~VTApplet ( )
{
}
int VTApplet::position ( ) const
{
return 2;
}
QString VTApplet::name ( ) const
{
- return tr( "VT shortcut" );
+ return tr( "VT shortcut" );
}
QString VTApplet::text ( ) const
{
- return tr( "Terminal" );
+ return tr( "Terminal" );
}
/*
QString VTApplet::tr( const char* s ) const
{
return qApp->translate( "VTApplet", s, 0 );
}
QString VTApplet::tr( const char* s, const char* p ) const
{
return qApp->translate( "VTApplet", s, p );
}
*/
QIconSet VTApplet::icon ( ) const
{
- QPixmap pix;
- QImage img = Resource::loadImage ( "terminal" );
+ QPixmap pix;
+ QImage img = Resource::loadImage ( "terminal" );
- if ( !img. isNull ( ))
- pix. convertFromImage ( img. smoothScale ( 14, 14 ));
- return pix;
+ if ( !img. isNull ( ))
+ pix. convertFromImage ( img. smoothScale ( 14, 14 ));
+ return pix;
}
QPopupMenu *VTApplet::popup ( QWidget* parent ) const
{
- qDebug( "VTApplet::popup" );
+ odebug << "VTApplet::popup" << oendl;
struct vt_stat vtstat;
int fd = ::open( "/dev/tty0", O_RDWR );
if ( fd == -1 ) return 0;
if ( ioctl( fd, VT_GETSTATE, &vtstat ) == -1 ) return 0;
m_subMenu = new QPopupMenu( parent );
m_subMenu->setCheckable( true );
for ( int i = 1; i < 10; ++i )
{
int id = m_subMenu->insertItem( QString::number( i ), 500+i );
m_subMenu->setItemChecked( id, id-500 == vtstat.v_active );
}
::close( fd );
connect( m_subMenu, SIGNAL( activated(int) ), this, SLOT( changeVT(int) ) );
connect( m_subMenu, SIGNAL( aboutToShow() ), this, SLOT( updateMenu() ) );
return m_subMenu;
}
void VTApplet::changeVT( int index )
{
- //qDebug( "VTApplet::changeVT( %d )", index-500 );
+ //odebug << "VTApplet::changeVT( " << index-500 << " )" << oendl;
int fd = ::open("/dev/tty0", O_RDWR);
if ( fd == -1 ) return;
ioctl( fd, VT_ACTIVATE, index-500 );
}
void VTApplet::updateMenu()
{
- //qDebug( "VTApplet::updateMenu()" );
+ //odebug << "VTApplet::updateMenu()" << oendl;
int fd = ::open( "/dev/console", O_RDONLY );
if ( fd == -1 ) return;
for ( int i = 1; i < 10; ++i )
{
int result = ioctl( fd, VT_DISALLOCATE, i );
/*
if ( result == -1 )
- qDebug( "VT %d disallocated == free", i );
+ odebug << "VT " << i << " disallocated == free" << oendl;
else
- qDebug( "VT %d _not_ disallocated == busy", i );
+ odebug << "VT " << i << " _not_ disallocated == busy" << oendl;
*/
m_subMenu->setItemEnabled( 500+i, result == -1 );
}
::close( fd );
}
void VTApplet::activated()
{
- qDebug( "VTApplet::activated()" );
+ odebug << "VTApplet::activated()" << oendl;
}
QRESULT VTApplet::queryInterface ( const QUuid &uuid, QUnknownInterface **iface )
{
- *iface = 0;
- if ( uuid == IID_QUnknown )
- *iface = this;
- else if ( uuid == IID_MenuApplet )
- *iface = this;
- else
- return QS_FALSE;
-
- if ( *iface )
- (*iface)-> addRef ( );
- return QS_OK;
+ *iface = 0;
+ if ( uuid == IID_QUnknown )
+ *iface = this;
+ else if ( uuid == IID_MenuApplet )
+ *iface = this;
+ else
+ return QS_FALSE;
+
+ if ( *iface )
+ (*iface)-> addRef ( );
+ return QS_OK;
}
Q_EXPORT_INTERFACE( )
{
- Q_CREATE_INSTANCE( VTApplet )
+ Q_CREATE_INSTANCE( VTApplet )
}
diff --git a/core/obex/obexsend.cpp b/core/obex/obexsend.cpp
index cd8d58e..f3dd11c 100644
--- a/core/obex/obexsend.cpp
+++ b/core/obex/obexsend.cpp
@@ -1,255 +1,256 @@
+#include "obex.h"
+#include "obexsend.h"
+using namespace OpieObex;
+
+/* OPIE */
+#include <opie2/odebug.h>
+#include <qpe/qcopenvelope_qws.h>
+using namespace Opie::Core;
+
+/* QT */
#include <qpushbutton.h>
#include <qlabel.h>
#include <qlayout.h>
#include <qtimer.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 ");
+ owarn << "slot it irda devices " << oendl;
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 );
+ owarn << "Start beam? " << name << " " << dev << "" << oendl;
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() );
+ owarn << "dispatch irda " << str.data() << "" << oendl;
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!!");
+ owarn << "irda sent!!" << oendl;
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() );
+ owarn << "SetSource:" << str.toInt() << "" << oendl;
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;
}
diff --git a/core/obex/receiver.cpp b/core/obex/receiver.cpp
index ee2668b..8885256 100644
--- a/core/obex/receiver.cpp
+++ b/core/obex/receiver.cpp
@@ -1,199 +1,202 @@
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/mman.h>
-#include <stdlib.h> // int system
-#include <unistd.h>
+#include "obex.h"
+#include "receiver.h"
+using namespace OpieObex;
-#include <fcntl.h>
+/* OPIE */
+#include <opie2/odebug.h>
+#include <qpe/applnk.h>
+#include <qpe/qpeapplication.h>
+#include <qpe/qcopenvelope_qws.h>
+using namespace Opie::Core;
+/* QT */
#include <qfileinfo.h>
#include <qlabel.h>
#include <qtextview.h>
#include <qpushbutton.h>
-#include <qpe/applnk.h>
-#include <qpe/qpeapplication.h>
-#include <qpe/qcopenvelope_qws.h>
-
-#include "obex.h"
-#include "receiver.h"
-
-using namespace OpieObex;
+/* STD */
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
+#include <stdlib.h> // int system
+#include <unistd.h>
+#include <fcntl.h>
/* 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 ) {
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 );
}
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() );
+ owarn << "Executing: " << cmd << "" << oendl;
(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() );
+ owarn << "check file!! " << file << "" << oendl;
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 );
+ owarn << "check it now " << ret << "" << oendl;
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() );
+ owarn << " " << lnk.type() << " " << lnk.icon() << "" << oendl;
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() );
+ owarn << "src " << src << ", dest " << file << "" << oendl;
QString cmd = QString("mv %1 %2").arg( Global::shellQuote( src )).
arg( Global::shellQuote( file ) );
::system( cmd.latin1() );
// done
}