You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdegraphics/kooka/thumbview.h

154 lines
4.2 KiB

/***************************************************************************
thumbview.h - Class to display thumbnailed images
-------------------
begin : Tue Apr 18 2002
copyright : (C) 2002 by Klaas Freitag
email : freitag@suse.de
$Id$
***************************************************************************/
/***************************************************************************
* *
* 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 COPYING included in the *
* packaging of this file. *
*
* As a special exception, permission is given to link this program *
* with any version of the KADMOS ocr/icr engine of reRecognition GmbH, *
* Kreuzlingen and distribute the resulting executable without *
* including the source code for KADMOS in the source distribution. *
*
* As a special exception, permission is given to link this program *
* with any edition of Qt, and distribute the resulting executable, *
* without including the source code for Qt in the source distribution. *
* *
***************************************************************************/
#ifndef __THUMBVIEW_H__
#define __THUMBVIEW_H__
#include <tqwidget.h>
#include <tqimage.h>
#include <tqpixmap.h>
#include <tqcolor.h>
#include <tqvbox.h>
#include <kiconview.h>
#include <kurl.h>
#include <kio/previewjob.h>
#include <kfileitem.h>
#include <kfileiconview.h>
/* KConfig group definitions */
#define MARGIN_COLOR1 "MarginColor1"
#define MARGIN_COLOR2 "MarginColor2"
#define PIXMAP_WIDTH "pixmapWidth"
#define PIXMAP_HEIGHT "pixmapHeight"
#define THUMB_MARGIN "thumbnailMargin"
#define THUMB_GROUP "thumbnailView"
#define BG_WALLPAPER "BackGroundTile"
#define STD_TILE_IMG "kooka/pics/thumbviewtile.png"
class TQPixmap;
class TQListViewItem;
class KProgress;
class KIO::PreviewJob;
class ThumbView: public TQVBox /* KIconView */
{
Q_OBJECT
public:
ThumbView( TQWidget *parent, const char *name=0 );
~ThumbView();
void setCurrentDir( const KURL& s)
{ m_currentDir = s; }
KURL currentDir( ) const
{ return m_currentDir; }
TQSize tumbSize( ) const
{
return( TQSize( m_pixWidth, m_pixHeight ));
}
int thumbMargin() const
{
return m_thumbMargin;
}
public slots:
void slSetThumbSize( int w, int h )
{
m_pixWidth = w;
m_pixHeight = h;
}
void slSetThumbSize( const TQSize& s )
{
m_pixWidth = s.width();
m_pixHeight = s.height();
}
void slSetThumbMargin( int m )
{
m_thumbMargin = m;
}
void slNewFileItems( const KFileItemList& );
void slGotPreview( const KFileItem*, const TQPixmap& );
void slPreviewResult( KIO::Job* );
/**
* This connects to the IconView's executed signal and tells the packager
* to select the image
*/
void slDoubleClicked( TQIconViewItem* );
/**
* indication that a image changed, needs to be reloaded.
*/
void slImageChanged( KFileItem * );
void slImageDeleted( KFileItem * );
void slSetBackGround( );
void slCheckForUpdate( KFileItem* );
bool readSettings();
void clear();
void slImageRenamed( KFileItem*, const KURL& );
protected:
void saveConfig();
signals:
/**
* selects a TQListViewItem from the thumbnail. This signal only makes
* sense if connected to a ScanPackager.
*/
void selectFromThumbnail( const KURL& );
private:
TQPixmap createPixmap( const TQPixmap& ) const;
bool deleteImage( KFileItem* );
KIconView *m_iconView;
KProgress *m_progress;
KURL m_currentDir;
TQPixmap m_basePix;
int m_pixWidth;
int m_pixHeight;
int m_thumbMargin;
TQColor m_marginColor1;
TQColor m_marginColor2;
TQString m_bgImg;
int m_cntJobsStarted;
KIO::PreviewJob *m_job;
KFileItemList m_pendingJobs;
};
#endif