diff options
Diffstat (limited to 'ksnapshot')
-rw-r--r-- | ksnapshot/CMakeL10n.txt | 6 | ||||
-rw-r--r-- | ksnapshot/CMakeLists.txt | 2 | ||||
-rw-r--r-- | ksnapshot/ksnapshot.cpp | 195 | ||||
-rw-r--r-- | ksnapshot/ksnapshot.desktop | 83 | ||||
-rw-r--r-- | ksnapshot/ksnapshot.h | 27 | ||||
-rw-r--r-- | ksnapshot/ksnapshotiface.h | 5 | ||||
-rw-r--r-- | ksnapshot/ksnapshotwidget.ui | 44 | ||||
-rw-r--r-- | ksnapshot/ksnapshotwidget.ui.h | 11 | ||||
-rw-r--r-- | ksnapshot/regiongrabber.cpp | 8 | ||||
-rw-r--r-- | ksnapshot/regiongrabber.h | 2 | ||||
-rw-r--r-- | ksnapshot/windowgrabber.cpp | 4 | ||||
-rw-r--r-- | ksnapshot/windowgrabber.h | 2 |
12 files changed, 240 insertions, 149 deletions
diff --git a/ksnapshot/CMakeL10n.txt b/ksnapshot/CMakeL10n.txt index d472e741..6e40132a 100644 --- a/ksnapshot/CMakeL10n.txt +++ b/ksnapshot/CMakeL10n.txt @@ -1,3 +1,9 @@ ##### create translation templates ############## tde_l10n_create_template( "ksnapshot" ) + +tde_l10n_create_template( + CATALOG "desktop_files/ksnapshot.desktop/" + SOURCES ksnapshot.desktop + DESTINATION "${CMAKE_SOURCE_DIR}/translations" +) diff --git a/ksnapshot/CMakeLists.txt b/ksnapshot/CMakeLists.txt index a9b0fcdd..93fc591b 100644 --- a/ksnapshot/CMakeLists.txt +++ b/ksnapshot/CMakeLists.txt @@ -31,7 +31,7 @@ link_directories( ##### other data ################################ tde_install_icons( ksnapshot ) -install( FILES ksnapshot.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} ) +tde_create_translated_desktop( ksnapshot.desktop ) ##### ksnapshot (executable) #################### diff --git a/ksnapshot/ksnapshot.cpp b/ksnapshot/ksnapshot.cpp index ad5df57c..0743de97 100644 --- a/ksnapshot/ksnapshot.cpp +++ b/ksnapshot/ksnapshot.cpp @@ -6,6 +6,7 @@ * (c) Aaron J. Seigo 2002 * (c) Nadeem Hasan 2003 * (c) Bernd Brandstetter 2004 + * (c) Emanoil Kotsev 2023 * * Released under the LGPL see file LICENSE for details. */ @@ -35,6 +36,9 @@ #include <tdepopupmenu.h> #include <kpushbutton.h> #include <tdestartupinfo.h> +#include <kiconloader.h> +#include <kprocess.h> +#include <krun.h> #include <tqcursor.h> #include <tqregexp.h> @@ -72,12 +76,13 @@ KSnapshot::KSnapshot(TQWidget *parent, const char *name, bool grabCurrent) TQVBox *vbox = makeVBoxMainWidget(); mainWidget = new KSnapshotWidget( vbox, "mainWidget" ); - connect(mainWidget, TQT_SIGNAL(startImageDrag()), TQT_SLOT(slotDragSnapshot())); - - connect( mainWidget, TQT_SIGNAL( newClicked() ), TQT_SLOT( slotGrab() ) ); - connect( mainWidget, TQT_SIGNAL( saveClicked() ), TQT_SLOT( slotSaveAs() ) ); - connect( mainWidget, TQT_SIGNAL( printClicked() ), TQT_SLOT( slotPrint() ) ); - connect( mainWidget, TQT_SIGNAL( copyClicked() ), TQT_SLOT( slotCopy() ) ); + connect(mainWidget, TQ_SIGNAL(startImageDrag()), TQ_SLOT(slotDragSnapshot())); + connect(mainWidget, TQ_SIGNAL(newClicked()), TQ_SLOT(slotGrab())); + connect(mainWidget, TQ_SIGNAL(saveClicked()), TQ_SLOT(slotSaveAs())); + connect(mainWidget, TQ_SIGNAL(printClicked()), TQ_SLOT(slotPrint())); + connect(mainWidget, TQ_SIGNAL(copyClicked()), TQ_SLOT(slotCopy())); + connect(mainWidget, TQ_SIGNAL(openWithKPClicked()), TQ_SLOT(slotOpenWithKP())); + connect(tqApp, TQ_SIGNAL(aboutToQuit()), TQ_SLOT(slotAboutToQuit())); grabber->show(); grabber->grabMouse( waitCursor ); @@ -106,39 +111,59 @@ KSnapshot::KSnapshot(TQWidget *parent, const char *name, bool grabCurrent) autoincFilename(); } - connect( &grabTimer, TQT_SIGNAL( timeout() ), TQT_TQOBJECT(this), TQT_SLOT( grabTimerDone() ) ); - connect( &updateTimer, TQT_SIGNAL( timeout() ), TQT_TQOBJECT(this), TQT_SLOT( updatePreview() ) ); - TQTimer::singleShot( 0, TQT_TQOBJECT(this), TQT_SLOT( updateCaption() ) ); + connect( &grabTimer, TQ_SIGNAL( timeout() ), this, TQ_SLOT( grabTimerDone() ) ); + connect( &updateTimer, TQ_SIGNAL( timeout() ), this, TQ_SLOT( updatePreview() ) ); + TQTimer::singleShot( 0, this, TQ_SLOT( updateCaption() ) ); KHelpMenu *helpMenu = new KHelpMenu(this, TDEGlobal::instance()->aboutData(), false); TQPushButton *helpButton = actionButton( Help ); helpButton->setPopup(helpMenu->menu()); + // Populate Open With... menu + TDEPopupMenu *popupOpenWith = new TDEPopupMenu(this); + openWithOffers = TDETrader::self()->query("image/png", "Type == 'Application'"); + int i = 0; + for (TDETrader::OfferList::Iterator it = openWithOffers.begin(); it != openWithOffers.end(); ++it) + { + popupOpenWith->insertItem(SmallIcon((*it)->icon()), (*it)->name(), i); + ++i; // we need menu ids to match with OfferList indexes + } + mainWidget->btnOpenWith->setPopup(popupOpenWith); + connect(popupOpenWith, TQ_SIGNAL(activated(int)), this, TQ_SLOT(slotOpenWith(int))); + + // Check for KolourPaint availability + KService::Ptr kpaint = KService::serviceByDesktopName("kolourpaint"); + if (!kpaint) { + mainWidget->btnOpenWithKP->hide(); + } + TDEAccel* accel = new TDEAccel(this); - accel->insert(TDEStdAccel::Quit, TQT_TQOBJECT(kapp), TQT_SLOT(quit())); + accel->insert(TDEStdAccel::Quit, kapp, TQ_SLOT(quit())); accel->insert( "QuickSave", i18n("Quick Save Snapshot &As..."), i18n("Save the snapshot to the file specified by the user without showing the file dialog."), - CTRL+SHIFT+Key_S, TQT_TQOBJECT(this), TQT_SLOT(slotSave())); - accel->insert(TDEStdAccel::Save, TQT_TQOBJECT(this), TQT_SLOT(slotSaveAs())); -// accel->insert(TDEShortcut(CTRL+Key_A), TQT_TQOBJECT(this), TQT_SLOT(slotSaveAs())); + CTRL+SHIFT+Key_S, this, TQ_SLOT(slotSave())); + accel->insert(TDEStdAccel::Save, this, TQ_SLOT(slotSaveAs())); +// accel->insert(TDEShortcut(CTRL+Key_A), this, TQ_SLOT(slotSaveAs())); accel->insert( "SaveAs", i18n("Save Snapshot &As..."), i18n("Save the snapshot to the file specified by the user."), - CTRL+Key_A, TQT_TQOBJECT(this), TQT_SLOT(slotSaveAs())); - accel->insert(TDEStdAccel::Print, TQT_TQOBJECT(this), TQT_SLOT(slotPrint())); - accel->insert(TDEStdAccel::New, TQT_TQOBJECT(this), TQT_SLOT(slotGrab())); - accel->insert(TDEStdAccel::Copy, TQT_TQOBJECT(this), TQT_SLOT(slotCopy())); + CTRL+Key_A, this, TQ_SLOT(slotSaveAs())); + accel->insert(TDEStdAccel::Print, this, TQ_SLOT(slotPrint())); + accel->insert(TDEStdAccel::New, this, TQ_SLOT(slotGrab())); + accel->insert(TDEStdAccel::Copy, this, TQ_SLOT(slotCopy())); - accel->insert( "Quit2", Key_Q, TQT_TQOBJECT(this), TQT_SLOT(slotSave())); - accel->insert( "Save2", Key_S, TQT_TQOBJECT(this), TQT_SLOT(slotSaveAs())); - accel->insert( "Print2", Key_P, TQT_TQOBJECT(this), TQT_SLOT(slotPrint())); - accel->insert( "New2", Key_N, TQT_TQOBJECT(this), TQT_SLOT(slotGrab())); - accel->insert( "New3", Key_Space, TQT_TQOBJECT(this), TQT_SLOT(slotGrab())); + accel->insert( "Quit2", Key_Q, this, TQ_SLOT(slotSave())); + accel->insert( "Save2", Key_S, this, TQ_SLOT(slotSaveAs())); + accel->insert( "Print2", Key_P, this, TQ_SLOT(slotPrint())); + accel->insert( "New2", Key_N, this, TQ_SLOT(slotGrab())); + accel->insert( "New3", Key_Space, this, TQ_SLOT(slotGrab())); setEscapeButton( User1 ); - connect( this, TQT_SIGNAL( user1Clicked() ), TQT_SLOT( reject() ) ); + connect( this, TQ_SIGNAL( user1Clicked() ), TQ_SLOT( reject() ) ); mainWidget->btnNew->setFocus(); + + oldWinPos = pos(); } KSnapshot::~KSnapshot() @@ -254,15 +279,16 @@ void KSnapshot::slotDragSnapshot() void KSnapshot::slotGrab() { + oldWinPos = pos(); hide(); - if ( mainWidget->delay() && mainWidget->mode() != Region ) + if ( mainWidget->delay() ) grabTimer.start( mainWidget->delay() * 1000, true ); else { if ( mainWidget->mode() == Region ) { rgnGrab = new RegionGrabber(); - connect( rgnGrab, TQT_SIGNAL( regionGrabbed( const TQPixmap & ) ), - TQT_SLOT( slotRegionGrabbed( const TQPixmap & ) ) ); + connect( rgnGrab, TQ_SIGNAL( regionGrabbed( const TQPixmap & ) ), + TQ_SLOT( slotRegionGrabbed( const TQPixmap & ) ) ); } else { grabber->show(); @@ -312,7 +338,7 @@ void KSnapshot::slotPrint() neww = newh/h*w; } - img = img.smoothScale( int(neww), int(newh), TQ_ScaleMin ); + img = img.smoothScale( int(neww), int(newh), TQImage::ScaleMin ); tqApp->processEvents(); int x = (metrics.width()-img.width())/2; @@ -342,6 +368,7 @@ void KSnapshot::slotRegionGrabbed( const TQPixmap &pix ) delete rgnGrab; TQApplication::restoreOverrideCursor(); + move(oldWinPos); show(); } @@ -356,29 +383,107 @@ void KSnapshot::slotWindowGrabbed( const TQPixmap &pix ) } TQApplication::restoreOverrideCursor(); + move(oldWinPos); show(); } +void KSnapshot::slotOpenWith(int id) +{ + openWithExternalApp(*openWithOffers[id]); +} + +void KSnapshot::slotOpenWithKP() { + KService::Ptr kpaint = KService::serviceByDesktopName("kolourpaint"); + if (kpaint) { + openWithExternalApp(*kpaint); + } +} + +void KSnapshot::openWithExternalApp(const KService &service) { + // Write snapshot to temporary file + bool ok = false; + KTempFile *tmpFile = new KTempFile; + if (tmpFile->status() == 0) { + if (snapshot.save(tmpFile->file(), "PNG")) { + if (tmpFile->close()) { + ok = true; + } + } + } + + if (!ok) { + KMessageBox::error(this, i18n("KSnapshot was unable to create temporary file."), + i18n("Unable to save image")); + delete tmpFile; + return; + } + + // Launch application + KURL::List list; + list.append(tmpFile->name()); + TQStringList args = KRun::processDesktopExec(service, list, false, false); + + TDEProcess *externalApp = new TDEProcess; + *externalApp << args; + connect(externalApp, TQ_SIGNAL(processExited(TDEProcess*)), + this, TQ_SLOT(slotExternalAppClosed(TDEProcess*))); + + if (!externalApp->start(TDEProcess::OwnGroup)) { + KMessageBox::error(this, i18n("Cannot start %1!").arg(service.name())); + delete tmpFile; + return; + } + + m_tmpFiles[externalApp] = tmpFile; +} + +void KSnapshot::slotExternalAppClosed(TDEProcess *process) +{ + if (process && m_tmpFiles.contains(process)) + { + KTempFile *tmpFile = m_tmpFiles[process]; + if (tmpFile) + { + snapshot.load(tmpFile->name()); + updatePreview(); + tmpFile->unlink(); + delete tmpFile; + } + m_tmpFiles.remove(process); + } +} + +void KSnapshot::slotAboutToQuit() +{ + for (KTempFile *tmpFile : m_tmpFiles) + { + tmpFile->unlink(); + delete tmpFile; + } + m_tmpFiles.clear(); + + TDEConfig *conf=TDEGlobal::config(); + conf->setGroup("GENERAL"); + conf->writeEntry("delay",mainWidget->delay()); + conf->writeEntry("mode",mainWidget->mode()); + conf->writeEntry("includeDecorations",mainWidget->includeDecorations()); + KURL url = filename; + url.setPass( TQString() ); + conf->writePathEntry("filename",url.url()); +} + void KSnapshot::closeEvent( TQCloseEvent * e ) { - TDEConfig *conf=TDEGlobal::config(); - conf->setGroup("GENERAL"); - conf->writeEntry("delay",mainWidget->delay()); - conf->writeEntry("mode",mainWidget->mode()); - conf->writeEntry("includeDecorations",mainWidget->includeDecorations()); - KURL url = filename; - url.setPass( TQString() ); - conf->writePathEntry("filename",url.url()); - e->accept(); + e->accept(); } bool KSnapshot::eventFilter( TQObject* o, TQEvent* e) { - if ( TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(grabber) && e->type() == TQEvent::MouseButtonPress ) { + if ( o == grabber && e->type() == TQEvent::MouseButtonPress ) { TQMouseEvent* me = (TQMouseEvent*) e; if ( TQWidget::mouseGrabber() != grabber ) return false; - if ( me->button() == Qt::LeftButton ) + if ( me->button() == TQt::LeftButton ) performGrab(); } return false; @@ -430,8 +535,8 @@ void KSnapshot::grabTimerDone() { if ( mainWidget->mode() == Region ) { rgnGrab = new RegionGrabber(); - connect( rgnGrab, TQT_SIGNAL( regionGrabbed( const TQPixmap & ) ), - TQT_SLOT( slotRegionGrabbed( const TQPixmap & ) ) ); + connect( rgnGrab, TQ_SIGNAL( regionGrabbed( const TQPixmap & ) ), + TQ_SLOT( slotRegionGrabbed( const TQPixmap & ) ) ); } else { performGrab(); @@ -446,8 +551,8 @@ void KSnapshot::performGrab() grabTimer.stop(); if ( mainWidget->mode() == ChildWindow ) { WindowGrabber wndGrab; - connect( &wndGrab, TQT_SIGNAL( windowGrabbed( const TQPixmap & ) ), - TQT_SLOT( slotWindowGrabbed( const TQPixmap & ) ) ); + connect( &wndGrab, TQ_SIGNAL( windowGrabbed( const TQPixmap & ) ), + TQ_SLOT( slotWindowGrabbed( const TQPixmap & ) ) ); wndGrab.exec(); } else if ( mainWidget->mode() == WindowUnderCursor ) { @@ -460,6 +565,7 @@ void KSnapshot::performGrab() TQApplication::restoreOverrideCursor(); modified = true; updateCaption(); + move(oldWinPos); show(); } @@ -483,6 +589,11 @@ void KSnapshot::setURL( const TQString &url ) updateCaption(); } +void KSnapshot::setPixmap(const TQPixmap &newImage) { + snapshot = newImage; + updatePreview(); +} + void KSnapshot::setGrabMode( int m ) { mainWidget->setMode( m ); diff --git a/ksnapshot/ksnapshot.desktop b/ksnapshot/ksnapshot.desktop index ccb90035..d5d33676 100644 --- a/ksnapshot/ksnapshot.desktop +++ b/ksnapshot/ksnapshot.desktop @@ -1,89 +1,10 @@ [Desktop Entry] GenericName=Screen Capture Program -GenericName[af]=Skerm Vang Program -GenericName[ar]=برنامج تصوير الشاشة -GenericName[bg]=Снимки на екрана -GenericName[bs]=Program za "hvatanje" slike -GenericName[ca]=Programa de captura de pantalla -GenericName[cs]=Snímač obrazovky -GenericName[cy]=Rhaglen Cipio'r Sgrîn -GenericName[da]=Program til øjebliksbilleder -GenericName[de]=Bildschirmphotos -GenericName[el]=Πρόγραμμα σύλληψης οθόνης -GenericName[eo]=Ekranfota programo -GenericName[es]=Capturador de pantalla -GenericName[et]=Töölaua pildistamine -GenericName[eu]=Pantailari argazkiak ateratzeko programa -GenericName[fa]=برنامۀ گیراندازی پرده -GenericName[fi]=Ruudunkaappausohjelma -GenericName[fr]=Logiciel de capture d'écran -GenericName[ga]=Clár gabhála scáileáin -GenericName[gl]=Progama para facer capturas de pantalla -GenericName[he]=תוכנית לצילום המסך -GenericName[hi]=स्क्रीन केप्चर प्रोग्राम -GenericName[hr]=Program za snimanje zaslona -GenericName[hu]=Képlopó -GenericName[is]=Forrit sem grípur skjámyndir -GenericName[it]=Scatta foto allo schermo -GenericName[ja]=スクリーンキャプチャプログラム -GenericName[kk]=Экраннан түсіріп алу бағдарламасы -GenericName[km]=កម្មវិធីចាប់យកអេក្រង់ -GenericName[lt]=Ekrano kopijos programa -GenericName[lv]=Ekrāna Sagrābšanas Programma -GenericName[ms]=Program Cekupan Skrin -GenericName[mt]=Programm biex tieħu "ritratt" tal-iskrin -GenericName[nb]=Skjermdumpprogram -GenericName[nds]=Schirmfotos opnehmen -GenericName[ne]=पर्दा समात्ने कार्यक्रम -GenericName[nl]=Schermafdrukprogramma -GenericName[nn]=Program for skjermbilete -GenericName[nso]=Lenaneo lago Apesa Pontsho -GenericName[pl]=Program do zrzutów ekranu -GenericName[pt]=Programa de Captura do Ecrã -GenericName[pt_BR]=Programa de Captura de Tela -GenericName[ro]=Program de captură de ecran -GenericName[ru]=Создание снимков экрана -GenericName[rw]=Porogaramu Gufata Mugaragaza -GenericName[se]=Šearbmagovvenprográmma -GenericName[sk]=Zachytenie obrazovky -GenericName[sl]=Program za zajem zaslona -GenericName[sr]=Програм за снимање екрана -GenericName[sr@Latn]=Program za snimanje ekrana -GenericName[sv]=Ta en skärmdump -GenericName[ta]=திரை கைப்பற்றும் நிரலி -GenericName[tg]=Эҷоди суратҳои экран -GenericName[th]=โปรแกรมจับภาพหน้าจอ -GenericName[tr]=Ekran Yakalama Programı -GenericName[uk]=Захоплювач екрана -GenericName[uz]=Skrinshot olish dasturi -GenericName[uz@cyrillic]=Скриншот олиш дастури -GenericName[ven]=Mbekanya mushumo ino gavha tshikirini -GenericName[wa]=Programe po fé des waitroûlêyes -GenericName[xh]=Iinkcazelo Ezigcina Ikhusi -GenericName[zh_CN]=屏幕截图程序 -GenericName[zh_HK]=螢幕擷取程式 -GenericName[zh_TW]=畫面擷取程式 -GenericName[zu]=Iprogremu Yokubamba Isikrini + Name=KSnapshot -Name[af]=K-kiekie -Name[cy]=KCipluniau -Name[eo]=Ekranfotilo -Name[fr]=KSnapShot -Name[hi]=के-स्नेपशॉट -Name[lv]=KSnapšots -Name[ne]=केडीई स्न्यापसट -Name[pl]=Zrzuty ekranu -Name[sv]=Ksnapshot -Name[ta]=கேதிரையை நகலெடுத்தல் -Name[th]=จับภาพ - K -Name[ven]=Tshinepe tsha K -Name[wa]=KWaitroûlêye -Name[zh_TW]=KSnapshot 快照 -Name[zu]=KEsincane isithombe -MimeType= + Exec=ksnapshot -caption "%c" %i %m Icon=ksnapshot -Path= Type=Application Terminal=false X-DocPath=ksnapshot/index.html diff --git a/ksnapshot/ksnapshot.h b/ksnapshot/ksnapshot.h index 5db7c0e6..47cbe47e 100644 --- a/ksnapshot/ksnapshot.h +++ b/ksnapshot/ksnapshot.h @@ -1,5 +1,3 @@ -// -*- c++ -*- - #ifndef KSNAPSHOT_H #define KSNAPSHOT_H #include "ksnapshotiface.h" @@ -7,6 +5,7 @@ #include <tqbitmap.h> #include <tqcursor.h> #include <tqlabel.h> +#include <tqmap.h> #include <tqpainter.h> #include <tqpixmap.h> #include <tqstyle.h> @@ -16,14 +15,16 @@ #include <tdeglobalsettings.h> #include <kdialogbase.h> #include <kurl.h> +#include <ktrader.h> class RegionGrabber; class KSnapshotWidget; +class KTempFile; +class TDEProcess; class KSnapshotPreview : public TQLabel { - Q_OBJECT - + TQ_OBJECT public: KSnapshotPreview(TQWidget *parent, const char *name = 0) @@ -44,14 +45,14 @@ class KSnapshotPreview : public TQLabel { TQPainter p(&mask); - style().tqdrawPrimitive(TQStyle::PE_SizeGrip, &p, TQRect(0, 0, 15, 15), palette().active()); + style().drawPrimitive(TQStyle::PE_SizeGrip, &p, TQRect(0, 0, 15, 15), palette().active()); p.end(); handle.setMask(mask); } { TQPainter p(&handle); - style().tqdrawPrimitive(TQStyle::PE_SizeGrip, &p, TQRect(0, 0, 15, 15), palette().active()); + style().drawPrimitive(TQStyle::PE_SizeGrip, &p, TQRect(0, 0, 15, 15), palette().active()); p.end(); } @@ -91,8 +92,7 @@ class KSnapshotPreview : public TQLabel class KSnapshot : public KDialogBase, virtual public KSnapshotIface { - Q_OBJECT - + TQ_OBJECT public: KSnapshot(TQWidget *parent= 0, const char *name= 0, bool grabCurrent=false); @@ -104,16 +104,21 @@ public: TQString url() const { return filename.url(); } protected slots: + void slotAboutToQuit(); void slotGrab(); void slotSave(); void slotSaveAs(); void slotCopy(); void slotPrint(); + void slotOpenWith(int id); + void slotOpenWithKP(); + void slotExternalAppClosed(TDEProcess *process); void slotMovePointer( int x, int y ); void setTime(int newTime); void setURL(const TQString &newURL); void setGrabMode( int m ); + void setPixmap(const TQPixmap &newImage); void exit(); protected: @@ -122,7 +127,7 @@ protected: virtual void closeEvent( TQCloseEvent * e ); void resizeEvent(TQResizeEvent*); bool eventFilter( TQObject*, TQEvent* ); - + private slots: void grabTimerDone(); void slotDragSnapshot(); @@ -133,6 +138,7 @@ private slots: private: bool save( const KURL& url ); + void openWithExternalApp(const KService &service); void performGrab(); void autoincFilename(); int grabMode(); @@ -146,6 +152,9 @@ private: KSnapshotWidget *mainWidget; RegionGrabber *rgnGrab; bool modified; + TDETrader::OfferList openWithOffers; + TQMap<TDEProcess*, KTempFile*> m_tmpFiles; + TQPoint oldWinPos; }; #endif // KSNAPSHOT_H diff --git a/ksnapshot/ksnapshotiface.h b/ksnapshot/ksnapshotiface.h index 5136b0ba..e8ac5158 100644 --- a/ksnapshot/ksnapshotiface.h +++ b/ksnapshot/ksnapshotiface.h @@ -12,6 +12,7 @@ #define __KS_IFACE_H #include <dcopobject.h> +#include <tqpixmap.h> class KSnapshotIface : virtual public DCOPObject { @@ -60,6 +61,10 @@ class KSnapshotIface : virtual public DCOPObject /** Exit KSnapshot **/ virtual void exit() = 0; + + /** Set image, for applications which want to make use of KSnapshot's UI + and interface with their own images */ + virtual void setPixmap(const TQPixmap &newImage) = 0; }; #endif diff --git a/ksnapshot/ksnapshotwidget.ui b/ksnapshot/ksnapshotwidget.ui index 245d433b..71385f90 100644 --- a/ksnapshot/ksnapshotwidget.ui +++ b/ksnapshot/ksnapshotwidget.ui @@ -242,6 +242,34 @@ If <i>no delay</i> is set, the program will wait for a mouse click b <string>Click this button to print the current screenshot.</string> </property> </widget> + <widget class="KPushButton"> + <property name="name"> + <cstring>btnOpenWithKP</cstring> + </property> + <property name="text"> + <string>Open in &KolourPaint</string> + </property> + <property name="whatsThis" stdset="0"> + <string>Click this button to edit the snapshot in KolourPaint.</string> + </property> + <property name="iconSet"> + <iconset>"kolourpaint"</iconset> + </property> + </widget> + <widget class="KPushButton"> + <property name="name"> + <cstring>btnOpenWith</cstring> + </property> + <property name="text"> + <string>Open &with...</string> + </property> + <property name="iconSet"> + <iconset>"document-open"</iconset> + </property> + <property name="whatsThis" stdset="0"> + <string>Click this button to open the snapshot in another application.</string> + </property> + </widget> </vbox> </widget> </grid> @@ -290,6 +318,12 @@ If <i>no delay</i> is set, the program will wait for a mouse click b <slot>slotPrintClicked()</slot> </connection> <connection> + <sender>btnOpenWithKP</sender> + <signal>clicked()</signal> + <receiver>KSnapshotWidget</receiver> + <slot>slotOpenWithKPClicked()</slot> + </connection> + <connection> <sender>btnSave</sender> <signal>clicked()</signal> <receiver>KSnapshotWidget</receiver> @@ -323,23 +357,25 @@ If <i>no delay</i> is set, the program will wait for a mouse click b <include location="global" impldecl="in implementation">tdeglobalsettings.h</include> <include location="local" impldecl="in implementation">ksnapshotwidget.ui.h</include> </includes> -<Q_SIGNALS> +<signals> <signal>newClicked()</signal> <signal>saveClicked()</signal> <signal>copyClicked()</signal> <signal>printClicked()</signal> + <signal>openWithKPClicked()</signal> <signal>startImageDrag()</signal> -</Q_SIGNALS> -<Q_SLOTS> +</signals> +<slots> <slot access="protected" specifier="non virtual">slotModeChanged( int mode )</slot> <slot access="protected" specifier="non virtual">slotNewClicked()</slot> <slot access="protected" specifier="non virtual">slotSaveClicked()</slot> <slot access="protected" specifier="non virtual">slotCopyClicked()</slot> <slot access="protected" specifier="non virtual">slotPrintClicked()</slot> <slot access="protected" specifier="non virtual">slotStartDrag()</slot> + <slot access="protected" specifier="non virtual">slotOpenWithKPClicked()</slot> <slot specifier="non virtual" returnType="int">previewWidth()</slot> <slot specifier="non virtual" returnType="int">previewHeight()</slot> -</Q_SLOTS> +</slots> <functions> <function specifier="non virtual">setPreview( const TQPixmap & pm )</function> <function specifier="non virtual">setDelay( int i )</function> diff --git a/ksnapshot/ksnapshotwidget.ui.h b/ksnapshot/ksnapshotwidget.ui.h index 921accc9..c84f65ca 100644 --- a/ksnapshot/ksnapshotwidget.ui.h +++ b/ksnapshot/ksnapshotwidget.ui.h @@ -27,8 +27,6 @@ void KSnapshotWidget::slotModeChanged( int mode ) default: break; } - - spinDelay->setEnabled(mode != 2); } @@ -39,10 +37,10 @@ void KSnapshotWidget::setPreview( const TQPixmap &pm ) if ( r1 * previewWidth() < previewHeight() ) img = img.smoothScale( previewWidth(), int( previewWidth() * r1 ), - TQ_ScaleMin ); + TQImage::ScaleMin ); else img = img.smoothScale( ( int ) ( ( ( double )previewHeight() ) / r1 ), - previewHeight(), TQ_ScaleMin ); + previewHeight(), TQImage::ScaleMin ); TQToolTip::remove( lblImage ); TQToolTip::add( lblImage, @@ -136,3 +134,8 @@ void KSnapshotWidget::slotCopyClicked() { emit copyClicked(); } + +void KSnapshotWidget::slotOpenWithKPClicked() +{ + emit openWithKPClicked(); +} diff --git a/ksnapshot/regiongrabber.cpp b/ksnapshot/regiongrabber.cpp index 2c4d4a2b..a562fdcc 100644 --- a/ksnapshot/regiongrabber.cpp +++ b/ksnapshot/regiongrabber.cpp @@ -74,9 +74,9 @@ RegionGrabber::RegionGrabber() sizeTip = new SizeTip( ( TQWidget * )0L ); tipTimer = new TQTimer( this ); - connect( tipTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( updateSizeTip() ) ); + connect( tipTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( updateSizeTip() ) ); - TQTimer::singleShot( 200, this, TQT_SLOT( initGrabber() ) ); + TQTimer::singleShot( 200, this, TQ_SLOT( initGrabber() ) ); } RegionGrabber::~RegionGrabber() @@ -104,7 +104,7 @@ void RegionGrabber::initGrabber() void RegionGrabber::mousePressEvent( TQMouseEvent *e ) { - if ( e->button() == Qt::LeftButton ) + if ( e->button() == TQt::LeftButton ) { mouseDown = true; grabRect = TQRect( e->pos(), e->pos() ); @@ -168,7 +168,7 @@ void RegionGrabber::drawRubber() p.setPen( TQPen( color0, 1 ) ); p.setBrush( NoBrush ); - style().tqdrawPrimitive( TQStyle::PE_FocusRect, &p, grabRect, colorGroup(), + style().drawPrimitive( TQStyle::PE_FocusRect, &p, grabRect, colorGroup(), TQStyle::Style_Default, TQStyleOption( colorGroup().base() ) ); p.end(); diff --git a/ksnapshot/regiongrabber.h b/ksnapshot/regiongrabber.h index 24c65d70..0495bf5a 100644 --- a/ksnapshot/regiongrabber.h +++ b/ksnapshot/regiongrabber.h @@ -37,7 +37,7 @@ class SizeTip : public TQLabel class RegionGrabber : public TQWidget { - Q_OBJECT + TQ_OBJECT public: diff --git a/ksnapshot/windowgrabber.cpp b/ksnapshot/windowgrabber.cpp index eac0fa6e..70fbabdc 100644 --- a/ksnapshot/windowgrabber.cpp +++ b/ksnapshot/windowgrabber.cpp @@ -240,7 +240,7 @@ TQPixmap WindowGrabber::grabCurrent( bool includeDecorations ) void WindowGrabber::mousePressEvent( TQMouseEvent *e ) { - if ( e->button() == Qt::RightButton ) + if ( e->button() == TQt::RightButton ) yPos = e->globalY(); else { TQPixmap pm; @@ -258,7 +258,7 @@ void WindowGrabber::mousePressEvent( TQMouseEvent *e ) void WindowGrabber::mouseReleaseEvent( TQMouseEvent *e ) { - if ( e->button() == Qt::RightButton ) + if ( e->button() == TQt::RightButton ) yPos = -1; } diff --git a/ksnapshot/windowgrabber.h b/ksnapshot/windowgrabber.h index cf2c186a..eb771d8d 100644 --- a/ksnapshot/windowgrabber.h +++ b/ksnapshot/windowgrabber.h @@ -28,7 +28,7 @@ class WindowGrabber : public TQDialog { - Q_OBJECT + TQ_OBJECT public: |