summaryrefslogtreecommitdiff
authoralwin <alwin>2004-04-16 20:35:35 (UTC)
committer alwin <alwin>2004-04-16 20:35:35 (UTC)
commit217d387def6d97f912352899fd83908b28d75dfc (patch) (side-by-side diff)
tree14135801a52bbbfca4395a4cbf4b7fdffdeb45ad
parentcc56768485c3785439883dd1c456493f7ece2d84 (diff)
downloadopie-217d387def6d97f912352899fd83908b28d75dfc.zip
opie-217d387def6d97f912352899fd83908b28d75dfc.tar.gz
opie-217d387def6d97f912352899fd83908b28d75dfc.tar.bz2
Implemented fullscreen mode (f-key)
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.cpp11
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.h8
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.cpp26
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.h1
4 files changed, 38 insertions, 8 deletions
diff --git a/noncore/graphics/opie-eye/gui/imageview.cpp b/noncore/graphics/opie-eye/gui/imageview.cpp
index fbc4494..8e7f982 100644
--- a/noncore/graphics/opie-eye/gui/imageview.cpp
+++ b/noncore/graphics/opie-eye/gui/imageview.cpp
@@ -1,87 +1,84 @@
#include "imageview.h"
#include <opie2/odebug.h>
#include <opie2/oconfig.h>
#include <opie2/okeyconfigwidget.h>
#include <qpe/resource.h>
using namespace Opie::Core;
ImageView::ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name, WFlags fl )
: Opie::MM::OImageScrollView(parent,name,fl)
{
m_viewManager = 0;
m_cfg = cfg;
+ m_isFullScreen = false;
initKeys();
}
ImageView::~ImageView()
{
if (m_viewManager) {
delete m_viewManager;
}
}
Opie::Core::OKeyConfigManager* ImageView::manager()
{
if (!m_viewManager) {
initKeys();
}
return m_viewManager;
}
void ImageView::initKeys()
{
odebug << "init imageview keys" << oendl;
if (!m_cfg) {
m_cfg = new Opie::Core::OConfig("phunkview");
m_cfg->setGroup("image_view_keys" );
}
Opie::Core::OKeyPair::List lst;
lst.append( Opie::Core::OKeyPair::upArrowKey() );
lst.append( Opie::Core::OKeyPair::downArrowKey() );
lst.append( Opie::Core::OKeyPair::leftArrowKey() );
lst.append( Opie::Core::OKeyPair::rightArrowKey() );
lst.append( Opie::Core::OKeyPair(Qt::Key_N,0));
lst.append( Opie::Core::OKeyPair(Qt::Key_P,0));
+ lst.append( Opie::Core::OKeyPair(Qt::Key_F,0));
m_viewManager = new Opie::Core::OKeyConfigManager(m_cfg, "image_view_keys",
lst, false,this, "image_view_keys" );
m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("View Image Info"), "imageviewinfo",
Resource::loadPixmap("1to1"), ViewInfo,
- Opie::Core::OKeyPair(Qt::Key_I,Qt::ShiftButton),
+ Opie::Core::OKeyPair(Qt::Key_I,0),
this, SLOT(slotShowImageInfo())));
-#if 0
- m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Next image"), "nextimage",
- Resource::loadPixmap("next"), ViewInfo,
- Opie::Core::OKeyPair(Qt::Key_N,0),
- this, SLOT(slotDispNext())));
-#endif
m_viewManager->handleWidget( this );
m_viewManager->load();
}
void ImageView::keyReleaseEvent(QKeyEvent * e)
{
if (!e || e->state()!=0) {
return;
}
if (e->key()==Qt::Key_N) slotDispNext();
if (e->key()==Qt::Key_P) slotDispPrev();
+ if (e->key()==Qt::Key_F) emit toggleFullScreen();
}
void ImageView::slotDispNext()
{
emit dispNext();
}
void ImageView::slotDispPrev()
{
emit dispPrev();
}
void ImageView::slotShowImageInfo()
{
emit dispImageInfo(m_lastName);
}
diff --git a/noncore/graphics/opie-eye/gui/imageview.h b/noncore/graphics/opie-eye/gui/imageview.h
index f467f00..32f7e11 100644
--- a/noncore/graphics/opie-eye/gui/imageview.h
+++ b/noncore/graphics/opie-eye/gui/imageview.h
@@ -1,41 +1,47 @@
#ifndef _IMAGE_VIEW_H
#define _IMAGE_VIEW_H
#include <opie2/oimagescrollview.h>
namespace Opie {
namespace Core {
class OConfig;
class OKeyConfigManager;
}
}
class ImageView:public Opie::MM::OImageScrollView
{
Q_OBJECT
enum ActionIds {
- ViewInfo
+ ViewInfo,
+ FullScreen
};
public:
ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name = 0, WFlags fl = 0 );
virtual ~ImageView();
Opie::Core::OKeyConfigManager* manager();
+ void setFullScreen(bool how){m_isFullScreen = how;}
+ bool fullScreen(){return m_isFullScreen;}
signals:
void dispImageInfo(const QString&);
void dispNext();
void dispPrev();
+ void toggleFullScreen();
protected:
Opie::Core::OConfig * m_cfg;
Opie::Core::OKeyConfigManager*m_viewManager;
void initKeys();
+ bool m_isFullScreen:1;
+
protected slots:
virtual void slotShowImageInfo();
virtual void slotDispNext();
virtual void slotDispPrev();
virtual void keyReleaseEvent(QKeyEvent * e);
};
#endif
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.cpp b/noncore/graphics/opie-eye/gui/mainwindow.cpp
index 4852bf6..9b929a1 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.cpp
+++ b/noncore/graphics/opie-eye/gui/mainwindow.cpp
@@ -250,67 +250,93 @@ void PMainWindow::slotConfig() {
/*
* create a new image info component
* and detach the current one
* we will make the other delete on exit
*/
template<class T>
void PMainWindow::initT( const char* name, T** ptr, int id) {
if ( *ptr ) {
(*ptr)->disconnect(this, SLOT(slotReturn()));
(*ptr)->setDestructiveClose();
m_stack->removeWidget( *ptr );
}
*ptr = new T(m_cfg, m_stack, name );
m_stack->addWidget( *ptr, id );
connect(*ptr, SIGNAL(sig_return()),
this,SLOT(slotReturn()));
}
void PMainWindow::initInfo() {
initT<imageinfo>( "Image Info", &m_info, ImageInfo );
connect(m_info,SIGNAL(dispImage(const QString&)),this,SLOT(slotDisplay(const QString&)));
}
void PMainWindow::initDisp() {
initT<ImageView>( "Image ScrollView", &m_disp, ImageDisplay );
if (m_disp) {
if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
m_disp->setMinimumSize(QApplication::desktop()->size()/2);
}
m_disp->setAutoScale(autoScale);
m_disp->setAutoRotate(autoRotate);
m_disp->setShowZoomer(zoomerOn);
+ m_disp->setBackgroundColor(white);
connect(m_disp,SIGNAL(dispImageInfo(const QString&)),this,SLOT(slotShowInfo(const QString&)));
connect(m_disp,SIGNAL(dispNext()),m_view,SLOT(slotShowNext()));
connect(m_disp,SIGNAL(dispPrev()),m_view,SLOT(slotShowPrev()));
+ connect(m_disp,SIGNAL(toggleFullScreen()),this,SLOT(slotToggleFullScreen()));
+ }
+}
+
+void PMainWindow::slotToggleFullScreen()
+{
+ odebug << "Toggle full " << oendl;
+ if (!m_disp) return;
+ bool current = !m_disp->fullScreen();
+ m_disp->setFullScreen(current);
+ odebug << "Current = " << current << oendl;
+ if (current) {
+ odebug << "full" << oendl;
+ m_disp->setBackgroundColor(black);
+ m_disp->reparent(0,QPoint(0,0));
+ m_disp->resize(qApp->desktop()->width(), qApp->desktop()->height());
+ m_disp->showFullScreen();
+ } else {
+ odebug << "window" << oendl;
+ m_disp->setBackgroundColor(white);
+ m_stack->addWidget(m_disp,ImageDisplay);
+ m_stack->raiseWidget(m_disp);
+ if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
+ m_disp->resize(m_disp->minimumSize());
+ }
}
}
/**
* With big Screen the plan could be to 'detach' the image
* window if visible and to create a ne wone
* init* already supports it but I make no use of it for
* now. We set filename and raise
*
* ### FIXME and talk to alwin
*/
void PMainWindow::slotShowInfo( const QString& inf ) {
if ( !m_info ) {
initInfo();
}
m_info->setPath( inf );
if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
prevButton->hide();
nextButton->hide();
upButton->hide();
fsButton->hide();
viewModeButton->hide();
}
m_stack->raiseWidget( ImageInfo );
}
void PMainWindow::slotDisplay( const QString& inf ) {
if ( !m_disp ) {
initDisp();
}
m_disp->setImage( inf );
if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.h b/noncore/graphics/opie-eye/gui/mainwindow.h
index 1967ef7..4cfc39c 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.h
+++ b/noncore/graphics/opie-eye/gui/mainwindow.h
@@ -15,59 +15,60 @@
namespace Opie {
namespace Ui{
class OWidgetStack;
}
namespace Core{
class OKeyConfigManager;
}
}
class ImageView;
class PIconView;
class imageinfo;
class PMainWindow : public QMainWindow {
Q_OBJECT
enum Views { IconView, ImageInfo, ImageDisplay };
public:
static QString appName() { return QString::fromLatin1("opie-eye" ); }
PMainWindow(QWidget*, const char*, WFlags );
~PMainWindow();
signals:
void configChanged();
public slots:
void slotShowInfo( const QString& inf );
void slotDisplay( const QString& inf );
void slotReturn();
void slotRotateToggled(bool);
void slotScaleToggled(bool);
void slotZoomerToggled(bool);
void setDocument( const QString& );
+ virtual void slotToggleFullScreen();
protected:
void raiseIconView();
void closeEvent( QCloseEvent* );
private:
template<class T> void initT( const char* name, T**, int );
void initInfo();
void initDisp();
private:
Opie::Core::OConfig *m_cfg;
Opie::Ui::OWidgetStack *m_stack;
PIconView* m_view;
imageinfo *m_info;
ImageView *m_disp;
bool autoRotate;
bool autoScale;
bool zoomerOn;
QToolButton*rotateButton,*upButton,*fsButton,*viewModeButton;
QToolButton*nextButton,*prevButton;
private slots:
void slotConfig();
};
#endif