KSnapshots: fixed remaining issues related to PR #50.

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>

KSnapshot: remove stray slot

This was erroneously introduced in PR #50.

Signed-off-by: Mavridis Philippe <mavridisf@gmail.com>
pull/52/head
Michele Calgaro 1 year ago
parent db379a2f50
commit 3bac83b229
Signed by: MicheleC
GPG Key ID: 2A75B7CA8ADED5CF

@ -77,12 +77,12 @@ KSnapshot::KSnapshot(TQWidget *parent, const char *name, bool grabCurrent)
mainWidget = new KSnapshotWidget( vbox, "mainWidget" ); mainWidget = new KSnapshotWidget( vbox, "mainWidget" );
connect(mainWidget, TQT_SIGNAL(startImageDrag()), TQT_SLOT(slotDragSnapshot())); connect(mainWidget, TQT_SIGNAL(startImageDrag()), TQT_SLOT(slotDragSnapshot()));
connect(mainWidget, TQT_SIGNAL(newClicked()), TQT_SLOT(slotGrab()));
connect( mainWidget, TQT_SIGNAL( newClicked() ), TQT_SLOT( slotGrab() ) ); connect(mainWidget, TQT_SIGNAL(saveClicked()), TQT_SLOT(slotSaveAs()));
connect( mainWidget, TQT_SIGNAL( saveClicked() ), TQT_SLOT( slotSaveAs() ) ); connect(mainWidget, TQT_SIGNAL(printClicked()), TQT_SLOT(slotPrint()));
connect( mainWidget, TQT_SIGNAL( printClicked() ), TQT_SLOT( slotPrint() ) ); connect(mainWidget, TQT_SIGNAL(copyClicked()), TQT_SLOT(slotCopy()));
connect( mainWidget, TQT_SIGNAL( copyClicked() ), TQT_SLOT( slotCopy() ) ); connect(mainWidget, TQT_SIGNAL(openWithKPClicked()), TQT_SLOT(slotOpenWithKP()));
connect( mainWidget, TQT_SIGNAL( openWithKPClicked() ), TQT_SLOT( slotOpenWithKP() ) ); connect(tqApp, TQT_SIGNAL(aboutToQuit()), TQT_SLOT(slotAboutToQuit()));
grabber->show(); grabber->show();
grabber->grabMouse( waitCursor ); grabber->grabMouse( waitCursor );
@ -394,12 +394,10 @@ void KSnapshot::slotOpenWithKP() {
} }
} }
static KTempFile *tmpFile = nullptr;
void KSnapshot::openWithExternalApp(const KService &service) { void KSnapshot::openWithExternalApp(const KService &service) {
// Write snapshot to temporary file // Write snapshot to temporary file
bool ok = false; bool ok = false;
tmpFile = new KTempFile; KTempFile *tmpFile = new KTempFile;
if (tmpFile->status() == 0) { if (tmpFile->status() == 0) {
if (snapshot.save(tmpFile->file(), "PNG")) { if (snapshot.save(tmpFile->file(), "PNG")) {
if (tmpFile->close()) { if (tmpFile->close()) {
@ -409,9 +407,9 @@ void KSnapshot::openWithExternalApp(const KService &service) {
} }
if (!ok) { if (!ok) {
KMessageBox::error(this, i18n("KSnapshot was unable to create " KMessageBox::error(this, i18n("KSnapshot was unable to create temporary file."),
"temporary file."),
i18n("Unable to save image")); i18n("Unable to save image"));
delete tmpFile;
return; return;
} }
@ -423,33 +421,55 @@ void KSnapshot::openWithExternalApp(const KService &service) {
TDEProcess *externalApp = new TDEProcess; TDEProcess *externalApp = new TDEProcess;
*externalApp << args; *externalApp << args;
connect(externalApp, SIGNAL(processExited(TDEProcess*)), connect(externalApp, SIGNAL(processExited(TDEProcess*)),
this, SLOT(slotExternalAppClosed())); this, SLOT(slotExternalAppClosed(TDEProcess*)));
if (!externalApp->start(TDEProcess::OwnGroup)) { if (!externalApp->start(TDEProcess::OwnGroup)) {
KMessageBox::error(this, i18n("Cannot start %1!").arg(service.name())); KMessageBox::error(this, i18n("Cannot start %1!").arg(service.name()));
delete tmpFile;
return; return;
} }
m_tmpFiles[externalApp] = tmpFile;
} }
void KSnapshot::slotExternalAppClosed() { void KSnapshot::slotExternalAppClosed(TDEProcess *process)
snapshot.load(tmpFile->name()); {
updatePreview(); if (process && m_tmpFiles.contains(process))
tmpFile->unlink(); {
delete tmpFile; KTempFile *tmpFile = m_tmpFiles[process];
tmpFile = nullptr; 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 ) void KSnapshot::closeEvent( TQCloseEvent * e )
{ {
TDEConfig *conf=TDEGlobal::config(); e->accept();
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();
} }
bool KSnapshot::eventFilter( TQObject* o, TQEvent* e) bool KSnapshot::eventFilter( TQObject* o, TQEvent* e)

@ -5,6 +5,7 @@
#include <tqbitmap.h> #include <tqbitmap.h>
#include <tqcursor.h> #include <tqcursor.h>
#include <tqlabel.h> #include <tqlabel.h>
#include <tqmap.h>
#include <tqpainter.h> #include <tqpainter.h>
#include <tqpixmap.h> #include <tqpixmap.h>
#include <tqstyle.h> #include <tqstyle.h>
@ -18,6 +19,8 @@
class RegionGrabber; class RegionGrabber;
class KSnapshotWidget; class KSnapshotWidget;
class KTempFile;
class TDEProcess;
class KSnapshotPreview : public TQLabel class KSnapshotPreview : public TQLabel
{ {
@ -101,6 +104,7 @@ public:
TQString url() const { return filename.url(); } TQString url() const { return filename.url(); }
protected slots: protected slots:
void slotAboutToQuit();
void slotGrab(); void slotGrab();
void slotSave(); void slotSave();
void slotSaveAs(); void slotSaveAs();
@ -108,7 +112,7 @@ protected slots:
void slotPrint(); void slotPrint();
void slotOpenWith(int id); void slotOpenWith(int id);
void slotOpenWithKP(); void slotOpenWithKP();
void slotExternalAppClosed(); void slotExternalAppClosed(TDEProcess *process);
void slotMovePointer( int x, int y ); void slotMovePointer( int x, int y );
void setTime(int newTime); void setTime(int newTime);
@ -148,6 +152,7 @@ private:
RegionGrabber *rgnGrab; RegionGrabber *rgnGrab;
bool modified; bool modified;
TDETrader::OfferList openWithOffers; TDETrader::OfferList openWithOffers;
TQMap<TDEProcess*, KTempFile*> m_tmpFiles;
}; };
#endif // KSNAPSHOT_H #endif // KSNAPSHOT_H

@ -323,12 +323,6 @@ If &lt;i&gt;no delay&lt;/i&gt; is set, the program will wait for a mouse click b
<receiver>KSnapshotWidget</receiver> <receiver>KSnapshotWidget</receiver>
<slot>slotOpenWithKPClicked()</slot> <slot>slotOpenWithKPClicked()</slot>
</connection> </connection>
<connection>
<sender>btnOpenWith</sender>
<signal>clicked()</signal>
<receiver>KSnapshotWidget</receiver>
<slot>slotOpenWithClicked()</slot>
</connection>
<connection> <connection>
<sender>btnSave</sender> <sender>btnSave</sender>
<signal>clicked()</signal> <signal>clicked()</signal>

Loading…
Cancel
Save