-rw-r--r-- | noncore/multimedia/showimg/ImageFileSelector.cpp | 14 | ||||
-rw-r--r-- | noncore/multimedia/showimg/showimg.cpp | 4 |
2 files changed, 9 insertions, 9 deletions
diff --git a/noncore/multimedia/showimg/ImageFileSelector.cpp b/noncore/multimedia/showimg/ImageFileSelector.cpp index 7872c09..d2b65a9 100644 --- a/noncore/multimedia/showimg/ImageFileSelector.cpp +++ b/noncore/multimedia/showimg/ImageFileSelector.cpp @@ -6,266 +6,266 @@ #include "qpe/applnk.h" #include "qpe/qpeapplication.h" #include <stdlib.h> #include <qdir.h> #include <qwidget.h> #include <qheader.h> #include <qimage.h> #include <qpixmap.h> #include <qlabel.h> #include <qfileinfo.h> #include <qpainter.h> #include <qscrollview.h> #include "ImageFileSelector.h" ThumbWidget::ThumbWidget(QPixmap p,QString text,const DocLnk& f,QWidget *parent,int w) : QWidget( parent ),fl(f) { setBackgroundMode(NoBackground); if ( w!=-1 ) setMinimumSize(w,p.height()+24); else setMinimumSize(p.width(),p.height()+24); description=new QLabel(text,this); description->setBackgroundColor(colorGroup().base()); description->setAlignment(AlignCenter); description->setGeometry(0,height()-24,width(),24); pixmap=p; } void ThumbWidget::resizeEvent(QResizeEvent *) { description->setGeometry(0,height()-24,width(),24); } void ThumbWidget::paintEvent( QPaintEvent *e ) { QPainter painter(this); painter.setClipRect(e->rect()); painter.fillRect(0,0,width(),height(),QColor(255,255,255)); painter.drawPixmap((width() - pixmap.width()) / 2,0, pixmap); } void ThumbWidget::mouseReleaseEvent(QMouseEvent* ) { emit clicked(fl); } ImageFileSelectorItem::ImageFileSelectorItem( QListView *parent, const DocLnk &f) : QListViewItem( parent ), fl( f ) { setText( 0, f.name() ); QFileInfo fi(f.file()); setText( 1, (fi.extension()).upper() ); setPixmap( 0, f.pixmap() ); } ImageFileSelectorItem::~ImageFileSelectorItem() { } ImageFileSelector::ImageFileSelector( CURRENT_VIEW scv,QWidget *parent,const char * ) : QWidgetStack(parent) { detailed=new QListView(this); detailed->addColumn (tr("Title")); detailed->addColumn (tr("Type")); detailed->setAllColumnsShowFocus( true ); tList.setAutoDelete(true); thumb =new QScrollView(this); thumb->setVScrollBarMode (QScrollView::Auto ); thumb->viewport()->setBackgroundColor(colorGroup().base()); background=new QWidget(0); background->setBackgroundColor(colorGroup().base()); thumb->addChild(background); gl = new QGridLayout(background,1,2,4,4); - connect( detailed, SIGNAL( mouseButtonClicked( int, QListViewItem *, const QPoint &, int ) ), - this, SLOT( fileClicked( int, QListViewItem *, const QPoint &, int ) ) ); - connect( detailed, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint &, int ) ), - this, SLOT( filePressed( int, QListViewItem *, const QPoint &, int ) ) ); - connect( detailed, SIGNAL( returnPressed( QListViewItem * ) ), - this, SLOT( fileClicked( QListViewItem * ) ) ); + connect( detailed, SIGNAL( mouseButtonClicked(int,QListViewItem*,const QPoint&,int) ), + this, SLOT( fileClicked(int,QListViewItem*,const QPoint&,int) ) ); + connect( detailed, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ), + this, SLOT( filePressed(int,QListViewItem*,const QPoint&,int) ) ); + connect( detailed, SIGNAL( returnPressed(QListViewItem*) ), + this, SLOT( fileClicked(QListViewItem*) ) ); cView=UNKNOWN; setView(scv); reread(); } ImageFileSelector::~ImageFileSelector() { } void ImageFileSelector::switchView() { CURRENT_VIEW v=cView; if ( v==DETAILED ) v=THUMBNAIL; else v=DETAILED; setView(v); } void ImageFileSelector::setView(CURRENT_VIEW v) { if ( v==cView ) return; cView=v; if ( cView!=DETAILED ) { raiseWidget(thumb); updateSizes(); } else { raiseWidget(detailed); updateSizes(); } } void ImageFileSelector::resizeEvent(QResizeEvent *) { updateSizes(); } void ImageFileSelector::updateSizes() { int ww=(detailed->width()-detailed->frameWidth()*2); double w=(double)ww*0.70; detailed->setColumnWidth(0,(int)w); detailed->setColumnWidth(1,ww-(int)w); background->setMinimumWidth(thumb->visibleWidth()); thumb->updateScrollBars(); } void ImageFileSelector::reread(bool) { // qDebug("reread"); ImageFileSelectorItem *item = (ImageFileSelectorItem *)detailed->selectedItem(); QString oldFile; if ( item ) oldFile = item->file().file(); detailed->clear(); tList.clear(); DocLnkSet files; Global::findDocuments(&files, "image/*"); count = files.children().count(); QListIterator<DocLnk> dit( files.children() ); // int y=0; // int x=4; // int totalHeight=4; ThumbWidget *l=0; int width=80; gl->expand(dit.count()/2,2); int i,j; i=j=0; detailed->setUpdatesEnabled(false); thumb->setUpdatesEnabled(false); for ( ; dit.current(); ++dit ) { item = new ImageFileSelectorItem( detailed, **dit ); if ( item->file().file() == oldFile ) detailed->setCurrentItem( item ); } QListViewItemIterator it( detailed ); ImageFileSelectorItem *ii; // iterate through all items of the listview for ( ; it.current(); ++it ) { ii=(ImageFileSelectorItem *)it.current(); QImage img( ii->file().file() ); if( !img.isNull()) { img=img.smoothScale(64,64); QPixmap pix; pix.convertFromImage(img); l=new ThumbWidget(pix,ii->file().name(),ii->file(),background,width); l->setBackgroundColor(colorGroup().base()); gl->addWidget(l,j,i); i++; if ( i==2 ) { i=0; j++; } tList.append(l); - connect(l,SIGNAL(clicked(const DocLnk &)),this,SLOT(thumbClicked(const DocLnk &))); + connect(l,SIGNAL(clicked(const DocLnk&)),this,SLOT(thumbClicked(const DocLnk&))); } } if ( !detailed->selectedItem() ) detailed->setCurrentItem( detailed->firstChild() ); detailed->setUpdatesEnabled(true); thumb->setUpdatesEnabled(true); detailed->update(); thumb->update(); } int ImageFileSelector::fileCount() { return count; } const DocLnk * ImageFileSelector::selected() { qDebug("image selected"); ImageFileSelectorItem *item = (ImageFileSelectorItem *) detailed->selectedItem(); if ( item ) return new DocLnk( item->file() ); return 0; } void ImageFileSelector::fileClicked( int button, QListViewItem *i, const QPoint &, int ) { if ( !i ) return; if ( button == Qt::LeftButton ) { fileClicked( i ); } } // pressed to get 'right down' void ImageFileSelector::filePressed( int, QListViewItem *, const QPoint &, int ) { } void ImageFileSelector::fileClicked( QListViewItem *i) { if ( !i ) return; emit fileSelected( ( (ImageFileSelectorItem*)i )->file() ); emit closeMe(); } void ImageFileSelector::thumbClicked(const DocLnk &f) { emit fileSelected( f ); emit closeMe(); } diff --git a/noncore/multimedia/showimg/showimg.cpp b/noncore/multimedia/showimg/showimg.cpp index ba76e57..02a1d91 100644 --- a/noncore/multimedia/showimg/showimg.cpp +++ b/noncore/multimedia/showimg/showimg.cpp @@ -215,194 +215,194 @@ ImageViewer::ImageViewer( QWidget *parent, const char *name, int wFlags ) : QMainWindow( parent, name, WResizeNoErase ), filename( 0 ), bFromDocView( FALSE ) { setCaption( tr("Image Viewer") ); setIcon( Resource::loadPixmap( "ImageViewer" ) ); Config cfg("Image Viewer"); cfg.setGroup("Image Viewer"); showThumbView=cfg.readBoolEntry("ShowThumbnails",false); isSized=cfg.readBoolEntry("SizeToScreen",true); isFullScreen = FALSE; setToolBarsMovable( FALSE ); toolBar = new QToolBar( this ); toolBar->setHorizontalStretchable( TRUE ); menuBar = new QMenuBar( toolBar ); current=menuBar; fileMenuFile = new QPopupMenu(this); //menuBarmenubarFile->insertItem( tr("File"), fileMenu ); fileMenuFile->insertItem(tr("Open"), this, SLOT(openFile()), 0); viewMenuFile = new QPopupMenu( this ); //menubarFile->insertItem( tr("View"), viewMenu ); viewMenuFile->insertItem( tr("Thumbnail View"), this, SLOT(switchThumbView()), 0, SHOW_THUMBNAILS ); viewMenuFile->setItemChecked ( SHOW_THUMBNAILS, showThumbView ); optionsMenuFile = new QPopupMenu( this); //menubarFile->insertItem( tr("Options"),optionsMenu ); slideAction = new QAction( tr( "Slide show" ), Resource::loadIconSet( "slideshow" ), QString::null, 0, this, 0 ); slideAction->setToggleAction( TRUE ); connect( slideAction, SIGNAL( toggled(bool) ), this, SLOT( slideShow(bool) ) ); slideAction->addTo( optionsMenuFile); // slideAction->addTo( toolBar ); // optionsMenuFile->insertItem( tr("Slideshow") ); optionsMenuFile->insertSeparator(); optionsMenuFile->insertItem( tr("Preferences.."), this, SLOT(settings()), 0); // optionsMenuFile->insertItem( tr("Help"), this, SLOT(help()), 0); QStrList fmt = QImage::outputFormats(); fileMenuView = new QPopupMenu( this ); //menubarView->insertItem( tr("File"),fileMenu ); fileMenuView->insertItem( tr("Image Info ..."),this, SLOT(displayInfoDialog()),0 ); fileMenuView->insertSeparator(); viewMenuView = new QPopupMenu(this ); viewMenuView->setCheckable ( true ); //menubarView->insertItem( tr("View"),viewMenu ); viewMenuView->insertItem(tr("Horizontal flip"), this, SLOT(hFlip()), 0); viewMenuView->insertItem(tr("Vertical flip"), this, SLOT(vFlip()), 0); stack = new QWidgetStack( this ); stack->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) ); setCentralWidget( stack ); imagePanel = new ImagePane( stack ); connect(imagePanel, SIGNAL(clicked()), this, SLOT(normalView())); ImageFileSelector::CURRENT_VIEW cv; if(showThumbView) cv=ImageFileSelector::THUMBNAIL; else cv=ImageFileSelector::DETAILED; qDebug("cv = %d",cv); fileSelector = new ImageFileSelector( cv,stack, "fs"); //switchThumbView(); //fileSelector = new ImageFileSelector("image/*", stack, "fs"); //fileSelector->setNewVisible(FALSE); //fileSelector->setCloseVisible(FALSE); connect( fileSelector, SIGNAL( closeMe() ), this, SLOT( closeFileSelector() ) ); - connect( fileSelector, SIGNAL( fileSelected( const DocLnk &) ), - this, SLOT( openFile( const DocLnk & ) ) ); + connect( fileSelector, SIGNAL( fileSelected(const DocLnk&) ), + this, SLOT( openFile(const DocLnk&) ) ); imageList = fileSelector->fileList(); slideAction->setEnabled( imageList.count() != 0); iconToolBar = new QToolBar(this); QAction *a; a = new QAction( tr( "Open ..." ), Resource::loadPixmap( "fileopen" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( open() ) ); a->addTo( fileMenuView); a->addTo( iconToolBar ); a = new QAction( tr( "Rotate 90"), Resource::loadPixmap( "rotate90" ), QString::null, 0, this, 0); connect( a, SIGNAL( activated() ), this, SLOT( rot90() ) ); a->addTo( iconToolBar ); a->addTo( viewMenuView ); a = new QAction( tr( "Rotate 180" ), Resource::loadPixmap( "repeat" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( rot180() ) ); a->addTo( iconToolBar ); a->addTo( viewMenuView ); a = new QAction( tr( "Rotate 270"), Resource::loadPixmap( "rotate270" ), QString::null, 0, this, 0); connect( a, SIGNAL( activated() ), this, SLOT( rot270() ) ); //a->addTo( iconToolBar ); a->addTo( viewMenuView ); viewMenuView->insertSeparator(); viewMenuView->insertItem(tr("Brightness ..."), this, SLOT(displayControlsDialog()), 0); viewMenuView->insertItem(tr("Black And White"), this, SLOT(blackAndWhite()), 0,BLACKANDWHITE); viewMenuView->insertSeparator(); sss = new QAction( tr( "Scale to Screen"), Resource::loadPixmap( "scale" ), QString::null, 0, this, 0,true); connect( sss, SIGNAL( activated() ), this, SLOT( switchSizeToScreen() ) ); sss->addTo( iconToolBar ); sss->addTo( viewMenuView ); sss->setOn(isSized); viewMenuView->insertSeparator(); a = new QAction( tr( "Fullscreen" ), Resource::loadPixmap( "fullscreen" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( fullScreen() ) ); a->addTo( iconToolBar ); a->addTo( viewMenuView); a = new QAction( tr( "Stop Slideshow" ), Resource::loadPixmap( "quit_icon" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( stopSlideShow() ) ); a->addTo( iconToolBar ); a->addTo( viewMenuView); Config config( "ImageViewer" ); config.setGroup( "SlideShow" ); slideDelay = config.readNumEntry( "Delay", 2); slideRepeat = config.readBoolEntry( "Repeat", FALSE ); slideReverse = config.readBoolEntry("Reverse", FALSE); config.setGroup("Default"); rotateOnLoad = config.readBoolEntry("Rotate", FALSE); fastLoad = config.readBoolEntry("FastLoad", TRUE); slideTimer = new QTimer( this ); connect( slideTimer, SIGNAL(timeout()), this, SLOT(slideUpdate()) ); switchToFileSelector(); setMouseTracking( TRUE ); } ImageViewer::~ImageViewer() { Config cfg("Image Viewer"); cfg.setGroup("Image Viewer"); cfg.writeEntry("ShowThumbnails",(int)showThumbView); cfg.writeEntry("SizeToScreen",(int)isSized); cfg.setGroup( "SlideShow" ); cfg.writeEntry( "Delay", slideDelay); cfg.writeEntry( "Repeat", slideRepeat ); cfg.writeEntry("Reverse", slideReverse); cfg.setGroup("Default"); cfg.writeEntry("Rotate", rotateOnLoad); cfg.writeEntry("FastLoad", fastLoad); |