[elvystrac] r1762 - even more changes....

  • From: elvys@xxxxxxxxxxxxxxxxxxxxxx
  • To: elvystrac@xxxxxxxxxxxxx
  • Date: Wed, 17 Feb 2010 17:19:53 +0100

Author: JirkaH
Date: 2010-02-17 17:19:53 +0100 (Wed, 17 Feb 2010)
New Revision: 1762

Modified:
   branches/client/pdf-presentation-branch/elvys-client/Makefile
   branches/client/pdf-presentation-branch/elvys-client/elvys-client.pro.user
   
branches/client/pdf-presentation-branch/elvys-client/src/pdfpresentationviewer.cpp
   branches/client/pdf-presentation-branch/elvys-client/src/pdfviewer.cpp
   branches/client/pdf-presentation-branch/elvys-client/src/videodocument.cpp
   branches/client/pdf-presentation-branch/elvys-client/src/videodocument.h
Log:
even more changes....


Modified: branches/client/pdf-presentation-branch/elvys-client/Makefile
===================================================================
--- branches/client/pdf-presentation-branch/elvys-client/Makefile       
2010-02-17 15:30:14 UTC (rev 1761)
+++ branches/client/pdf-presentation-branch/elvys-client/Makefile       
2010-02-17 16:19:53 UTC (rev 1762)
@@ -1,6 +1,6 @@
 #############################################################################
 # Makefile for building: elvys-client
-# Generated by qmake (2.01a) (Qt 4.5.3) on: Tue Feb 16 09:19:19 2010
+# Generated by qmake (2.01a) (Qt 4.5.3) on: Wed Feb 17 09:52:32 2010
 # Project:  elvys-client.pro
 # Template: subdirs
 # Command: /usr/bin/qmake -spec /usr/share/qt4/mkspecs/linux-g++ -unix 
CONFIG+=debug_and_release -o Makefile elvys-client.pro

Modified: 
branches/client/pdf-presentation-branch/elvys-client/elvys-client.pro.user
===================================================================
--- branches/client/pdf-presentation-branch/elvys-client/elvys-client.pro.user  
2010-02-17 15:30:14 UTC (rev 1761)
+++ branches/client/pdf-presentation-branch/elvys-client/elvys-client.pro.user  
2010-02-17 16:19:53 UTC (rev 1762)
@@ -113,7 +113,6 @@
     <value type="QString" >KDE_SESSION_VERSION=4</value>
     <value type="QString" >LADSPA_PATH=/usr/lib/ladspa</value>
     <value type="QString" >LANG=en_US.UTF-8</value>
-    <value type="QString" >LANGUAGE=</value>
     <value type="QString" >LC_CTYPE=en_US.UTF-8</value>
     <value type="QString" >LESS=-R -M --shift 5</value>
     <value type="QString" >LESSOPEN=|lesspipe.sh %s</value>
@@ -191,7 +190,6 @@
     <value type="QString" >KDE_SESSION_VERSION=4</value>
     <value type="QString" >LADSPA_PATH=/usr/lib/ladspa</value>
     <value type="QString" >LANG=en_US.UTF-8</value>
-    <value type="QString" >LANGUAGE=</value>
     <value type="QString" >LC_CTYPE=en_US.UTF-8</value>
     <value type="QString" >LESS=-R -M --shift 5</value>
     <value type="QString" >LESSOPEN=|lesspipe.sh %s</value>

Modified: 
branches/client/pdf-presentation-branch/elvys-client/src/pdfpresentationviewer.cpp
===================================================================
--- 
branches/client/pdf-presentation-branch/elvys-client/src/pdfpresentationviewer.cpp
  2010-02-17 15:30:14 UTC (rev 1761)
+++ 
branches/client/pdf-presentation-branch/elvys-client/src/pdfpresentationviewer.cpp
  2010-02-17 16:19:53 UTC (rev 1762)
