summaryrefslogtreecommitdiff
path: root/noncore/multimedia
authormickeyl <mickeyl>2003-10-27 20:26:56 (UTC)
committer mickeyl <mickeyl>2003-10-27 20:26:56 (UTC)
commit1fed961e25a6afd4070d8873b431aba8342406c3 (patch) (side-by-side diff)
tree8ef9a1b3ad5cf50406ac500ccfb77cff60b77796 /noncore/multimedia
parent651d29249946e7221fc85580453750d9e4be4fb0 (diff)
downloadopie-1fed961e25a6afd4070d8873b431aba8342406c3.zip
opie-1fed961e25a6afd4070d8873b431aba8342406c3.tar.gz
opie-1fed961e25a6afd4070d8873b431aba8342406c3.tar.bz2
merge noncore/multimedia/showimg
- opieplayer2 and opierec generate lots of conflicts in merge I'll gladly leave that to the experts ljp and Harlekin ;)
Diffstat (limited to 'noncore/multimedia') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/showimg/main.cpp10
-rw-r--r--noncore/multimedia/showimg/showimg.cpp90
-rw-r--r--noncore/multimedia/showimg/showimg.h1
-rw-r--r--noncore/multimedia/showimg/showimg.pro4
4 files changed, 50 insertions, 55 deletions
diff --git a/noncore/multimedia/showimg/main.cpp b/noncore/multimedia/showimg/main.cpp
index c28cc85..efb1c68 100644
--- a/noncore/multimedia/showimg/main.cpp
+++ b/noncore/multimedia/showimg/main.cpp
@@ -13,21 +13,15 @@
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include "showimg.h"
#include <qpe/qpeapplication.h>
-int main( int argc, char **argv )
-{
- QPEApplication a( argc, argv );
-
- ImageViewer w(0, "new window", Qt::WResizeNoErase );
- a.showMainDocumentWidget(&w);
+#include <opie/oapplicationfactory.h>
- return a.exec();
-}
+OPIE_EXPORT_APP( OApplicationFactory<ImageViewer> ) \ No newline at end of file
diff --git a/noncore/multimedia/showimg/showimg.cpp b/noncore/multimedia/showimg/showimg.cpp
index d6f0733..56bdecf 100644
--- a/noncore/multimedia/showimg/showimg.cpp
+++ b/noncore/multimedia/showimg/showimg.cpp
@@ -17,25 +17,25 @@
** not clear to you.
**
**********************************************************************/
//
// Full-screen and rotation options contributed by Robert Wittams <robert@wittams.com>
//
#include "showimg.h"
#include "ImageFileSelector.h"
#include "settingsdialog.h"
-
+
#include <opie/ofiledialog.h>
#include <qpe/qpeapplication.h>
#include <qpe/config.h>
#include <qpe/resource.h>
#include <qpe/fileselector.h>
#include <qpe/applnk.h>
#include <qfileinfo.h>
#include <math.h>
#include <qpe/qpemenubar.h>
#include <qwidgetstack.h>
#include <qpe/qpetoolbar.h>
@@ -66,103 +66,105 @@ ControlsDialog::ControlsDialog(const QString &caption,QImage image,int *brightne
b=brightness;
img=image;
setMinimumSize(140,80);
QGridLayout *gl= new QGridLayout(this,2,2,4,4);
pixmap =new ImageWidget(this);;
QPixmap pm;
pm.convertFromImage(img);
pixmap->setPixmap(pm);
pixmap->setMinimumSize(pm.width(),pm.height());
- gl->addMultiCellWidget(pixmap,0,0,0,2,AlignCenter);
+ gl->addMultiCellWidget(pixmap,0,0,0,2,AlignCenter);
QLabel *l=new QLabel(tr("Brightness")+":",this);
- gl->addWidget(l,1,0,AlignLeft);
- spb=new QSpinBox(-100,100,2,this);
- gl->addWidget(spb,1,1,AlignRight);
+ gl->addWidget(l,1,0,AlignLeft);
+ spb=new QSpinBox(-100,100,2,this);
+ gl->addWidget(spb,1,1,AlignRight);
spb->setValue(0);
connect(spb,SIGNAL(valueChanged(int)),this, SLOT(bValueChanged(int)));
}
void ControlsDialog::bValueChanged(int value)
{
QImage nImage=img;
nImage.detach();
ImageViewer::intensity(nImage, (float)value/100);
QPixmap pm;
pm.convertFromImage(nImage);
pixmap->setPixmap(pm);
pixmap->repaint(false);
}
void ControlsDialog::accept()
{
- *b=spb->value();
+ *b=spb->value();
done(1);
}
//===========================================================================
InfoDialog::InfoDialog(const QString &caption, const QStringList text,QWidget *parent)
: QDialog(parent,0,true)
{
setCaption(caption);
if ( parent )
{
setPalette(parent->palette());
}
- const char *labels[]={"File Name","Format","File Size","Size","Colors","Alpha"};
+
+
+ QString labels[]={ tr("File Name"),tr("Format"),tr("File Size"),tr("Size"),tr("Colors"),tr("Alpha") };
setMinimumSize(180,80);
int num=ImageViewer::LAST+1;
if ( text[ImageViewer::ALPHA].isEmpty() )
num--;
QGridLayout *gl= new QGridLayout(this,num,2,4,2);
QLabel *l;
int count=0;
for ( int i=0;i<num;i++ )
{
if ( i==1 )
{
QFrame *frm=new QFrame(this);
frm->setFrameStyle(QFrame::HLine|QFrame::Sunken);
- gl->addMultiCellWidget(frm,i,i,0,1);
+ gl->addMultiCellWidget(frm,i,i,0,1);
}
else
{
- l=new QLabel(tr(labels[count])+":",this);
- gl->addWidget(l,i,0,AlignLeft);
+ l=new QLabel( tr( labels[count] )+":",this);
+ gl->addWidget(l,i,0,AlignLeft);
l=new QLabel(text[count],this);
gl->addWidget(l,i,1,AlignRight);
count++;
}
- }
+ }
}
void InfoDialog::displayInfo(const QString &caption, const QStringList text, QWidget *parent)
{
InfoDialog *dlg=new InfoDialog(caption,text,parent);
dlg->exec();
delete dlg;
-}
+}
//===========================================================================
ImagePane::ImagePane( QWidget *parent ) : QWidget( parent )
{
vb = new QVBoxLayout( this );
image = new QScrollView(this,0,WResizeNoErase|WNorthWestGravity);
pic=new ImageWidget(image);
image->addChild(pic);
@@ -201,25 +203,25 @@ void ImageWidget::paintEvent( QPaintEvent *e )
painter.drawPixmap((width() - pixmap.width()) / 2, (height() - pixmap.height()) / 2, pixmap);
}
}
void ImageWidget::mouseReleaseEvent(QMouseEvent *)
{
emit clicked();
}
//===========================================================================
ImageViewer::ImageViewer( QWidget *parent, const char *name, int wFlags )
-: QMainWindow( parent, name, wFlags ), filename( 0 ), bFromDocView( FALSE )
+: 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;
@@ -232,103 +234,103 @@ ImageViewer::ImageViewer( QWidget *parent, const char *name, int wFlags )
menuBar = new QPEMenuBar( 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 );
+ //menubarFile->insertItem( tr("View"), viewMenu );
viewMenuFile->insertItem( tr("Thumbnail View"),
this, SLOT(switchThumbView()), 0, SHOW_THUMBNAILS );
-
- viewMenuFile->setItemChecked ( SHOW_THUMBNAILS, showThumbView );
+
+ 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 );
+ //menubarView->insertItem( tr("File"),fileMenu );
fileMenuView->insertItem( tr("Image Info ..."),this, SLOT(displayInfoDialog()),0 );
- fileMenuView->insertSeparator();
+ fileMenuView->insertSeparator();
viewMenuView = new QPopupMenu(this );
- viewMenuView->setCheckable ( true );
+ viewMenuView->setCheckable ( true );
- //menubarView->insertItem( tr("View"),viewMenu );
+ //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 );
+ 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");
-
+ 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 & ) ) );
imageList = fileSelector->fileList();
slideAction->setEnabled( imageList.count() != 0);
iconToolBar = new QPEToolBar(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->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 );
@@ -342,25 +344,25 @@ ImageViewer::ImageViewer( QWidget *parent, const char *name, int wFlags )
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);
+ 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() ) );
@@ -373,34 +375,34 @@ ImageViewer::ImageViewer( QWidget *parent, const char *name, int wFlags )
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 );
+ 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);
@@ -454,25 +456,25 @@ void ImageViewer::updateImage()
imagePanel->setPixmap(pmScaled);
} else {
imagePanel->setPixmap(pm);
}
}
void ImageViewer::switchThumbView()
{
showThumbView=!showThumbView;
viewMenuFile->setItemChecked ( SHOW_THUMBNAILS, showThumbView );
fileSelector->switchView();
-
+
}
void ImageViewer::switchToFileSelector()
{
stack->raiseWidget(fileSelector);
menuBar->clear();
menuBar->insertItem( tr("File"), fileMenuFile );
menuBar->insertItem( tr("View"), viewMenuFile );
menuBar->insertItem( tr("Options"), optionsMenuFile );
iconToolBar->hide();
imagePanel->disable();
slideShow(false);
@@ -488,25 +490,25 @@ void ImageViewer::switchToImageView()
menuBar->insertItem( tr("View"), viewMenuView );
viewMenuView->setItemEnabled(BLACKANDWHITE,true);
iconToolBar->show();
imagePanel->setPosition(0,0);
}
void ImageViewer::setDocument(const QString& fileref)
{
delayLoad = fileref;
- switchToImageView();
+ switchToImageView();
QTimer::singleShot( 0, this, SLOT(doDelayedLoad()) );
}
void ImageViewer::doDelayedLoad()
{
show(delayLoad);
}
void ImageViewer::show()
{
normalView();
QMainWindow::show();
@@ -523,121 +525,121 @@ void ImageViewer::show(const QString& fileref)
} else {
filename = fileref;
updateCaption( fileref );
loadImage( fileref );
}
}
void ImageViewer::openFile() {
MimeTypes types;
QStringList image;
image << "image/*";
types.insert("Images", image);
-
+
QString str = OFileDialog::getOpenFileName( 1,QPEApplication::documentDir(),"", types, 0 );
DocLnk link(str);
// if ( link.isValid() )
openFile(link);
}
void ImageViewer::openFile( const DocLnk &link )
{
closeFileSelector();
// DocLnk link(file);
qDebug("open "+link.name());
updateCaption( link.name() );
loadImage( link.file() );
if (slideTimer->isActive()) {
slideTimer->start(slideDelay * 1000, FALSE);
}
-
+
}
void ImageViewer::open()
{
switchToFileSelector();
}
void ImageViewer::closeFileSelector()
{
- switchToImageView();
+ switchToImageView();
}
void ImageViewer::updateCaption( QString name )
{
int sep = name.findRev( '/' );
if ( sep >= 0 )
name = name.mid( sep+1 );
setCaption( name + tr(" - Image Viewer") );
}
/*
This function loads an image from a file.
*/
void ImageViewer::loadImage( const char *fileName )
{
filename = fileName;
if ( filename ) {
QApplication::setOverrideCursor( waitCursor ); // this might take time
//imagePanel->statusLabel()->setText( tr("Loading image...") );
qApp->processEvents();
- bool ok = image.load(filename, 0);
+ bool ok = image.load(filename, 0);
if ( ok ) {
ok = reconvertImage();
updateImageInfo(filename);
}
if ( !ok ) {
pm.resize(0,0); // couldn't load image
update();
}
QApplication::restoreOverrideCursor(); // restore original cursor
}
// fastLoad ? ", Fast" : "",
// fastLoad ? QMAX(imagewidth/maxsize, imageheight/maxsize) : 1);
-
+
// matrix.reset();
rotated90 = FALSE;
if (rotateOnLoad) {
rotated90 = TRUE;
- rot90();
+ rot90();
// matrix.rotate( -90.0 );
}
-
+
switchToImageView();
updateImage();
}
bool ImageViewer::loadSelected()
{
bool ok = false;
if ( stack->visibleWidget() == fileSelector )
{
const DocLnk *link = fileSelector->selected();
if ( link )
{
if ( link->file() != filename )
{
updateCaption( link->name() );
filename = link->file();
qApp->processEvents();
- ok = image.load(filename, 0);
+ ok = image.load(filename, 0);
if ( ok )
{
- updateImageInfo(filename);
+ updateImageInfo(filename);
ok = reconvertImage();
}
if ( !ok )
pm.resize(0,0);
}
}
}
if ( !image.isNull() )
{
ok = true;
closeFileSelector();
}
@@ -718,25 +720,25 @@ void ImageViewer::resizeEvent( QResizeEvent * )
if ( imagePanel->paneWidth() != pmScaled.width() || h != pmScaled.height() )
{ // if new size,
scale(); // scale pmScaled to window
}
if ( image.hasAlphaBuffer() )
erase();
}
void ImageViewer::hFlip()
{
// matrix.scale( -1.0, 1.0 );
-
+
setImage(image.mirror(TRUE,FALSE));
}
void ImageViewer::vFlip()
{
// matrix.scale( 1.0, -1.0 );
setImage(image.mirror(FALSE,TRUE));
}
void ImageViewer::rot180()
{
// matrix.rotate( 180.0 );
@@ -798,25 +800,25 @@ void ImageViewer::displayInfoDialog()
for ( int i=0;i<LAST;i++ )
ls.append(imageInfo[i]);
InfoDialog::displayInfo("Image Viewer",ls,this);
}
void ImageViewer::normalView()
{
if ( !imagePanel->parentWidget() )
{
isFullScreen = FALSE;
stack->addWidget( imagePanel, 1 );
- switchToImageView();
+ switchToImageView();
if ( isSized )
scale();
updateImage();
}
}
void ImageViewer::stopSlideShow() {
if (slideTimer->isActive())
slideTimer->stop();
}
@@ -833,38 +835,38 @@ void ImageViewer::fullScreen()
if ( isSized )
scale();
updateImage();
imagePanel->showFullScreen();
}
}
void ImageViewer::setImage(const QImage& newimage)
{
image = newimage;
reconvertImage();
- updateImage();
+ updateImage();
}
void ImageViewer::updateImageInfo(QString &filePath)
{
for ( int i=0;i<LAST;i++ )
{
imageInfo[i]="";
}
imageInfo[FORMAT]=QImage::imageFormat (filePath );
QFileInfo fi(filePath);
- imageInfo[PATH]=fi.fileName();
+ imageInfo[PATH]=fi.fileName();
imageInfo[FILE_SIZE]=QString::number(fi.size())+" (bytes)";
QString message("%1x%2");
imageInfo[SIZE]=QString("%1x%2");
imageInfo[SIZE]=imageInfo[SIZE].arg(image.width()).arg(image.height());
if ( image.numColors() > 0 )
{
imageInfo[COLORS]=tr("%1 colors").arg(image.numColors());
}
else if ( image.depth() >= 16 )
{
imageInfo[COLORS]=tr(" True color");
}
diff --git a/noncore/multimedia/showimg/showimg.h b/noncore/multimedia/showimg/showimg.h
index 8555ff0..abbd976 100644
--- a/noncore/multimedia/showimg/showimg.h
+++ b/noncore/multimedia/showimg/showimg.h
@@ -149,24 +149,25 @@ private:
ImageWidget *pic;
QVBoxLayout *vb;
private slots:
void imageClicked();
};
class ImageViewer : public QMainWindow
{
Q_OBJECT
public:
+ static QString appName() { return QString::fromLatin1("showimg"); }
ImageViewer( QWidget *parent=0, const char *name=0, int wFlags=0 );
~ImageViewer();
void loadImage( const char *fileName );
void show(const QString& fileref);
void show();
enum INFO_STRINGS {
PATH,
FORMAT,
FILE_SIZE,
diff --git a/noncore/multimedia/showimg/showimg.pro b/noncore/multimedia/showimg/showimg.pro
index d369e62..e8d753b 100644
--- a/noncore/multimedia/showimg/showimg.pro
+++ b/noncore/multimedia/showimg/showimg.pro
@@ -1,15 +1,13 @@
-TEMPLATE = app
-CONFIG += qt warn_on release
-DESTDIR = $(OPIEDIR)/bin
+CONFIG += qt warn_on release quick-app
HEADERS = showimg.h ImageFileSelector.h settingsdialog.h settingsdialogbase.h
SOURCES = main.cpp showimg.cpp ImageFileSelector.cpp settingsdialog.cpp settingsdialogbase.cpp
TARGET = showimg
INCLUDEPATH += $(OPIEDIR)/include
DEPENDPATH += $(OPIEDIR)/include
LIBS += -lqpe -lopie
TRANSLATIONS = ../../../i18n/de/showimg.ts \
../../../i18n/nl/showimg.ts \
../../../i18n/xx/showimg.ts \
../../../i18n/en/showimg.ts \
../../../i18n/es/showimg.ts \