summaryrefslogtreecommitdiff
path: root/core/applets/screenshotapplet/screenshot.cpp
authorllornkcor <llornkcor>2002-07-13 22:49:06 (UTC)
committer llornkcor <llornkcor>2002-07-13 22:49:06 (UTC)
commitfc63a266936297efd9125c6418bbdccf1d0fcaa2 (patch) (side-by-side diff)
tree1f255b956d7080443186fd4e319e6cdcfd7001a3 /core/applets/screenshotapplet/screenshot.cpp
parent1627ed22871af50d6debaa0140546c14984501cf (diff)
downloadopie-fc63a266936297efd9125c6418bbdccf1d0fcaa2.zip
opie-fc63a266936297efd9125c6418bbdccf1d0fcaa2.tar.gz
opie-fc63a266936297efd9125c6418bbdccf1d0fcaa2.tar.bz2
added netcat button, and a 'name it' checkbox
Diffstat (limited to 'core/applets/screenshotapplet/screenshot.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/screenshotapplet/screenshot.cpp201
1 files changed, 154 insertions, 47 deletions
diff --git a/core/applets/screenshotapplet/screenshot.cpp b/core/applets/screenshotapplet/screenshot.cpp
index 8a2a956..4ebdb7a 100644
--- a/core/applets/screenshotapplet/screenshot.cpp
+++ b/core/applets/screenshotapplet/screenshot.cpp
@@ -13,6 +13,8 @@
**********************************************************************/
#include "screenshot.h"
+#include "inputDialog.h"
+
#include <qapplication.h>
#include <stdlib.h>
@@ -24,7 +26,9 @@
#include <qpe/config.h>
#include <qpe/applnk.h>
#include <qpe/config.h>
+#include <qsocket.h>
+#include <qlineedit.h>
#include <qdir.h>
#include <qfileinfo.h>
#include <qpoint.h>
@@ -40,6 +44,10 @@
#include <qstring.h>
#include <qfile.h>
#include <qtimer.h>
+#include <qfile.h>
+#include <qdatastream.h>
+#include <qcheckbox.h>
+
static char * snapshot_xpm[] = {
"16 16 10 1",
@@ -77,40 +85,95 @@ ScreenshotControl::ScreenshotControl( QWidget *parent, const char *name )
setFrameStyle( QFrame::PopupPanel | QFrame::Raised );
// qDebug("screenshot control");
QVBoxLayout *vbox = new QVBoxLayout( this );
+ QHBoxLayout *hbox = new QHBoxLayout( this );
// qDebug("new layout");
delaySpin = new QSpinBox( 0,60,1, this, "Spinner" );
// qDebug("new spinbox");
delaySpin->setFocusPolicy( QWidget::NoFocus );
+
+
grabItButton= new QPushButton( this, "GrabButton" );
// qDebug("new pushbutton");
+
grabItButton ->setFocusPolicy( QWidget::TabFocus );
grabItButton->setText(tr("Snapshot"));
+
+
vbox->setMargin( 6 );
vbox->setSpacing( 3 );
+
vbox->addWidget( delaySpin);
+
vbox->setMargin( 6 );
vbox->setSpacing( 3 );
- vbox->addWidget( grabItButton);
+ QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
+ vbox->addItem( spacer );
+
+ saveNamedCheck= new QCheckBox ( "name it", this);
+ saveNamedCheck-> setFocusPolicy ( QWidget::NoFocus );
+ vbox->addWidget( saveNamedCheck);
+
+
+ scapButton = new QPushButton( this, "ScapButton" );
+
+ scapButton ->setFocusPolicy( QWidget::TabFocus );
+ scapButton ->setText(tr("scap"));
+ if( !QFile("/usr/bin/nc").exists())
+ scapButton->hide();
+
+ hbox->addWidget( grabItButton);
+ QSpacerItem* spacer2 = new QSpacerItem( 4, 4, QSizePolicy::Minimum, QSizePolicy::Expanding );
+ hbox->addItem( spacer2 );
+ hbox->addWidget( scapButton);
+
+ vbox->addItem(hbox);
setFixedHeight( 100 );
setFixedWidth( sizeHint().width() );
setFocusPolicy(QWidget::NoFocus);
grabTimer= new QTimer(this,"grab timer");
-// qDebug("newTimer");
connect( grabTimer, SIGNAL( timeout() ), this, SLOT( grabTimerDone() ) );
-// Config cfg("Snapshot");
-// cfg.setGroup("General");
- delaySpin->setValue(1);
-// delaySpin->setValue(cfg.readNumEntry("delay",0));
+ delaySpin->setValue(1);
connect( grabItButton, SIGNAL(released()), SLOT(slotGrab()) );
-
+ connect( scapButton, SIGNAL(released()), SLOT(slotScap()) );
+ connect(saveNamedCheck, SIGNAL(toggled( bool)), this, SLOT( nameScreenshot(bool)) );
}
-void ScreenshotControl::slotGrab()
-{
+void ScreenshotControl::slotGrab() {
// qDebug("SlotGrab");
+ buttonPushed=1;
+ hide();
+ setFileName=FALSE;
+ if( saveNamedCheck->isChecked()) {
+ setFileName=TRUE;
+// qDebug("checked");
+ 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;
+// qDebug(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 );
@@ -120,55 +183,101 @@ void ScreenshotControl::slotGrab()
}
-void ScreenshotControl::grabTimerDone()
-{
+void ScreenshotControl::grabTimerDone() {
performGrab();
}
-void ScreenshotControl::savePixmap()
-{
+void ScreenshotControl::savePixmap() {
DocLnk lnk;
- QString fileName = "sc_"+TimeString::dateString( QDateTime::currentDateTime(),false,true);
- 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);
- QString msg = "mkdir -p "+dirName;
- system(msg.latin1());
+ 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);
+ snapshot.save( fileName,"PNG");
+ QFileInfo fi( fileName);
+ lnk.setName( fi.fileName()); //sets file name
+
+ if(!lnk.writeLink())
+ qDebug("Writing doclink did not work");
+ } else {
+
+ fileName = "sc_"+TimeString::dateString( QDateTime::currentDateTime(),false,true);
+ 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);
+ 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);
+ snapshot.save( fileName,"PNG");
+ QFileInfo fi( fileName);
+ lnk.setName( fi.fileName()); //sets file name
+
+ if(!lnk.writeLink())
+ qDebug("Writing doclink did not work");
+
}
- fileName=dirName+fileName+".png";
- lnk.setFile(fileName); //sets File property
- snapshot.save( fileName,"PNG");
- qDebug("saving file "+fileName);
- QFileInfo fi( fileName);
- lnk.setName( fi.fileName()); //sets file name
- if(!lnk.writeLink())
- qDebug("Writing doclink did not work");
QPEApplication::beep();
-
}
-void ScreenshotControl::performGrab()
-{
- qDebug("grabbing screen");
- grabTimer->stop();
- snapshot = QPixmap::grabWindow( QPEApplication::desktop()->winId(),0,0,QApplication::desktop()->width(),QApplication::desktop()->height() );
- show();
- savePixmap();
+void ScreenshotControl::performGrab() {
+
+ if(buttonPushed ==1) {
+ qDebug("grabbing screen");
+ grabTimer->stop();
+ snapshot = QPixmap::grabWindow( QPEApplication::desktop()->winId(),0,0,QApplication::desktop()->width(),QApplication::desktop()->height() );
+ show();
+ qApp->processEvents();
+ savePixmap();
+ } else {
+ qDebug("scap");
+ grabTimer->stop();
+// do scap here
+ QString cmd;
+ cmd="cat /dev/fd0 > /tmp/cap";
+ system(cmd.latin1());
+// qDebug("echo \"POST /scap/capture.cgi http1.1\"
+// echo \"Content-length: 153600\"
+// echo \"Content-Type: image/gif\"
+// echo \"HOST: www.handhelds.org\"
+// echo \"\"
+// cat /tmp/cap | nc h1.handhelds.org 80");
+ cmd="nc h1.handhelds.org 1011 </tmp/cap";
+ qDebug("running command "+cmd);
+
+ system(cmd.latin1());
+ show();
+ }
+
}
-void ScreenshotControl::setTime(int newTime)
-{
+void ScreenshotControl::setTime(int newTime) {
delaySpin->setValue(newTime);
}
+void ScreenshotControl::nameScreenshot(bool b) {
+
+
+}
+
//===========================================================================
ScreenshotApplet::ScreenshotApplet( QWidget *parent, const char *name )
- : QWidget( parent, name )
-{
+ : QWidget( parent, name ) {
// qDebug("beginning applet");
setFixedHeight( 18 );
setFixedWidth( 14 );
@@ -176,12 +285,10 @@ ScreenshotApplet::ScreenshotApplet( QWidget *parent, const char *name )
// qDebug("new screenshotapplet");
}
-ScreenshotApplet::~ScreenshotApplet()
-{
+ScreenshotApplet::~ScreenshotApplet() {
}
-void ScreenshotApplet::mousePressEvent( QMouseEvent *)
-{
+void ScreenshotApplet::mousePressEvent( QMouseEvent *) {
// if(!vc)
vc = new ScreenshotControl;
QPoint curPos = mapToGlobal( rect().topLeft() );
@@ -190,10 +297,10 @@ void ScreenshotApplet::mousePressEvent( QMouseEvent *)
}
-void ScreenshotApplet::paintEvent( QPaintEvent* )
-{
+void ScreenshotApplet::paintEvent( QPaintEvent* ) {
QPainter p(this);
qDebug("paint pixmap");
p.drawPixmap( 0, 1, ( const char** ) snapshot_xpm );
}
+