summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye/gui/imagescrollview.cpp
Side-by-side diff
Diffstat (limited to 'noncore/graphics/opie-eye/gui/imagescrollview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/imagescrollview.cpp44
1 files changed, 35 insertions, 9 deletions
diff --git a/noncore/graphics/opie-eye/gui/imagescrollview.cpp b/noncore/graphics/opie-eye/gui/imagescrollview.cpp
index 5b12258..2f16d82 100644
--- a/noncore/graphics/opie-eye/gui/imagescrollview.cpp
+++ b/noncore/graphics/opie-eye/gui/imagescrollview.cpp
@@ -11,3 +11,3 @@ ImageScrollView::ImageScrollView( QWidget* parent, const char* name, WFlags f )
:QScrollView(parent,name,f|Qt::WRepaintNoErase ),_image_data(),_original_data(),scale_to_fit(true),
- rotate_to_fit(true),first_resize_done(false),m_lastName("")
+ rotate_to_fit(true),show_zoomer(true),first_resize_done(false),m_lastName("")
{
@@ -18,3 +18,3 @@ ImageScrollView::ImageScrollView (const QImage&img, QWidget * parent, const char
:QScrollView(parent,name,f|Qt::WRepaintNoErase),_image_data(),_original_data(img),scale_to_fit(always_scale),
- rotate_to_fit(rfit),first_resize_done(false),m_lastName("")
+ rotate_to_fit(rfit),show_zoomer(true),first_resize_done(false),m_lastName("")
{
@@ -27,3 +27,3 @@ ImageScrollView::ImageScrollView (const QString&img, QWidget * parent, const cha
:QScrollView(parent,name,f|Qt::WRepaintNoErase),_image_data(),_original_data(),scale_to_fit(always_scale),
- rotate_to_fit(rfit),first_resize_done(false),m_lastName("")
+ rotate_to_fit(rfit),show_zoomer(true),first_resize_done(false),m_lastName("")
{
@@ -82,4 +82,4 @@ void ImageScrollView::init()
generateImage();
- odebug << "reinit display " << oendl;
} else if (_original_data.size().isValid()) {
+ if (image_fit_into(_original_data.size()) || !show_zoomer) _zoomer->hide();
resizeContents(_original_data.width(),_original_data.height());
@@ -268,2 +268,3 @@ void ImageScrollView::generateImage()
_pdata.convertFromImage(_image_data);
+
@@ -272,6 +273,12 @@ void ImageScrollView::generateImage()
*/
+ check_zoomer();
emit imageSizeChanged( _image_data.size() );
rescaleImage( 128, 128 );
+ /*
+ * move scrollbar
+ */
+ _zoomer->setGeometry( viewport()->width()-_image_data.width()/2, viewport()->height()-_image_data.height()/2,
+ _image_data.width()/2, _image_data.height()/2 );
+
_zoomer->setImage( _image_data );
-
/*
@@ -290,6 +297,2 @@ void ImageScrollView::resizeEvent(QResizeEvent * e)
- /*
- * move scrollbar
- */
- _zoomer->setGeometry( viewport()->width()-100, viewport()->height()-50, 100, 50 );
}
@@ -400 +403,24 @@ void ImageScrollView::setDestructiveClose() {
}
+
+bool ImageScrollView::image_fit_into(const QSize&s )
+{
+ if (s.width()>width()||s.height()>height()) {
+ return false;
+ }
+ return true;
+}
+
+void ImageScrollView::setShowZoomer(bool how)
+{
+ show_zoomer = how;
+ check_zoomer();
+}
+
+void ImageScrollView::check_zoomer()
+{
+ if ( (!show_zoomer||image_fit_into(_pdata.size()) ) && _zoomer->isVisible()) {
+ _zoomer->hide();
+ } else if ( show_zoomer && !image_fit_into(_pdata.size()) && _zoomer->isHidden()){
+ _zoomer->show();
+ }
+}