Source Code (Use browser search to find items of interest.)

Class Index

kview'KView (./kdegraphics/kview/kview.h:24)

class KView : public QObject
{
	Q_OBJECT
public:
	/**
	* KView Constructor
	*/
	KView();

	/**
	* KView Destructor
	*/
	virtual ~KView();

	/**
	* Execute the application.
	*/
	virtual int exec();

	const QImage *currentSelection() const;

private slots:

	void help( const char *tag );

	void newViewer();
	void closeViewer( KImageViewer * );

	void setCutBuffer( QPixmap * );

	void updateAllAccels();

protected:
	/**
	* Create and initialize a new viewer widget and
	* return it.
	*/
	KImageViewer *makeViewer();

private:
	KApplication _app;

	void registerBuiltinFilters();

	KFilterList *_filters;

	KHelpIndex  *_helper;

	QList<KImageViewer> *_viewers;
	QPtrDict<KFiltMenuFactory> *_filtMenus;

	QPixmap *_cutBuffer;
};

kview'KView::KView() (./kdegraphics/kview/kview.cpp:25)

KView::KView()
	: QObject( 0 ),
	_app(),
	_filters( new KFilterList ),
	_helper( new KHelpIndex( "kview/kview.index" ) ),
	_viewers( new QList<KImageViewer> ),
	_filtMenus( new QPtrDict<KFiltMenuFactory> ),
	_cutBuffer( 0 )
{
	assert( _filters );

	_viewers->setAutoDelete( true );
	_filtMenus->setAutoDelete( true );

	kimgioRegister();

	registerBuiltinFilters();
}


kview'KView::~KView() (./kdegraphics/kview/kview.cpp:44)

KView::~KView()
{
   delete _viewers; _viewers = 0;
   delete _helper; _helper = 0;
   delete _filters; _filters = 0;
   delete _filtMenus; _filtMenus = 0;
}


kview'KView::exec() (./kdegraphics/kview/kview.cpp:52)

int KView::exec()
{
   if( _app.isRestored() ) 
   {
      // restore saved viewers
      for ( int i = 1; KTMainWindow::canBeRestored( i ); i++ ) 
      {
         makeViewer()->restore( i );
      }
   }
   else 
   {
      KImageViewer *viewer = makeViewer();
      viewer->show();

      // process arguments only if not restored
      KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
      for( int i = 0; i < args->count(); i++ ) 
      {
         viewer->appendURL( args->url(i), (i == 0)  );
      }
   }

   return _app.exec();
}


kview'KView::registerBuiltinFilters() (./kdegraphics/kview/kview.cpp:78)

void KView::registerBuiltinFilters()
{
	_filters->registerFilter( new BriteFilter, 
		KFilterList::AutoDelete );
	_filters->registerFilter( new GreyFilter, 
		KFilterList::AutoDelete );
	_filters->registerFilter( new SmoothFilter, 
		KFilterList::AutoDelete );
	_filters->registerFilter( new GammaFilter, 
		KFilterList::AutoDelete );
}



kview'KView::help() (./kdegraphics/kview/kview.cpp:91)

void KView::help( const char *tag )
{
	assert( _helper );
	_helper->invoke( tag );
}


kview'KView::newViewer() (./kdegraphics/kview/kview.cpp:97)

void KView::newViewer()
{
	KImageViewer *viewer = makeViewer();
	
	viewer->show();
}


kview'KView::makeViewer() (./kdegraphics/kview/kview.cpp:104)

KImageViewer *KView::makeViewer()
{
	KImageViewer *viewer = new KImageViewer;

	if( viewer == 0 )
		return 0;

	KFiltMenuFactory *menu = new KFiltMenuFactory( _filters );
	viewer->setFilterMenu( menu );

	_viewers->append( viewer );
	_filtMenus->insert( viewer, menu );

	connect( viewer, SIGNAL(wantHelp( const char *)),
		this, SLOT(help(const char *)) );
	connect( viewer, SIGNAL(wantNewViewer()),
		this, SLOT(newViewer()) );
	connect( viewer, SIGNAL(wantToDie(KImageViewer *)),
		this, SLOT(closeViewer(KImageViewer *)) );
	connect( viewer, SIGNAL(accelChanged()),
		this, SLOT( updateAllAccels()) );

	return viewer;
}


kview'KView::closeViewer() (./kdegraphics/kview/kview.cpp:129)

void KView::closeViewer( KImageViewer *viewer )
{
	assert( viewer != 0 );

	_filtMenus->remove( viewer );
	_viewers->remove( viewer );

	if( _viewers->count() == 0 ) {
		kapp->quit();
	}
}


kview'KView::setCutBuffer() (./kdegraphics/kview/kview.cpp:141)

void KView::setCutBuffer( QPixmap * )
{
	if( _cutBuffer ) {
		delete _cutBuffer; _cutBuffer = 0;
	}
	
}


kview'KView::updateAllAccels() (./kdegraphics/kview/kview.cpp:149)

void KView::updateAllAccels()
{
	QListIterator<KImageViewer> iter( *_viewers );

	for( ; iter.current(); ++iter ) {
		iter.current()->updateAccel();
	}
}