From cc7125330e8c797b22d8f9fc450357a59e7e1be3 Mon Sep 17 00:00:00 2001 From: mickeyl Date: Thu, 25 Dec 2003 22:15:35 +0000 Subject: Make that (theoretically) work with resolutions other than 320x240 and 240x320. --- (limited to 'core/applets') diff --git a/core/applets/screenshotapplet/screenshot.cpp b/core/applets/screenshotapplet/screenshot.cpp index f2cc2c5..7e2fdf0 100644 --- a/core/applets/screenshotapplet/screenshot.cpp +++ b/core/applets/screenshotapplet/screenshot.cpp @@ -400,7 +400,7 @@ void ScreenshotControl::savePixmap() void ScreenshotControl::performGrab() { - snapshot = QPixmap::grabWindow( QPEApplication::desktop()->winId(), 0, 0, QApplication::desktop()->width(), QApplication::desktop()->height() ); + snapshot = QPixmap::grabWindow( QPEApplication::desktop()->winId(), 0, 0, QApplication::desktop()->width(), QApplication::desktop()->height() ); if (buttonPushed == 1) { qDebug("grabbing screen"); @@ -428,34 +428,23 @@ void ScreenshotControl::performGrab() if ( ::connect ( sock, (struct sockaddr *) & raddr, sizeof (struct sockaddr)) >= 0 ) { QString header; + QPixmap pix = ( snapshot.width() > snapshot.height() ) ? snapshot : snapshot.xForm( QWMatrix().rotate(90) ); + QImage img = pix.convertToImage().convertDepth( 16 ); // could make that also depth independent, if hh.org/scap can handle it + header = "POST /scap/capture.cgi?%1+%2 HTTP/1.1\n" // 1: model / 2: user - "Content-length: 153600\n" + "Content-length: %3\n" // 3: content length "Content-Type: image/gif\n" - "Host: %4\n" // 3: scap host + "Host: %4\n" // 4: scap host "\n"; - header = header. arg ( "" ). arg ( ::getenv ( "USER" )). arg ( SCAP_hostname ); - - QPixmap pix; + header = header.arg( "" ).arg( ::getenv ( "USER" ) ).arg( img.numBytes() ).arg( SCAP_hostname ); - if ( snapshot. width ( ) == 320 && snapshot. height ( ) == 240 ) - { - pix = snapshot; - } - else if ( snapshot. width ( ) == 240 && snapshot. height ( ) == 320 ) + if ( !pix.isNull() ) { - pix = snapshot. xForm ( QWMatrix ( ). rotate ( 90 )); - } - - if ( !pix. isNull ( )) - { - const char *ascii = header. latin1 ( ); - uint ascii_len = ::strlen ( ascii ); - + const char *ascii = header.latin1( ); + uint ascii_len = ::strlen( ascii ); ::write ( sock, ascii, ascii_len ); - - QImage img = pix. convertToImage ( ). convertDepth ( 16 ); - ::write ( sock, img. bits ( ), img.numBytes ( )); + ::write ( sock, img.bits(), img.numBytes() ); ok = true; } @@ -464,9 +453,9 @@ void ScreenshotControl::performGrab() } } if ( ok ) - QMessageBox::information ( 0, tr( "Success" ), QString ( "

%1

" ). arg ( tr( "Screenshot was uploaded to %1" )). arg ( SCAP_hostname )); + QMessageBox::information( 0, tr( "Success" ), QString( "

%1

" ).arg ( tr( "Screenshot was uploaded to %1" )).arg( SCAP_hostname )); else - QMessageBox::warning ( 0, tr( "Error" ), QString ( "

%1

" ). arg ( tr( "Connection to %1 failed." )). arg ( SCAP_hostname )); + QMessageBox::warning( 0, tr( "Error" ), QString( "

%1

" ).arg( tr( "Connection to %1 failed." )).arg( SCAP_hostname )); } } @@ -479,7 +468,7 @@ ScreenshotApplet::ScreenshotApplet( QWidget *parent, const char *name ) : QWidget( parent, name ) { setFixedWidth( AppLnk::smallIconSize()); - + QImage img = (const char **)snapshot_xpm; img = img.smoothScale(AppLnk::smallIconSize(), AppLnk::smallIconSize()); m_icon.convertFromImage(img); -- cgit v0.9.0.2