summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.cpp37
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.h7
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.cpp22
3 files changed, 55 insertions, 11 deletions
diff --git a/noncore/graphics/opie-eye/gui/imageview.cpp b/noncore/graphics/opie-eye/gui/imageview.cpp
index ac6474c..03df321 100644
--- a/noncore/graphics/opie-eye/gui/imageview.cpp
+++ b/noncore/graphics/opie-eye/gui/imageview.cpp
@@ -3,12 +3,14 @@
#include <opie2/odebug.h>
#include <opie2/oconfig.h>
#include <opie2/okeyconfigwidget.h>
#include <qpe/resource.h>
#include <qpe/qpeapplication.h>
+#include <qpe/qcopenvelope_qws.h>
+
#include <qpopupmenu.h>
#include <qtimer.h>
#include <qaction.h>
using namespace Opie::Core;
@@ -24,13 +26,41 @@ ImageView::ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name
QPEApplication::setStylusOperation(viewport(),QPEApplication::RightOnHold);
initKeys();
m_slideValue = 5;
m_gDisplayType = 0;
m_gPrevNext = 0;
m_hGroup = 0;
+ m_Rotated = false;
closeIfHide = false;
+ int min = QApplication::desktop()->size().width()>QApplication::desktop()->size().height()?
+ QApplication::desktop()->size().height():QApplication::desktop()->size().width();
+ if (min>320) {
+ // bigscreen
+ setMinimumSize(min/3,min/3);
+ } else {
+ setMinimumSize(10,10);
+ }
+ m_sysChannel = new QCopChannel( "QPE/System", this );
+ connect( m_sysChannel, SIGNAL( received(const QCString&,const QByteArray&) ),
+ this, SLOT( systemMessage(const QCString&,const QByteArray&) ) );
+}
+
+void ImageView::systemMessage( const QCString& msg, const QByteArray& data )
+{
+ int _newrotation;
+ QDataStream stream( data, IO_ReadOnly );
+ odebug << "received system message: " << msg << oendl;
+ if ( msg == "setCurrentRotation(int)" )
+ {
+ stream >> _newrotation;
+ odebug << "received setCurrentRotation(" << _newrotation << ")" << oendl;
+ if (!fullScreen()) {
+ m_rotation = _newrotation;
+ return;
+ }
+ }
}
void ImageView::setMenuActions(QActionGroup*hGroup,QActionGroup*nextprevGroup, QActionGroup*disptypeGroup)
{
m_gDisplayType = disptypeGroup;
m_gPrevNext = nextprevGroup;
@@ -176,13 +206,13 @@ void ImageView::slotShowImageInfo()
void ImageView::contentsMousePressEvent ( QMouseEvent * e)
{
if (e->button()==1) {
return OImageScrollView::contentsMousePressEvent(e);
}
odebug << "Popup " << oendl;
- QPopupMenu *m = new QPopupMenu(0);
+ QPopupMenu *m = new QPopupMenu(this);
if (!m) return;
if (m_hGroup) {
m_hGroup->addTo(m);
}
if (fullScreen()) {
if (m_gPrevNext) {
@@ -210,16 +240,17 @@ void ImageView::contentsMousePressEvent ( QMouseEvent * e)
void ImageView::setFullScreen(bool how,bool force)
{
m_isFullScreen = how;
if (how) {
m_ignore_next_in = true;
- setFixedSize(qApp->desktop()->size());
+// setFixedSize(qApp->desktop()->size());
+ setGeometry(0,0,qApp->desktop()->size().width(),qApp->desktop()->size().height());
if (force) showFullScreen();
} else {
- setMinimumSize(10,10);
+// setMinimumSize(10,10);
}
}
void ImageView::focusInEvent(QFocusEvent *)
{
// Always do it here, no matter the size.
diff --git a/noncore/graphics/opie-eye/gui/imageview.h b/noncore/graphics/opie-eye/gui/imageview.h
index f1067bb..e8c8df7 100644
--- a/noncore/graphics/opie-eye/gui/imageview.h
+++ b/noncore/graphics/opie-eye/gui/imageview.h
@@ -6,12 +6,14 @@
#include <qwidget.h>
class QTimer;
class QActionGroup;
class QAction;
+class QCopChannel;
+
namespace Opie {
namespace Core {
class OConfig;
class OKeyConfigManager;
}
}
@@ -54,23 +56,28 @@ signals:
protected:
Opie::Core::OConfig * m_cfg;
Opie::Core::OKeyConfigManager*m_viewManager;
void initKeys();
bool m_isFullScreen:1;
bool m_ignore_next_in:1;
+ bool m_Rotated:1;
+
int focus_in_count;
QTimer*m_slideTimer;
int m_slideValue;
virtual void focusInEvent ( QFocusEvent * );
QActionGroup *m_gDisplayType,*m_gPrevNext,*m_hGroup;
bool closeIfHide:1;
+ QCopChannel* m_sysChannel;
+ int m_rotation;
public slots:
virtual void hide();
virtual void startSlide(int);
virtual void nextSlide();
+ virtual void systemMessage( const QCString&, const QByteArray& );
protected slots:
virtual void slotShowImageInfo();
virtual void keyReleaseEvent(QKeyEvent * e);
virtual void contentsMousePressEvent ( QMouseEvent * e);
};
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.cpp b/noncore/graphics/opie-eye/gui/mainwindow.cpp
index 7570ee3..90e2e99 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.cpp
+++ b/noncore/graphics/opie-eye/gui/mainwindow.cpp
@@ -252,13 +252,13 @@ void PMainWindow::initInfo() {
}
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->setMinimumSize(QApplication::desktop()->size()/2);
}
m_disp->setMenuActions(m_hGroup,m_gPrevNext,m_gDisplayType);
m_disp->setAutoScale(!m_aUnscaled->isOn());
m_disp->setAutoRotate(m_aAutoRotate->isOn());
m_disp->setShowZoomer(m_aZoomer->isOn());
m_disp->setBackgroundColor(white);
@@ -291,39 +291,45 @@ void PMainWindow::slotFullScreenButton(bool current)
setupViewWindow(current, true);
}
}
void PMainWindow::setupViewWindow(bool current, bool forceDisplay)
{
- if (!m_disp) return;
+ if (!m_disp) {
+ return;
+ }
if (current) {
m_disp->setBackgroundColor(black);
m_disp->reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0));
m_disp->setVScrollBarMode(QScrollView::AlwaysOff);
m_disp->setHScrollBarMode(QScrollView::AlwaysOff);
m_disp->resize(qApp->desktop()->width(), qApp->desktop()->height());
+ m_disp->setFullScreen(current,forceDisplay);
} else {
setUpdatesEnabled(false);
if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
- m_disp->setMinimumSize(QApplication::desktop()->size()/2);
+
+ //m_disp->setMinimumSize(QApplication::desktop()->size()/2);
} else {
- m_disp->setMinimumSize(10,10);
+ //m_disp->setMinimumSize(10,10);
}
if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
- m_disp->reparent(0,QPoint(50,50));
+ m_disp->reparent(0,QPoint(10,10));
} else {
m_disp->reparent(0,QPoint(0,0));
}
m_disp->setBackgroundColor(white);
m_stack->addWidget(m_disp,ImageDisplay);
m_disp->setVScrollBarMode(QScrollView::Auto);
m_disp->setHScrollBarMode(QScrollView::Auto);
- if (forceDisplay || m_disp->isVisible())
- m_stack->raiseWidget(m_disp);
if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
- m_disp->resize(m_disp->minimumSize());
+ m_disp->setGeometry(30,30,QApplication::desktop()->width()-60,QApplication::desktop()->height()-60);
+ }
+ if (forceDisplay || m_disp->isVisible()) {
+ m_stack->raiseWidget(m_disp);
+ m_disp->setFocus();
}
setUpdatesEnabled(true);
}
m_disp->setFullScreen(current,forceDisplay);
}