[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdegraphics/ksnapshot
From:       Pau Garcia i Quiles <pgquiles () elpauer ! org>
Date:       2010-10-25 0:42:20
Message-ID: 20101025004220.0D42FAC897 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1189400 by pgquiles:

CCMAIL:rich@kde.org

 M  +1 -0      CMakeLists.txt  
 A             freeregiongrabber.cpp   [License: LGPL (v2)]
 A             freeregiongrabber.h   [License: LGPL (v2)]
 M  +27 -0     ksnapshot.cpp  
 M  +1 -0      ksnapshot.h  
 M  +1 -0      ksnapshot_options.h  
 M  +1 -0      ksnapshotobject.cpp  
 M  +3 -1      ksnapshotobject.h  
 M  +7 -2      ksnapshotwidget.ui  
 M  +5 -1      main.cpp  


--- trunk/KDE/kdegraphics/ksnapshot/CMakeLists.txt #1189399:1189400
@@ -13,6 +13,7 @@
 set(ksnapshot_file_SRCS
    expblur.cpp
 	regiongrabber.cpp
+        freeregiongrabber.cpp
 	snapshottimer.cpp
 	windowgrabber.cpp
 	ksnapshotobject.cpp
--- trunk/KDE/kdegraphics/ksnapshot/ksnapshot.cpp #1189399:1189400
@@ -60,6 +60,7 @@
 #include <qdebug.h>
 
 #include "regiongrabber.h"
+#include "freeregiongrabber.h"
 #include "windowgrabber.h"
 #include "ksnapshotpreview.h"
 #include "ui_ksnapshotwidget.h"
@@ -201,6 +202,11 @@
                     grabRegion();
                     break;
                 }
+            case KSnapshotObject::FreeRegion:
+            {
+                 grabFreeRegion();
+                 break;
+            }
             default:
                 break;
         }
@@ -345,6 +351,9 @@
     if (mode() == Region) {
         grabRegion();
     }
+    else if ( mode() == FreeRegion ) {
+        grabFreeRegion();
+    }
     else {
         grabber->show();
         grabber->grabMouse(Qt::CrossCursor);
@@ -473,7 +482,14 @@
     updateCaption();
   }
 
+  if( mode() == KSnapshotObject::Region )
+  {
   rgnGrab->deleteLater();
+  }
+  else if( mode() == KSnapshotObject::FreeRegion ) {
+    freeRgnGrab->deleteLater();
+  }
+
   QApplication::restoreOverrideCursor();
   show();
 }
@@ -541,11 +557,22 @@
 
 }
 
+void KSnapshot::grabFreeRegion()
+{
+   freeRgnGrab = new FreeRegionGrabber();
+   connect( freeRgnGrab, SIGNAL( freeRegionGrabbed( const QPixmap & ) ),
+                     SLOT( slotRegionGrabbed( const QPixmap & ) ) );
+
+}
+
 void KSnapshot::grabTimerDone()
 {
     if ( mode() == Region ) {
         grabRegion();
     }
+    else if ( mode() == FreeRegion ) {
+        grabFreeRegion();
+    }
     else {
         performGrab();
     }
--- trunk/KDE/kdegraphics/ksnapshot/ksnapshot.h #1189399:1189400
@@ -127,6 +127,7 @@
     void performGrab();
     void grabPointerImage(int offsetx, int offsety);
     void grabRegion();
+    void grabFreeRegion();
 
     SnapshotTimer grabTimer;
     QTimer updateTimer;
--- trunk/KDE/kdegraphics/ksnapshot/ksnapshot_options.h #1189399:1189400
@@ -30,6 +30,7 @@
   options.add("current", ki18n("Captures the window under the mouse on startup \
(instead of the desktop)"));  options.add("fullscreen", ki18n("Captures the \
desktop"));  options.add("region", ki18n("Captures a region"));
+  options.add("freeregion", ki18n("Captures a free region (not rectangular)"));
   options.add("child", ki18n("Captures a part of windows"));
   return options;
 }
--- trunk/KDE/kdegraphics/ksnapshot/ksnapshotobject.cpp #1189399:1189400
@@ -6,6 +6,7 @@
  *  Copyright (C) 2004 Bernd Brandstetter <bbrand@freenet.de>
  *  Copyright (C) 2006-2008 Urs Wolfer <uwolfer @ kde.org>
  *  Copyright (C) 2007 Montel Laurent <montel@kde.org>
+ *  Copyright (C) 2010 Pau Garcia i Quiles <pgquiles@elpauer.org>
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU Lesser General Public License as published by
--- trunk/KDE/kdegraphics/ksnapshot/ksnapshotobject.h #1189399:1189400
@@ -30,12 +30,13 @@
 #include <QPixmap>
 class QWidget;
 class RegionGrabber;
+class FreeRegionGrabber;
 class QString;
 
 class KSnapshotObject
 {
 public:
-    enum CaptureMode { FullScreen=0, WindowUnderCursor=1, Region=2, ChildWindow=3, \
CurrentScreen=4 }; +    enum CaptureMode { FullScreen=0, WindowUnderCursor=1, \
Region=2, FreeRegion=3, ChildWindow=4, CurrentScreen=5 };  KSnapshotObject();
      virtual ~KSnapshotObject();
 
@@ -52,6 +53,7 @@
 
      KUrl filename;
      RegionGrabber *rgnGrab;
+     FreeRegionGrabber *freeRgnGrab;
      QWidget* grabber;
      QPixmap snapshot;
      QString title;
--- trunk/KDE/kdegraphics/ksnapshot/ksnapshotwidget.ui #1189399:1189400
@@ -6,7 +6,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>428</width>
+    <width>436</width>
     <height>374</height>
    </rect>
   </property>
@@ -131,6 +131,11 @@
        </item>
        <item>
         <property name="text">
+         <string>Free Region</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
          <string>Section of Window</string>
         </property>
        </item>
@@ -179,7 +184,7 @@
         <string>No delay</string>
        </property>
        <property name="suffix">
-        <string> </string>
+        <string/>
        </property>
       </widget>
      </item>
--- trunk/KDE/kdegraphics/ksnapshot/main.cpp #1189399:1189400
@@ -29,7 +29,7 @@
 #include "ksnapshot.h"
 #include "ksnapshot_options.h"
 
-#define KSNAPVERSION "0.8.1"
+#define KSNAPVERSION "0.8.2"
 
 static const char description[] = I18N_NOOP("KDE Screenshot Utility");
 
@@ -45,6 +45,8 @@
       "nhasan@kde.org" );
   aboutData.addCredit( ki18n("Marcus Hufgard"), ki18n("\"Open With\" function"),
       "Marcus.Hufgard@hufgard.de" );
+  aboutData.addCredit( ki18n("Pau Garcia i Quiles"), ki18n("Free region grabbing"),
+      "pgquiles@elpauer.org" );
 
   KCmdLineArgs::init( argc, argv, &aboutData );
   KCmdLineArgs::addCmdLineOptions( ksnapshot_options() ); // Add our own options.
@@ -68,6 +70,8 @@
   }
   else if(args->isSet( "region" ))
      toplevel = new KSnapshot( 0, KSnapshotObject::Region );
+  else if(args->isSet( "freeregion" ))
+     toplevel = new KSnapshot( 0, KSnapshotObject::FreeRegion );
   else if(args->isSet( "child" ))
      toplevel = new KSnapshot( 0, KSnapshotObject::ChildWindow );
   else


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic