summaryrefslogtreecommitdiff
path: root/core/applets/screenshotapplet/screenshot.cpp
Unidiff
Diffstat (limited to 'core/applets/screenshotapplet/screenshot.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/applets/screenshotapplet/screenshot.cpp27
1 files changed, 9 insertions, 18 deletions
diff --git a/core/applets/screenshotapplet/screenshot.cpp b/core/applets/screenshotapplet/screenshot.cpp
index 1d88aa5..4ea81c8 100644
--- a/core/applets/screenshotapplet/screenshot.cpp
+++ b/core/applets/screenshotapplet/screenshot.cpp
@@ -1,49 +1,49 @@
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"
17 16
18/* OPIE */ 17/* OPIE */
19#include <opie2/odebug.h> 18#include <opie2/odebug.h>
19#include <opie2/ofiledialog.h>
20#include <opie2/oresource.h>
20#include <opie2/otaskbarapplet.h> 21#include <opie2/otaskbarapplet.h>
22
21#include <qpe/qpeapplication.h> 23#include <qpe/qpeapplication.h>
22#include <qpe/applnk.h> 24#include <qpe/applnk.h>
23#include <qpe/qcopenvelope_qws.h> 25#include <qpe/qcopenvelope_qws.h>
24#include <qpe/resource.h>
25
26 26
27/* QT */ 27/* QT */
28#include <qlineedit.h> 28#include <qlineedit.h>
29#include <qdir.h> 29#include <qdir.h>
30#include <qlabel.h> 30#include <qlabel.h>
31#include <qpushbutton.h> 31#include <qpushbutton.h>
32#include <qpainter.h> 32#include <qpainter.h>
33#include <qspinbox.h> 33#include <qspinbox.h>
34#include <qlayout.h> 34#include <qlayout.h>
35#include <qcheckbox.h> 35#include <qcheckbox.h>
36#include <qmessagebox.h> 36#include <qmessagebox.h>
37 37
38/* STD */ 38/* STD */
39#include <stdlib.h> 39#include <stdlib.h>
40#include <sys/socket.h> 40#include <sys/socket.h>
41#include <netinet/in.h> 41#include <netinet/in.h>
42#include <netdb.h> 42#include <netdb.h>
43#include <unistd.h> 43#include <unistd.h>
44 44
45using namespace Opie::Core; 45using namespace Opie::Core;
46using namespace Opie::Ui; 46using namespace Opie::Ui;
47 47
48static const char *SCAP_hostname = "www.handhelds.org"; 48static const char *SCAP_hostname = "www.handhelds.org";
49static const int SCAP_port = 80; 49static const int SCAP_port = 80;
@@ -90,64 +90,55 @@ ScreenshotControl::ScreenshotControl( QWidget *parent, const char *name )
90 scapButton = new QPushButton( tr( "Scap" ), this, "ScapButton" ); 90 scapButton = new QPushButton( tr( "Scap" ), this, "ScapButton" );
91 scapButton ->setFocusPolicy( QWidget::TabFocus ); 91 scapButton ->setFocusPolicy( QWidget::TabFocus );
92 hbox-> addWidget ( scapButton ); 92 hbox-> addWidget ( scapButton );
93 93
94 setFixedSize ( sizeHint ( )); 94 setFixedSize ( sizeHint ( ));
95 setFocusPolicy ( QWidget::NoFocus ); 95 setFocusPolicy ( QWidget::NoFocus );
96 96
97 97
98 grabTimer = new QTimer ( this, "grab timer"); 98 grabTimer = new QTimer ( this, "grab timer");
99 99
100 connect ( grabTimer, SIGNAL( timeout()), this, SLOT( performGrab())); 100 connect ( grabTimer, SIGNAL( timeout()), this, SLOT( performGrab()));
101 connect ( grabItButton, SIGNAL( clicked()), SLOT( slotGrab())); 101 connect ( grabItButton, SIGNAL( clicked()), SLOT( slotGrab()));
102 connect ( scapButton, SIGNAL( clicked()), SLOT( slotScap())); 102 connect ( scapButton, SIGNAL( clicked()), SLOT( slotScap()));
103 connect ( drawPadButton, SIGNAL(clicked()), SLOT(slotDrawpad()) ); 103 connect ( drawPadButton, SIGNAL(clicked()), SLOT(slotDrawpad()) );
104} 104}
105 105
106void ScreenshotControl::slotGrab() 106void ScreenshotControl::slotGrab()
107{ 107{
108 buttonPushed = 1; 108 buttonPushed = 1;
109 hide(); 109 hide();
110 110
111 setFileName = FALSE; 111 setFileName = FALSE;
112 if ( saveNamedCheck->isChecked()) { 112 if ( saveNamedCheck->isChecked()) {
113 setFileName = TRUE; 113 setFileName = TRUE;
114 InputDialog *fileDlg;
115 114
116 fileDlg = new InputDialog( 0 , tr("Name of screenshot "), TRUE, 0); 115 MimeTypes types;
117 fileDlg->exec(); 116 QStringList list;
118 fileDlg->raise(); 117 list << "image/*";
119 QString fileName, list; 118 types. insert ( "Images", list );
120 if ( fileDlg->result() == 1 ) {
121 fileName = fileDlg->LineEdit1->text();
122 119
123 if (fileName.find("/", 0, TRUE) == -1) 120 FileNamePath = Opie::Ui::OFileDialog::getSaveFileName( 1,"/","", types, 0 );
124 FileNamePath = QDir::homeDirPath() + "/Documents/image/png/" + fileName;
125 else
126 FileNamePath = fileName;
127
128 }
129 delete fileDlg;
130 } 121 }
131 122
132 if ( delaySpin->value() ) 123 if ( delaySpin->value() )
133 grabTimer->start( delaySpin->value() * 1000, true ); 124 grabTimer->start( delaySpin->value() * 1000, true );
134 else 125 else
135 show(); 126 show();
136} 127}
137 128
138void ScreenshotControl::slotScap() 129void ScreenshotControl::slotScap()
139{ 130{
140 buttonPushed = 2; 131 buttonPushed = 2;
141 hide(); 132 hide();
142 133
143 if ( delaySpin->value() ) 134 if ( delaySpin->value() )
144 grabTimer->start( delaySpin->value() * 1000, true ); 135 grabTimer->start( delaySpin->value() * 1000, true );
145 else 136 else
146 show(); 137 show();
147} 138}
148 139
149void ScreenshotControl::slotDrawpad() 140void ScreenshotControl::slotDrawpad()
150{ 141{
151 buttonPushed = 3; 142 buttonPushed = 3;
152 hide(); 143 hide();
153 if ( delaySpin->value() ) 144 if ( delaySpin->value() )
@@ -283,49 +274,49 @@ void ScreenshotControl::performGrab()
283 ::close ( sock ); 274 ::close ( sock );
284 } 275 }
285 } 276 }
286 if ( ok ) { 277 if ( ok ) {
287 QMessageBox::information( 0, tr( "Success" ), QString( "<p>%1</p>" ).arg ( tr( "Screenshot was uploaded to %1" )).arg( SCAP_hostname )); 278 QMessageBox::information( 0, tr( "Success" ), QString( "<p>%1</p>" ).arg ( tr( "Screenshot was uploaded to %1" )).arg( SCAP_hostname ));
288 } else { 279 } else {
289 QMessageBox::warning( 0, tr( "Error" ), QString( "<p>%1</p>" ).arg( tr( "Connection to %1 failed." )).arg( SCAP_hostname )); 280 QMessageBox::warning( 0, tr( "Error" ), QString( "<p>%1</p>" ).arg( tr( "Connection to %1 failed." )).arg( SCAP_hostname ));
290 } 281 }
291 } else { 282 } else {
292 QMessageBox::warning( 0, tr( "Error" ),tr("Please set <b>QWS_DISPLAY</b> environmental variable.")); 283 QMessageBox::warning( 0, tr( "Error" ),tr("Please set <b>QWS_DISPLAY</b> environmental variable."));
293 } 284 }
294 } 285 }
295 286
296} 287}
297 288
298 289
299 290
300//=========================================================================== 291//===========================================================================
301 292
302ScreenshotApplet::ScreenshotApplet( QWidget *parent, const char *name ) 293ScreenshotApplet::ScreenshotApplet( QWidget *parent, const char *name )
303 : QWidget( parent, name ) 294 : QWidget( parent, name )
304{ 295{
305 setFixedHeight( AppLnk::smallIconSize() ); 296 setFixedHeight( AppLnk::smallIconSize() );
306 setFixedWidth( AppLnk::smallIconSize() ); 297 setFixedWidth( AppLnk::smallIconSize() );
307 m_icon.convertFromImage( Resource::loadImage( "screenshotapplet/screenshot" ).smoothScale( height(), width() ) ); 298 m_icon = Opie::Core::OResource::loadPixmap( "screenshotapplet/screenshot", Opie::Core::OResource::SmallIcon );
308} 299}
309 300
310ScreenshotApplet::~ScreenshotApplet() 301ScreenshotApplet::~ScreenshotApplet()
311{ 302{
312} 303}
313 304
314int ScreenshotApplet::position() 305int ScreenshotApplet::position()
315{ 306{
316 return 6; 307 return 6;
317} 308}
318 309
319void ScreenshotApplet::mousePressEvent( QMouseEvent *) 310void ScreenshotApplet::mousePressEvent( QMouseEvent *)
320{ 311{
321 ScreenshotControl *sc = new ScreenshotControl ( ); 312 ScreenshotControl *sc = new ScreenshotControl ( );
322 QPoint curPos = mapToGlobal ( QPoint ( 0, 0 )); 313 QPoint curPos = mapToGlobal ( QPoint ( 0, 0 ));
323 314
324 // windowPosX is the windows position centered above the applets icon. 315 // windowPosX is the windows position centered above the applets icon.
325 // If the icon is near the edge of the screen, the window would leave the visible area 316 // If the icon is near the edge of the screen, the window would leave the visible area
326 // so we check the position against the screen width and correct the difference if needed 317 // so we check the position against the screen width and correct the difference if needed
327 318
328 int screenWidth = qApp->desktop()->width(); 319 int screenWidth = qApp->desktop()->width();
329 int windowPosX = curPos. x ( ) - ( sc-> sizeHint ( ). width ( ) - width ( )) / 2 ; 320 int windowPosX = curPos. x ( ) - ( sc-> sizeHint ( ). width ( ) - width ( )) / 2 ;
330 int ZwindowPosX, XwindowPosX; 321 int ZwindowPosX, XwindowPosX;
331 322