src/hbcore/gui/hbview.cpp
changeset 1 f7ac710697a9
parent 0 16d8024aca5e
child 2 06ff229162e9
equal deleted inserted replaced
0:16d8024aca5e 1:f7ac710697a9
   633         emit contentFullScreenChanged();
   633         emit contentFullScreenChanged();
   634     }
   634     }
   635 }
   635 }
   636 
   636 
   637 /*!
   637 /*!
   638     \deprecated HbView::titleBarFlags()
   638     \deprecated HbView::titleBarFlags() const
   639         is deprecated. Use HbView::viewFlags() instead.
   639         is deprecated. Use HbView::viewFlags() instead.
   640 
   640 
   641     Returns titlebar flags bit vector.
   641     Returns titlebar flags bit vector.
   642     It consists of bits specified in HbTitleBarFlag.
   642     It consists of bits specified in HbTitleBarFlag.
   643 
   643 
   695     }
   695     }
   696     Q_D(HbView);
   696     Q_D(HbView);
   697     HbView::HbViewFlags originalFlags(d->mViewFlags);
   697     HbView::HbViewFlags originalFlags(d->mViewFlags);
   698     d->mViewFlags = flags;
   698     d->mViewFlags = flags;
   699     if (mainWindow()) {
   699     if (mainWindow()) {
       
   700 
       
   701         // Statusbar-animation
   700         bool statusBarAnimating = false;
   702         bool statusBarAnimating = false;
   701         HbStatusBar *statusBar = HbMainWindowPrivate::d_ptr(mainWindow())->mStatusBar;
   703         HbStatusBar *statusBar = HbMainWindowPrivate::d_ptr(mainWindow())->mStatusBar;        
   702         if ((d->mViewFlags & HbView::ViewStatusBarHidden) && statusBar->isVisible()) {
   704         if ((d->mViewFlags & HbView::ViewStatusBarHidden) && statusBar->isVisible()) {
   703              HbEffect::start(statusBar, "statusbar", "disappear", this, "statusBarEffectFinished"); 
   705 #ifdef HB_EFFECTS
   704              statusBarAnimating = true;
   706             HbEffect::start(statusBar, "statusbar", "disappear", this, "statusBarEffectFinished");
       
   707 #endif // HB_EFFECTS
       
   708             statusBarAnimating = true;
   705         } else if (!(d->mViewFlags & HbView::ViewStatusBarHidden) && !statusBar->isVisible()) {
   709         } else if (!(d->mViewFlags & HbView::ViewStatusBarHidden) && !statusBar->isVisible()) {
   706              HbEffect::start(statusBar, "statusbar", "appear", this, "statusBarEffectFinished");
   710 #ifdef HB_EFFECTS
   707              statusBarAnimating = true;
   711             HbEffect::start(statusBar, "statusbar", "appear", this, "statusBarEffectFinished");
   708         }
   712 #endif // HB_EFFECTS
       
   713             statusBarAnimating = true;
       
   714         }
       
   715 
       
   716         // Titlebar-animation
   709         bool titleBarAnimating = false;
   717         bool titleBarAnimating = false;
   710         HbTitleBar *titleBar = HbMainWindowPrivate::d_ptr(mainWindow())->mTitleBar;
   718         HbTitleBar *titleBar = HbMainWindowPrivate::d_ptr(mainWindow())->mTitleBar;
   711         if ((d->mViewFlags & HbView::ViewTitleBarHidden) && titleBar->isVisible()) {
   719         if ((d->mViewFlags & HbView::ViewTitleBarHidden) && titleBar->isVisible()) {
   712              HbEffect::start(titleBar, "titleBar", "disappear", this, "titleBarEffectFinished");
   720 #ifdef HB_EFFECTS
   713              titleBarAnimating = true;
   721             HbEffect::start(titleBar, "titleBar", "disappear", this, "titleBarEffectFinished");
       
   722 #endif // HB_EFFECTS
       
   723             titleBarAnimating = true;
   714         } else if (!(d->mViewFlags & HbView::ViewTitleBarHidden) && !titleBar->isVisible()) {
   724         } else if (!(d->mViewFlags & HbView::ViewTitleBarHidden) && !titleBar->isVisible()) {
   715              HbEffect::start(titleBar, "titleBar", "appear", this, "titleBarEffectFinished");
   725 #ifdef HB_EFFECTS
   716              titleBarAnimating = true;
   726             HbEffect::start(titleBar, "titleBar", "appear", this, "titleBarEffectFinished");
   717         }
   727 #endif // HB_EFFECTS
       
   728             titleBarAnimating = true;
       
   729         }
       
   730 
   718         if (!statusBarAnimating) {
   731         if (!statusBarAnimating) {
   719             statusBar->setVisible(!(d->mViewFlags & HbView::ViewStatusBarHidden));
   732             statusBar->setVisible(!(d->mViewFlags & HbView::ViewStatusBarHidden));
   720             statusBar->propertiesChanged();
   733             statusBar->propertiesChanged();
   721         }
   734         }
   722         if (!titleBarAnimating) {
   735         if (!titleBarAnimating) {
   726             } else {
   739             } else {
   727                 titleBar->setDefaultNavigationAction();
   740                 titleBar->setDefaultNavigationAction();
   728             }
   741             }
   729             titleBar->propertiesChanged();
   742             titleBar->propertiesChanged();
   730         }
   743         }
   731        
   744         if (d->toolBar) {
       
   745             d->toolBar->updatePrimitives();
       
   746         }
       
   747 
       
   748         // Statusbar-visibility
       
   749         if ( statusBar->isVisible() ){
       
   750             d->mVisibleItems |= Hb::StatusBarItem;
       
   751             d->mVisibleItemsSet = true;
       
   752         } else {
       
   753             d->mVisibleItems &= ~Hb::StatusBarItem;
       
   754             d->mVisibleItemsSet = true;
       
   755         }
       
   756 
       
   757         // Titlebar-visibility
       
   758         if (titleBar->isVisible()){
       
   759             d->mVisibleItems |= Hb::TitleBarItem;
       
   760             d->mVisibleItemsSet = true;
       
   761         }else{
       
   762             d->mVisibleItems &= ~Hb::TitleBarItem;
       
   763             d->mVisibleItemsSet = true;
       
   764         }
       
   765 
   732         // Repolish the screen if needed
   766         // Repolish the screen if needed
   733         int visibilityFlags = HbView::ViewTitleBarMinimized | HbView::ViewTitleBarFloating 
   767         int visibilityFlags = HbView::ViewTitleBarMinimized | HbView::ViewTitleBarFloating 
   734             | HbView::ViewTitleBarMinimizable | HbView::ViewStatusBarHidden | HbView::ViewStatusBarFloating;
   768             | HbView::ViewTitleBarMinimizable | HbView::ViewStatusBarHidden | HbView::ViewStatusBarFloating;
   735         if ((d->mViewFlags & visibilityFlags) != (originalFlags & visibilityFlags)) {
   769         if ((d->mViewFlags & visibilityFlags) != (originalFlags & visibilityFlags)) {
   736             HbMainWindowPrivate::d_ptr(mainWindow())->mClippingItem->decoratorVisibilityChanged();
   770             HbMainWindowPrivate::d_ptr(mainWindow())->mClippingItem->decoratorVisibilityChanged();
   744 void HbView::setTitleBarVisible(bool visible)
   778 void HbView::setTitleBarVisible(bool visible)
   745 {
   779 {
   746     Q_D(HbView);
   780     Q_D(HbView);
   747     if (visible) {
   781     if (visible) {
   748         setViewFlags(d->mViewFlags &~ HbView::ViewTitleBarHidden);
   782         setViewFlags(d->mViewFlags &~ HbView::ViewTitleBarHidden);
   749         d->mVisibleItems |= Hb::TitleBarItem;
       
   750         d->mVisibleItemsSet = true;
       
   751     } else {
   783     } else {
   752         setViewFlags(d->mViewFlags | HbView::ViewTitleBarHidden);
   784         setViewFlags(d->mViewFlags | HbView::ViewTitleBarHidden);
   753         d->mVisibleItems &= ~Hb::TitleBarItem;
       
   754         d->mVisibleItemsSet = true;
       
   755     }  
   785     }  
   756 }
   786 }
   757 
   787 
   758 /*!
   788 /*!
   759     Changes statusbar's visibility with pre-defined effect.
   789     Changes statusbar's visibility with pre-defined effect.
   761 void HbView::setStatusBarVisible(bool visible)
   791 void HbView::setStatusBarVisible(bool visible)
   762 {
   792 {
   763     Q_D(HbView);
   793     Q_D(HbView);
   764     if (visible) {
   794     if (visible) {
   765         setViewFlags(d->mViewFlags &~ HbView::ViewStatusBarHidden);
   795         setViewFlags(d->mViewFlags &~ HbView::ViewStatusBarHidden);
   766         d->mVisibleItems |= Hb::StatusBarItem;
       
   767         d->mVisibleItemsSet = true;
       
   768     } else {
   796     } else {
   769         setViewFlags(d->mViewFlags | HbView::ViewStatusBarHidden);
   797         setViewFlags(d->mViewFlags | HbView::ViewStatusBarHidden);
   770         d->mVisibleItems &= ~Hb::StatusBarItem;
       
   771         d->mVisibleItemsSet = true;
       
   772     }
   798     }
   773 }
   799 }
   774 
   800 
   775 /*!
   801 /*!
   776     \overload
   802     \overload
   843     }
   869     }
   844 
   870 
   845     return menu;
   871     return menu;
   846 }
   872 }
   847 
   873 
       
   874 #ifdef HB_EFFECTS
   848 /*
   875 /*
   849     Handles effect finished event for title bar animation    
   876     Handles effect finished event for title bar animation    
   850  */
   877  */
   851 void HbView::titleBarEffectFinished(const HbEffect::EffectStatus &status)
   878 void HbView::titleBarEffectFinished(const HbEffect::EffectStatus &status)
   852 {   
   879 {   
   888         } else {
   915         } else {
   889             statusBar->setVisible(true);
   916             statusBar->setVisible(true);
   890         }
   917         }
   891     }
   918     }
   892 }
   919 }
       
   920 #endif // HB_EFFECTS
   893 
   921 
   894 /*!
   922 /*!
   895   Returns the currently set navigation action or 0 if there is none.
   923   Returns the currently set navigation action or 0 if there is none.
   896 
   924 
   897   If setNavigationAction() was not called before for this view at all then the
   925   If setNavigationAction() was not called before for this view at all then the