@@ -492,7 +492,7 @@
        Q_UNUSED(event);
 
        if (! zoomed ) { // I might get called in zoomed state          
-
+               setBorderFocused();
                _normalGeometry = geometry();
        }
 

Modified: branches/client/pdf-presentation-branch/elvys-client/src/pdfviewer.cpp
===================================================================
--- branches/client/pdf-presentation-branch/elvys-client/src/pdfviewer.cpp      
2010-02-17 15:30:14 UTC (rev 1761)
+++ branches/client/pdf-presentation-branch/elvys-client/src/pdfviewer.cpp      
2010-02-17 16:19:53 UTC (rev 1762)
@@ -420,6 +420,7 @@
 
        if (! zoomed ) { // I might get called in zoomed state
                _normalGeometry = geometry();
+               setBorderFocused();
        }
        if (scroll) {
                scroll->setGeometry(getScrollGeometry());

Modified: 
branches/client/pdf-presentation-branch/elvys-client/src/videodocument.cpp
===================================================================
--- branches/client/pdf-presentation-branch/elvys-client/src/videodocument.cpp  
2010-02-17 15:30:14 UTC (rev 1761)
+++ branches/client/pdf-presentation-branch/elvys-client/src/videodocument.cpp  
2010-02-17 16:19:53 UTC (rev 1762)
@@ -1,7 +1,9 @@
 #include "videodocument.h"
 
+#include "math.h"
+
 /** class contructor
-  @arg doc another document from which construct geometry
+  @arg doc another document from which geometry is constructed
   @arg id of this document
 */
 
@@ -27,11 +29,12 @@
        vlayout->addWidget(slider);
        this->setLayout(vlayout);               
 
+       connect(player, SIGNAL(finished()), this, SLOT(completelyUnZoom()));
        connect(player, SIGNAL(finished()), this, SLOT(replay()));
        setBorder(false);
 }
 
-/** class descrutor.
+/** class destructor.
   */
 
 VideoDocument::~VideoDocument() {      
@@ -39,6 +42,13 @@
        delete vlayout;
 }
 
+
+
+void VideoDocument::managePlayerState() {
+
+}
+
+
 /** Loads document to play. It does nothing if the same file is already loaded.
   @arg name name of the file to load
   */
@@ -54,6 +64,7 @@
        fullName = AppConfig::getInstance()->getLocalDataDir() + _name;
        MediaSource source(fullName);
        player->load(source);
+       connect(player->mediaObject(), 
SIGNAL(stateChanged(Phonon::State,Phonon::State)), this, 
SLOT(managePlayerState()));
        player->setVolume(0);
 
        slider->setMediaObject(player->mediaObject());  
