summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-10-31 12:52:41 (UTC)
committer llornkcor <llornkcor>2002-10-31 12:52:41 (UTC)
commitf6ca21ad98c7af99c0ae4c04afe3c2126317d6de (patch) (unidiff)
tree5b171991ec2f4b8e607ba751fb1b5a3432dba76d
parent4287f9892d5fd18ace4e1fbd55d4731b7e2b1429 (diff)
downloadopie-f6ca21ad98c7af99c0ae4c04afe3c2126317d6de.zip
opie-f6ca21ad98c7af99c0ae4c04afe3c2126317d6de.tar.gz
opie-f6ca21ad98c7af99c0ae4c04afe3c2126317d6de.tar.bz2
parent is now this, not 0
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/screenshotapplet/screenshot.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/core/applets/screenshotapplet/screenshot.cpp b/core/applets/screenshotapplet/screenshot.cpp
index 4ebdb7a..98f2c9e 100644
--- a/core/applets/screenshotapplet/screenshot.cpp
+++ b/core/applets/screenshotapplet/screenshot.cpp
@@ -1,306 +1,306 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002 L.J. Potter ljp@llornkcor.com 2** Copyright (C) 2002 L.J. Potter ljp@llornkcor.com
3** All rights reserved. 3** All rights reserved.
4** 4**
5** This file may be distributed and/or modified under the terms of the 5** This file may be distributed and/or modified under the terms of the
6** GNU General Public License version 2 as published by the Free Software 6** GNU General Public License version 2 as published by the Free Software
7** Foundation and appearing in the file LICENSE.GPL included in the 7** Foundation and appearing in the file LICENSE.GPL included in the
8** packaging of this file. 8** packaging of this file.
9** 9**
10** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 10** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
11** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 11** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
12** 12**
13**********************************************************************/ 13**********************************************************************/
14 14
15#include "screenshot.h" 15#include "screenshot.h"
16#include "inputDialog.h" 16#include "inputDialog.h"
17 17
18#include <qapplication.h> 18#include <qapplication.h>
19#include <stdlib.h> 19#include <stdlib.h>
20 20
21 21
22#include <qpe/resource.h> 22#include <qpe/resource.h>
23#include <qpe/qpeapplication.h> 23#include <qpe/qpeapplication.h>
24#include <qpe/timestring.h> 24#include <qpe/timestring.h>
25#include <qpe/resource.h> 25#include <qpe/resource.h>
26#include <qpe/config.h> 26#include <qpe/config.h>
27#include <qpe/applnk.h> 27#include <qpe/applnk.h>
28#include <qpe/config.h> 28#include <qpe/config.h>
29#include <qsocket.h> 29#include <qsocket.h>
30 30
31#include <qlineedit.h> 31#include <qlineedit.h>
32#include <qdir.h> 32#include <qdir.h>
33#include <qfileinfo.h> 33#include <qfileinfo.h>
34#include <qpoint.h> 34#include <qpoint.h>
35#include <qpushbutton.h> 35#include <qpushbutton.h>
36#include <qpainter.h> 36#include <qpainter.h>
37#include <qcombobox.h> 37#include <qcombobox.h>
38#include <qspinbox.h> 38#include <qspinbox.h>
39#include <qslider.h> 39#include <qslider.h>
40#include <qlayout.h> 40#include <qlayout.h>
41#include <qframe.h> 41#include <qframe.h>
42#include <qpixmap.h> 42#include <qpixmap.h>
43#include <qregexp.h> 43#include <qregexp.h>
44#include <qstring.h> 44#include <qstring.h>
45#include <qfile.h> 45#include <qfile.h>
46#include <qtimer.h> 46#include <qtimer.h>
47#include <qfile.h> 47#include <qfile.h>
48#include <qdatastream.h> 48#include <qdatastream.h>
49#include <qcheckbox.h> 49#include <qcheckbox.h>
50 50
51 51
52static char * snapshot_xpm[] = { 52static char * snapshot_xpm[] = {
53"16 16 10 1", 53"16 16 10 1",
54" c None", 54" c None",
55". c #000000", 55". c #000000",
56"+ c #00C000", 56"+ c #00C000",
57"@ c #585858", 57"@ c #585858",
58"# c #808080", 58"# c #808080",
59"$ c #00FF00", 59"$ c #00FF00",
60"% c #008000", 60"% c #008000",
61"& c #00FFFF", 61"& c #00FFFF",
62"* c #FF0000", 62"* c #FF0000",
63"= c #FFC0C0", 63"= c #FFC0C0",
64" ", 64" ",
65" ... ", 65" ... ",
66" ..+++..@#. ", 66" ..+++..@#. ",
67" .$++++++.#. ", 67" .$++++++.#. ",
68" .%$$++++++. ", 68" .%$$++++++. ",
69" .&%%$$++@***. ", 69" .&%%$$++@***. ",
70" .$&$++$=**@+. ", 70" .$&$++$=**@+. ",
71" .+$$+++@*$%%. ", 71" .+$$+++@*$%%. ",
72" .+++++%+++%%. ", 72" .+++++%+++%%. ",
73" .%%++++..+%%. ", 73" .%%++++..+%%. ",
74" ..%%+++++%%. ", 74" ..%%+++++%%. ",
75" ..%%+++%%. ", 75" ..%%+++%%. ",
76" ..%%+%%. ", 76" ..%%+%%. ",
77" ..%%.. ", 77" ..%%.. ",
78" .. ", 78" .. ",
79" "}; 79" "};
80 80
81 81
82ScreenshotControl::ScreenshotControl( QWidget *parent, const char *name ) 82ScreenshotControl::ScreenshotControl( QWidget *parent, const char *name )
83 : QFrame( parent, name, WDestructiveClose | WStyle_StaysOnTop | WType_Popup ) 83 : QFrame( parent, name, WDestructiveClose | WStyle_StaysOnTop | WType_Popup )
84{ 84{
85 setFrameStyle( QFrame::PopupPanel | QFrame::Raised ); 85 setFrameStyle( QFrame::PopupPanel | QFrame::Raised );
86// qDebug("screenshot control"); 86// qDebug("screenshot control");
87 QVBoxLayout *vbox = new QVBoxLayout( this ); 87 QVBoxLayout *vbox = new QVBoxLayout( this );
88 QHBoxLayout *hbox = new QHBoxLayout( this ); 88 QHBoxLayout *hbox = new QHBoxLayout( this );
89// qDebug("new layout"); 89// qDebug("new layout");
90 delaySpin = new QSpinBox( 0,60,1, this, "Spinner" ); 90 delaySpin = new QSpinBox( 0,60,1, this, "Spinner" );
91// qDebug("new spinbox"); 91// qDebug("new spinbox");
92 delaySpin->setFocusPolicy( QWidget::NoFocus ); 92 delaySpin->setFocusPolicy( QWidget::NoFocus );
93 93
94 94
95 grabItButton= new QPushButton( this, "GrabButton" ); 95 grabItButton= new QPushButton( this, "GrabButton" );
96// qDebug("new pushbutton"); 96// qDebug("new pushbutton");
97 97
98 grabItButton ->setFocusPolicy( QWidget::TabFocus ); 98 grabItButton ->setFocusPolicy( QWidget::TabFocus );
99 grabItButton->setText(tr("Snapshot")); 99 grabItButton->setText(tr("Snapshot"));
100 100
101 101
102 vbox->setMargin( 6 ); 102 vbox->setMargin( 6 );
103 vbox->setSpacing( 3 ); 103 vbox->setSpacing( 3 );
104 104
105 vbox->addWidget( delaySpin); 105 vbox->addWidget( delaySpin);
106 106
107 vbox->setMargin( 6 ); 107 vbox->setMargin( 6 );
108 vbox->setSpacing( 3 ); 108 vbox->setSpacing( 3 );
109 QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); 109 QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
110 vbox->addItem( spacer ); 110 vbox->addItem( spacer );
111 111
112 saveNamedCheck= new QCheckBox ( "name it", this); 112 saveNamedCheck= new QCheckBox ( "name it", this);
113 saveNamedCheck-> setFocusPolicy ( QWidget::NoFocus ); 113 saveNamedCheck-> setFocusPolicy ( QWidget::NoFocus );
114 vbox->addWidget( saveNamedCheck); 114 vbox->addWidget( saveNamedCheck);
115 115
116 116
117 scapButton = new QPushButton( this, "ScapButton" ); 117 scapButton = new QPushButton( this, "ScapButton" );
118 118
119 scapButton ->setFocusPolicy( QWidget::TabFocus ); 119 scapButton ->setFocusPolicy( QWidget::TabFocus );
120 scapButton ->setText(tr("scap")); 120 scapButton ->setText(tr("scap"));
121 if( !QFile("/usr/bin/nc").exists()) 121 if( !QFile("/usr/bin/nc").exists())
122 scapButton->hide(); 122 scapButton->hide();
123 123
124 hbox->addWidget( grabItButton); 124 hbox->addWidget( grabItButton);
125 QSpacerItem* spacer2 = new QSpacerItem( 4, 4, QSizePolicy::Minimum, QSizePolicy::Expanding ); 125 QSpacerItem* spacer2 = new QSpacerItem( 4, 4, QSizePolicy::Minimum, QSizePolicy::Expanding );
126 hbox->addItem( spacer2 ); 126 hbox->addItem( spacer2 );
127 hbox->addWidget( scapButton); 127 hbox->addWidget( scapButton);
128 128
129 vbox->addItem(hbox); 129 vbox->addItem(hbox);
130 130
131 setFixedHeight( 100 ); 131 setFixedHeight( 100 );
132 setFixedWidth( sizeHint().width() ); 132 setFixedWidth( sizeHint().width() );
133 setFocusPolicy(QWidget::NoFocus); 133 setFocusPolicy(QWidget::NoFocus);
134 134
135 grabTimer= new QTimer(this,"grab timer"); 135 grabTimer= new QTimer(this,"grab timer");
136 connect( grabTimer, SIGNAL( timeout() ), this, SLOT( grabTimerDone() ) ); 136 connect( grabTimer, SIGNAL( timeout() ), this, SLOT( grabTimerDone() ) );
137 137
138 delaySpin->setValue(1); 138 delaySpin->setValue(1);
139 connect( grabItButton, SIGNAL(released()), SLOT(slotGrab()) ); 139 connect( grabItButton, SIGNAL(released()), SLOT(slotGrab()) );
140 connect( scapButton, SIGNAL(released()), SLOT(slotScap()) ); 140 connect( scapButton, SIGNAL(released()), SLOT(slotScap()) );
141 connect(saveNamedCheck, SIGNAL(toggled( bool)), this, SLOT( nameScreenshot(bool)) ); 141 connect(saveNamedCheck, SIGNAL(toggled( bool)), this, SLOT( nameScreenshot(bool)) );
142} 142}
143 143
144void ScreenshotControl::slotGrab() { 144void ScreenshotControl::slotGrab() {
145// qDebug("SlotGrab"); 145// qDebug("SlotGrab");
146 buttonPushed=1; 146 buttonPushed=1;
147 hide(); 147 hide();
148 setFileName=FALSE; 148 setFileName=FALSE;
149 if( saveNamedCheck->isChecked()) { 149 if( saveNamedCheck->isChecked()) {
150 setFileName=TRUE; 150 setFileName=TRUE;
151// qDebug("checked"); 151// qDebug("checked");
152 InputDialog *fileDlg; 152 InputDialog *fileDlg;
153 153
154 fileDlg = new InputDialog( 0 ,tr("Name of screenshot "),TRUE, 0); 154 fileDlg = new InputDialog( 0 ,tr("Name of screenshot "),TRUE, 0);
155 fileDlg->exec(); 155 fileDlg->exec();
156 fileDlg->raise(); 156 fileDlg->raise();
157 QString fileName,list; 157 QString fileName,list;
158 if( fileDlg->result() == 1 ) { 158 if( fileDlg->result() == 1 ) {
159 fileName = fileDlg->LineEdit1->text(); 159 fileName = fileDlg->LineEdit1->text();
160 160
161 if(fileName.find("/",0,TRUE)==-1) 161 if(fileName.find("/",0,TRUE)==-1)
162 FileNamePath = QDir::homeDirPath()+"/Documents/image/png/"+fileName; 162 FileNamePath = QDir::homeDirPath()+"/Documents/image/png/"+fileName;
163// qDebug(fileName); 163// qDebug(fileName);
164 164
165 } 165 }
166 delete fileDlg; 166 delete fileDlg;
167 } 167 }
168 if ( delaySpin->value() ) { 168 if ( delaySpin->value() ) {
169 grabTimer->start( delaySpin->value() * 1000, true ); 169 grabTimer->start( delaySpin->value() * 1000, true );
170 } else { 170 } else {
171 show(); 171 show();
172 } 172 }
173} 173}
174 174
175void ScreenshotControl::slotScap() { 175void ScreenshotControl::slotScap() {
176 buttonPushed=2; 176 buttonPushed=2;
177 hide(); 177 hide();
178 if ( delaySpin->value() ) { 178 if ( delaySpin->value() ) {
179 grabTimer->start( delaySpin->value() * 1000, true ); 179 grabTimer->start( delaySpin->value() * 1000, true );
180 } else { 180 } else {
181 show(); 181 show();
182 } 182 }
183} 183}
184 184
185 185
186void ScreenshotControl::grabTimerDone() { 186void ScreenshotControl::grabTimerDone() {
187 performGrab(); 187 performGrab();
188} 188}
189 189
190void ScreenshotControl::savePixmap() { 190void ScreenshotControl::savePixmap() {
191 DocLnk lnk; 191 DocLnk lnk;
192 QString fileName; 192 QString fileName;
193 193
194 if( setFileName) { 194 if( setFileName) {
195 fileName=FileNamePath; 195 fileName=FileNamePath;
196//not sure why this is needed here, but it forgets fileName 196//not sure why this is needed here, but it forgets fileName
197 // if this is below the braces 197 // if this is below the braces
198 198
199 if(fileName.right(3)!="png") 199 if(fileName.right(3)!="png")
200 fileName=fileName+".png"; 200 fileName=fileName+".png";
201 lnk.setFile(fileName); //sets File property 201 lnk.setFile(fileName); //sets File property
202 qDebug("saving file "+fileName); 202 qDebug("saving file "+fileName);
203 snapshot.save( fileName,"PNG"); 203 snapshot.save( fileName,"PNG");
204 QFileInfo fi( fileName); 204 QFileInfo fi( fileName);
205 lnk.setName( fi.fileName()); //sets file name 205 lnk.setName( fi.fileName()); //sets file name
206 206
207 if(!lnk.writeLink()) 207 if(!lnk.writeLink())
208 qDebug("Writing doclink did not work"); 208 qDebug("Writing doclink did not work");
209 } else { 209 } else {
210 210
211 fileName = "sc_"+TimeString::dateString( QDateTime::currentDateTime(),false,true); 211 fileName = "sc_"+TimeString::dateString( QDateTime::currentDateTime(),false,true);
212 fileName.replace(QRegExp("'"),""); fileName.replace(QRegExp(" "),"_"); fileName.replace(QRegExp(":"),"."); fileName.replace(QRegExp(","),""); 212 fileName.replace(QRegExp("'"),""); fileName.replace(QRegExp(" "),"_"); fileName.replace(QRegExp(":"),"."); fileName.replace(QRegExp(","),"");
213 QString dirName = QDir::homeDirPath()+"/Documents/image/png/"; 213 QString dirName = QDir::homeDirPath()+"/Documents/image/png/";
214 214
215 if( !QDir( dirName).exists() ) { 215 if( !QDir( dirName).exists() ) {
216 qDebug("making dir "+dirName); 216 qDebug("making dir "+dirName);
217 QString msg = "mkdir -p "+dirName; 217 QString msg = "mkdir -p "+dirName;
218 system(msg.latin1()); 218 system(msg.latin1());
219 } 219 }
220 fileName=dirName+fileName; 220 fileName=dirName+fileName;
221 if(fileName.right(3)!="png") 221 if(fileName.right(3)!="png")
222 fileName=fileName+".png"; 222 fileName=fileName+".png";
223 lnk.setFile(fileName); //sets File property 223 lnk.setFile(fileName); //sets File property
224 qDebug("saving file "+fileName); 224 qDebug("saving file "+fileName);
225 snapshot.save( fileName,"PNG"); 225 snapshot.save( fileName,"PNG");
226 QFileInfo fi( fileName); 226 QFileInfo fi( fileName);
227 lnk.setName( fi.fileName()); //sets file name 227 lnk.setName( fi.fileName()); //sets file name
228 228
229 if(!lnk.writeLink()) 229 if(!lnk.writeLink())
230 qDebug("Writing doclink did not work"); 230 qDebug("Writing doclink did not work");
231 231
232 } 232 }
233 233
234 QPEApplication::beep(); 234 QPEApplication::beep();
235} 235}
236 236
237void ScreenshotControl::performGrab() { 237void ScreenshotControl::performGrab() {
238 238
239 if(buttonPushed ==1) { 239 if(buttonPushed ==1) {
240 qDebug("grabbing screen"); 240 qDebug("grabbing screen");
241 grabTimer->stop(); 241 grabTimer->stop();
242 snapshot = QPixmap::grabWindow( QPEApplication::desktop()->winId(),0,0,QApplication::desktop()->width(),QApplication::desktop()->height() ); 242 snapshot = QPixmap::grabWindow( QPEApplication::desktop()->winId(),0,0,QApplication::desktop()->width(),QApplication::desktop()->height() );
243 show(); 243 show();
244 qApp->processEvents(); 244 qApp->processEvents();
245 savePixmap(); 245 savePixmap();
246 } else { 246 } else {
247 qDebug("scap"); 247 qDebug("scap");
248 grabTimer->stop(); 248 grabTimer->stop();
249// do scap here 249// do scap here
250 QString cmd; 250 QString cmd;
251 cmd="cat /dev/fd0 > /tmp/cap"; 251 cmd="cat /dev/fd0 > /tmp/cap";
252 system(cmd.latin1()); 252 system(cmd.latin1());
253// qDebug("echo \"POST /scap/capture.cgi http1.1\" 253// qDebug("echo \"POST /scap/capture.cgi http1.1\"
254// echo \"Content-length: 153600\" 254// echo \"Content-length: 153600\"
255// echo \"Content-Type: image/gif\" 255// echo \"Content-Type: image/gif\"
256// echo \"HOST: www.handhelds.org\" 256// echo \"HOST: www.handhelds.org\"
257// echo \"\" 257// echo \"\"
258// cat /tmp/cap | nc h1.handhelds.org 80"); 258// cat /tmp/cap | nc h1.handhelds.org 80");
259 cmd="nc h1.handhelds.org 1011 </tmp/cap"; 259 cmd="nc h1.handhelds.org 1011 </tmp/cap";
260 qDebug("running command "+cmd); 260 qDebug("running command "+cmd);
261 261
262 system(cmd.latin1()); 262 system(cmd.latin1());
263 show(); 263 show();
264 } 264 }
265 265
266} 266}
267 267
268void ScreenshotControl::setTime(int newTime) { 268void ScreenshotControl::setTime(int newTime) {
269 delaySpin->setValue(newTime); 269 delaySpin->setValue(newTime);
270} 270}
271 271
272void ScreenshotControl::nameScreenshot(bool b) { 272void ScreenshotControl::nameScreenshot(bool b) {
273 273
274 274
275} 275}
276 276
277//=========================================================================== 277//===========================================================================
278 278
279ScreenshotApplet::ScreenshotApplet( QWidget *parent, const char *name ) 279ScreenshotApplet::ScreenshotApplet( QWidget *parent, const char *name )
280 : QWidget( parent, name ) { 280 : QWidget( parent, name ) {
281// qDebug("beginning applet"); 281// qDebug("beginning applet");
282 setFixedHeight( 18 ); 282 setFixedHeight( 18 );
283 setFixedWidth( 14 ); 283 setFixedWidth( 14 );
284 vc = new ScreenshotControl; 284 vc = new ScreenshotControl(this,"ScreenshotApplet");;
285// qDebug("new screenshotapplet"); 285// qDebug("new screenshotapplet");
286} 286}
287 287
288ScreenshotApplet::~ScreenshotApplet() { 288ScreenshotApplet::~ScreenshotApplet() {
289} 289}
290 290
291void ScreenshotApplet::mousePressEvent( QMouseEvent *) { 291void ScreenshotApplet::mousePressEvent( QMouseEvent *) {
292// if(!vc) 292// if(!vc)
293 vc = new ScreenshotControl; 293 vc = new ScreenshotControl;
294 QPoint curPos = mapToGlobal( rect().topLeft() ); 294 QPoint curPos = mapToGlobal( rect().topLeft() );
295 vc->move( curPos.x()-(vc->sizeHint().width()-width())/2, curPos.y() - 100 ); 295 vc->move( curPos.x()-(vc->sizeHint().width()-width())/2, curPos.y() - 100 );
296 vc->show(); 296 vc->show();
297 297
298} 298}
299 299
300void ScreenshotApplet::paintEvent( QPaintEvent* ) { 300void ScreenshotApplet::paintEvent( QPaintEvent* ) {
301 QPainter p(this); 301 QPainter p(this);
302 qDebug("paint pixmap"); 302 qDebug("paint pixmap");
303 p.drawPixmap( 0, 1, ( const char** ) snapshot_xpm ); 303 p.drawPixmap( 0, 1, ( const char** ) snapshot_xpm );
304 304
305} 305}
306 306