author | llornkcor <llornkcor> | 2003-06-15 00:12:38 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2003-06-15 00:12:38 (UTC) |
commit | 7feda6ad0e05602d0a939f9867f296f62ae758cd (patch) (side-by-side diff) | |
tree | 8240dd754d2e1dd4a72b5cddc11f37d44a680b6a | |
parent | ceaa4586c271b04f312109d6b1dd1be8be6e3afd (diff) | |
download | opie-7feda6ad0e05602d0a939f9867f296f62ae758cd.zip opie-7feda6ad0e05602d0a939f9867f296f62ae758cd.tar.gz opie-7feda6ad0e05602d0a939f9867f296f62ae758cd.tar.bz2 |
fix
-rw-r--r-- | core/applets/screenshotapplet/screenshot.cpp | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/core/applets/screenshotapplet/screenshot.cpp b/core/applets/screenshotapplet/screenshot.cpp index fab4044..b987392 100644 --- a/core/applets/screenshotapplet/screenshot.cpp +++ b/core/applets/screenshotapplet/screenshot.cpp @@ -1,116 +1,100 @@ /********************************************************************** ** 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" -#include <qapplication.h> #include <stdlib.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <unistd.h> -#include <qpe/resource.h> #include <qpe/qpeapplication.h> -#include <qpe/timestring.h> -#include <qpe/resource.h> -#include <qpe/config.h> #include <qpe/applnk.h> -#include <qpe/config.h> #include <qlineedit.h> #include <qdir.h> -#include <qfileinfo.h> #include <qlabel.h> #include <qpushbutton.h> #include <qpainter.h> -#include <qcombobox.h> #include <qspinbox.h> -#include <qslider.h> #include <qlayout.h> -#include <qframe.h> -#include <qpixmap.h> -#include <qregexp.h> -#include <qstring.h> -#include <qfile.h> -#include <qtimer.h> -#include <qfile.h> -#include <qdatastream.h> #include <qcheckbox.h> #include <qmessagebox.h> +#include <qimage.h> static char * snapshot_xpm[] = { "16 16 10 1", " c None", ". c #000000", "+ c #00C000", "@ c #585858", "# c #808080", "$ c #00FF00", "% c #008000", "& c #00FFFF", "* c #FF0000", "= c #FFC0C0", " ", " ... ", " ..+++..@#. ", " .$++++++.#. ", " .%$$++++++. ", " .&%%$$++@***. ", " .$&$++$=**@+. ", " .+$$+++@*$%%. ", " .+++++%+++%%. ", " .%%++++..+%%. ", " ..%%+++++%%. ", " ..%%+++%%. ", " ..%%+%%. ", " ..%%.. ", " .. ", " "}; 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 ); @@ -140,129 +124,129 @@ void ScreenshotControl::slotGrab() 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); 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 = "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); 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"); } QPEApplication::beep(); } void ScreenshotControl::performGrab() { 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(); struct sockaddr_in raddr; struct hostent *rhost_info; int sock = -1; bool ok = false; 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 ) { QString header; header = "POST /scap/capture.cgi?%1+%2 HTTP/1.1\n" // 1: model / 2: user "Content-length: 153600\n" "Content-Type: image/gif\n" "Host: %4\n" // 3: scap host "\n"; |