@@ -127,7 +138,7 @@
 
 void VideoDocument::seek(qint64 pos) {
        if (player->isPlaying()) {
-               player->seek(pos); // do not disturb audience
+               player->seek(pos);
        } else {
                player->play();
                player->seek(pos);
@@ -175,7 +186,64 @@
        return _startAt;
 }
 
+QRect VideoDocument::getZoomedGeometry(int scale) {
+       int newX;
+       int newY;
+       int overlap = 0;
+       int zoomW;
+       int zoomH;
+       QWidget * parW = parentWidget();
 
+       if ( scale == 0) {
+               zoomW = AppConfig::getInstance()->getZoomWidth(parW);
+               zoomH = AppConfig::getInstance()->getZoomHeight(parW);
+       } else { //we must be zoomed already
+               zoomW = AppConfig::getInstance()->getZoomWidth(parW) * 
pow(SCALE_FACTOR, scale);
+               zoomH = AppConfig::getInstance()->getZoomHeight(parW) * 
pow(SCALE_FACTOR, scale);
+       }
+
+       if ( zoomW > parW->width()) {
+               zoomW = parW->width();
+       }
+
+       if ( zoomH > parW->height()) {
+               zoomH = parW->height();
+       }
+
+       int zoomWHalf = zoomW / 2; ///< half width of zoomed size
+
+       int centerX = _normalGeometry.x() + _normalGeometry.width() / 2; ///< 
center of my widget
+
+
+       if ( (overlap = (centerX + zoomWHalf) - parW->width()) > 0 ) { // it 
wouldnt fit the screen! Move left
+               //we know that center needs to be in centerX - overlap          
+               newX = (centerX - overlap) - zoomWHalf;
+       } else if ( (overlap = (centerX - zoomWHalf)) < 0 ) { //we are of the 
screen
+               newX = 0;
+       } else { //center it
+               newX = centerX - zoomWHalf;
+       }
+
+       if ( (_normalGeometry.y() + 
AppConfig::getInstance()->getZoomHeight(parW)) > parW->height() ) {
+               newY = 0;
+       } else {
+               newY = _normalGeometry.y();
+       }
+
+       return QRect(newX, newY, zoomW, zoomH);
+}
+
+
+void VideoDocument::completelyUnZoom() {
+       if ( ! _zoomed ) {
+               return;
+       }
+
+       scaled = 0;
+       unZoom();
+}
+
+
 /** Enlarges widget geometry and starts playing widget, if not playing
   */
 
@@ -191,10 +259,14 @@
                        raise();
                        player->raise();
                        player->videoWidget()->raise();
-                       setGeometry(0, 0, 
AppConfig::getInstance()->getZoomWidth(parentWidget()), 
AppConfig::getInstance()->getZoomHeight(parentWidget()));
+                       setGeometry(getZoomedGeometry(scaled));
                        setBorder(false);
                } else {
-                       
+                       if ( width() == parentWidget()->width() && height() == 
parentWidget()->height()) { //we are zoomed maximaly already
+                               return;
+                       }
+                       scaled++;
+                       setGeometry(getZoomedGeometry(scaled));
                }
        }
 }
@@ -205,7 +277,8 @@
 void VideoDocument::unZoom() {
        if ( _zoomed ) {
                if ( scaled != 0) {
-
+                       scaled--;
+                       setGeometry(getZoomedGeometry(scaled));
                } else {
                        _zoomed = false;
                        emit unZoomEvent();
@@ -228,7 +301,7 @@
        Q_UNUSED(event);
 
        if (! _zoomed ) { // I might get called in zoomed state
-
+               setBorder(hasFocus());
                _normalGeometry = geometry();
        }       
 
@@ -256,6 +329,13 @@
                                event->ignore();
                        }
                        break;
+               case Qt::Key_Up:
+                       if ( _zoomed ) {
+                               seek(0);
+                       } else {
+                               event->ignore();
+                       }
+                       break;
                case Qt::Key_Return:
                        zoom();
                        break;

Modified: 
branches/client/pdf-presentation-branch/elvys-client/src/videodocument.h
===================================================================
--- branches/client/pdf-presentation-branch/elvys-client/src/videodocument.h    
2010-02-17 15:30:14 UTC (rev 1761)
+++ branches/client/pdf-presentation-branch/elvys-client/src/videodocument.h    
2010-02-17 16:19:53 UTC (rev 1762)
@@ -10,6 +10,7 @@
 
 #include "appconfig.h"
 #include "document.h"
+#include "constants.h"
 
 using namespace Phonon;
 
@@ -29,7 +30,7 @@
                virtual int close();            
                void setAutoStart(bool autoStart);
                void setStartAt(qint64 startAt);
-               void manageAutoStart();
+               void manageAutoStart();         
 
        signals:
                void zoomEvent(int documentId, int layoutPos);
@@ -53,11 +54,14 @@
                virtual void resizeEvent(QResizeEvent * event);
 
        private slots:
+               void managePlayerState();
                void replay();
                void play();
+               void completelyUnZoom();
                void seek(qint64 pos);
 
        private:                
+               QRect getZoomedGeometry(int scaled);
                void zoom();
                void unZoom();
                void setBorder(bool focused);


Other related posts:

  • » [elvystrac] r1762 - even more changes.... - elvys