summaryrefslogtreecommitdiff
path: root/core/applets/screenshotapplet/screenshot.cpp
Side-by-side diff
Diffstat (limited to 'core/applets/screenshotapplet/screenshot.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/applets/screenshotapplet/screenshot.cpp165
1 files changed, 136 insertions, 29 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
@@ -15,2 +15,4 @@
#include "screenshot.h"
+#include "inputDialog.h"
+
#include <qapplication.h>
@@ -26,3 +28,5 @@
#include <qpe/config.h>
+#include <qsocket.h>
+#include <qlineedit.h>
#include <qdir.h>
@@ -42,2 +46,6 @@
#include <qtimer.h>
+#include <qfile.h>
+#include <qdatastream.h>
+#include <qcheckbox.h>
+
@@ -79,2 +87,3 @@ ScreenshotControl::ScreenshotControl( QWidget *parent, const char *name )
QVBoxLayout *vbox = new QVBoxLayout( this );
+ QHBoxLayout *hbox = new QHBoxLayout( this );
// qDebug("new layout");
@@ -83,12 +92,39 @@ ScreenshotControl::ScreenshotControl( QWidget *parent, const char *name )
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);
@@ -99,16 +135,43 @@ ScreenshotControl::ScreenshotControl( QWidget *parent, const char *name )
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));
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();
@@ -122,4 +185,3 @@ void ScreenshotControl::slotGrab()
-void ScreenshotControl::grabTimerDone()
-{
+void ScreenshotControl::grabTimerDone() {
performGrab();
@@ -127,9 +189,27 @@ void ScreenshotControl::grabTimerDone()
-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 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() ) {
@@ -139,8 +219,11 @@ void ScreenshotControl::savePixmap()
}
- fileName=dirName+fileName+".png";
+ fileName=dirName+fileName;
+ if(fileName.right(3)!="png")
+ fileName=fileName+".png";
lnk.setFile(fileName); //sets File property
- snapshot.save( fileName,"PNG");
qDebug("saving file "+fileName);
+ snapshot.save( fileName,"PNG");
QFileInfo fi( fileName);
lnk.setName( fi.fileName()); //sets file name
+
if(!lnk.writeLink())
@@ -148,8 +231,10 @@ void ScreenshotControl::savePixmap()
- QPEApplication::beep();
+ }
+ QPEApplication::beep();
}
-void ScreenshotControl::performGrab()
-{
+void ScreenshotControl::performGrab() {
+
+ if(buttonPushed ==1) {
qDebug("grabbing screen");
@@ -158,7 +243,27 @@ void ScreenshotControl::performGrab()
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);
@@ -166,2 +271,7 @@ void ScreenshotControl::setTime(int newTime)
+void ScreenshotControl::nameScreenshot(bool b) {
+
+
+}
+
//===========================================================================
@@ -169,4 +279,3 @@ void ScreenshotControl::setTime(int newTime)
ScreenshotApplet::ScreenshotApplet( QWidget *parent, const char *name )
- : QWidget( parent, name )
-{
+ : QWidget( parent, name ) {
// qDebug("beginning applet");
@@ -178,8 +287,6 @@ ScreenshotApplet::ScreenshotApplet( QWidget *parent, const char *name )
-ScreenshotApplet::~ScreenshotApplet()
-{
+ScreenshotApplet::~ScreenshotApplet() {
}
-void ScreenshotApplet::mousePressEvent( QMouseEvent *)
-{
+void ScreenshotApplet::mousePressEvent( QMouseEvent *) {
// if(!vc)
@@ -192,4 +299,3 @@ void ScreenshotApplet::mousePressEvent( QMouseEvent *)
-void ScreenshotApplet::paintEvent( QPaintEvent* )
-{
+void ScreenshotApplet::paintEvent( QPaintEvent* ) {
QPainter p(this);
@@ -199 +305,2 @@ void ScreenshotApplet::paintEvent( QPaintEvent* )
}
+