]> git.lyx.org Git - features.git/commitdiff
Reduce use of dynamic_cast.
authorAbdelrazak Younes <younes@lyx.org>
Tue, 16 Oct 2007 06:50:09 +0000 (06:50 +0000)
committerAbdelrazak Younes <younes@lyx.org>
Tue, 16 Oct 2007 06:50:09 +0000 (06:50 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20980 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt4/GuiView.cpp
src/frontends/qt4/GuiWorkArea.cpp
src/frontends/qt4/GuiWorkArea.h

index 7e0ced1ae2ab923b6accc3485849e3c14e14df0b..e3fba20a43e20009f1c6693f850dae08e8758b5c 100644 (file)
@@ -689,12 +689,10 @@ bool GuiViewBase::event(QEvent * e)
        //case QEvent::Drop:
        //      break;
 
-       case QEvent::WindowActivate:
+       case QEvent::WindowActivate: {
                theApp()->setCurrentView(*this);
-               if (d.tab_widget_->count()) {
-                       GuiWorkArea * wa = dynamic_cast<GuiWorkArea *>(
-                               d.tab_widget_->currentWidget());
-                       BOOST_ASSERT(wa);
+               GuiWorkArea * wa = d.tab_widget_->currentWorkArea();
+               if (wa) {
                        BufferView & bv = wa->bufferView();
                        connectBufferView(bv);
                        connectBuffer(bv.buffer());
@@ -704,7 +702,7 @@ bool GuiViewBase::event(QEvent * e)
                        getDialogs().updateBufferDependent(true);
                }
                return QMainWindow::event(e);
-
+       }
        case QEvent::ShortcutOverride: {
                QKeyEvent * ke = static_cast<QKeyEvent*>(e);
                if (d.tab_widget_->count() == 0) {
@@ -746,9 +744,8 @@ void GuiViewBase::showView()
 
 void GuiViewBase::busy(bool yes)
 {
-       if (d.tab_widget_->count()) {
-               GuiWorkArea * wa = dynamic_cast<GuiWorkArea *>(d.tab_widget_->currentWidget());
-               BOOST_ASSERT(wa);
+       GuiWorkArea * wa = d.tab_widget_->currentWorkArea();
+       if (wa) {
                wa->setUpdatesEnabled(!yes);
                if (yes)
                        wa->stopBlinkingCursor();
@@ -812,13 +809,7 @@ GuiToolbar * GuiViewBase::makeToolbar(ToolbarInfo const & tbinfo, bool newline)
 
 WorkArea * GuiViewBase::workArea(Buffer & buffer)
 {
-       for (int i = 0; i != d.tab_widget_->count(); ++i) {
-               GuiWorkArea * wa = dynamic_cast<GuiWorkArea *>(d.tab_widget_->widget(i));
-               BOOST_ASSERT(wa);
-               if (&wa->bufferView().buffer() == &buffer)
-                       return wa;
-       }
-       return 0;
+       return d.tab_widget_->workArea(buffer);
 }
 
 
@@ -838,19 +829,13 @@ WorkArea * GuiViewBase::addWorkArea(Buffer & buffer)
 
 WorkArea * GuiViewBase::currentWorkArea()
 {
-       if (d.tab_widget_->count() == 0)
-               return 0;
-       BOOST_ASSERT(dynamic_cast<GuiWorkArea *>(d.tab_widget_->currentWidget()));
-       return dynamic_cast<GuiWorkArea *>(d.tab_widget_->currentWidget());
+       return d.tab_widget_->currentWorkArea();
 }
 
 
 WorkArea const * GuiViewBase::currentWorkArea() const
 {
-       if (d.tab_widget_->count() == 0)
-               return 0;
-       BOOST_ASSERT(dynamic_cast<GuiWorkArea const *>(d.tab_widget_->currentWidget()));
-       return dynamic_cast<GuiWorkArea const *>(d.tab_widget_->currentWidget());
+       return d.tab_widget_->currentWorkArea();
 }
 
 
@@ -862,7 +847,7 @@ void GuiViewBase::setCurrentWorkArea(WorkArea * work_area)
        // update the toc in any case.
        updateToc();
 
-       GuiWorkArea * wa = dynamic_cast<GuiWorkArea *>(work_area);
+       GuiWorkArea * wa = static_cast<GuiWorkArea *>(work_area);
        BOOST_ASSERT(wa);
        d.tab_widget_->setCurrentWorkArea(wa);
 }
@@ -880,7 +865,7 @@ void GuiViewBase::removeWorkArea(WorkArea * work_area)
        // update the toc in any case.
        updateToc();
 
-       GuiWorkArea * gwa = dynamic_cast<GuiWorkArea *>(work_area);
+       GuiWorkArea * gwa = static_cast<GuiWorkArea *>(work_area);
        BOOST_ASSERT(gwa);
        d.tab_widget_->removeWorkArea(gwa);
 
index ce1b43daaae6467a87cd359105e9e1491d57faf3..a9678ee5878e5948cbba63cdb599c26ae18ddd38 100644 (file)
@@ -735,6 +735,29 @@ void TabWorkArea::showBar(bool show)
 }
 
 
+GuiWorkArea * TabWorkArea::currentWorkArea()
+{
+       if (count() == 0)
+               return 0;
+
+       GuiWorkArea * wa = dynamic_cast<GuiWorkArea *>(currentWidget()); 
+       BOOST_ASSERT(wa);
+       return wa;
+}
+
+
+GuiWorkArea * TabWorkArea::workArea(Buffer & buffer)
+{
+       for (int i = 0; i != count(); ++i) {
+               GuiWorkArea * wa = dynamic_cast<GuiWorkArea *>(widget(i));
+               BOOST_ASSERT(wa);
+               if (&wa->bufferView().buffer() == &buffer)
+                       return wa;
+       }
+       return 0;
+}
+
+
 void TabWorkArea::closeAll()
 {
        while (count()) {
index b574127b7b0ab93463de28e2062f9d2246b20b05..d6ad4baa3f0d3bee7d3f8a63fc31055212a455b5 100644 (file)
@@ -187,6 +187,8 @@ public:
        void closeAll();
        bool setCurrentWorkArea(GuiWorkArea *);
        bool removeWorkArea(GuiWorkArea *);
+       GuiWorkArea * currentWorkArea();
+       GuiWorkArea * workArea(Buffer & buffer);
 
 Q_SIGNALS:
        ///