]> git.lyx.org Git - features.git/commitdiff
various changes
authorLars Gullik Bjønnes <larsbj@gullik.org>
Mon, 4 Jun 2001 23:57:32 +0000 (23:57 +0000)
committerLars Gullik Bjønnes <larsbj@gullik.org>
Mon, 4 Jun 2001 23:57:32 +0000 (23:57 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2089 a592a061-630c-0410-9148-cb99ea01b6c8

27 files changed:
ChangeLog
acconfig.h
boost/ChangeLog
boost/boost/config.hpp
src/BufferView.C
src/BufferView.h
src/BufferView2.C
src/BufferView_pimpl.C
src/BufferView_pimpl.h
src/ChangeLog
src/LyXAction.C
src/Painter.C
src/WorkArea.C
src/buffer.C
src/font.C
src/frontends/controllers/ControlExternal.C
src/frontends/xforms/FormMathsDeco.C
src/insets/figinset.C
src/insets/insetinfo.C
src/layout.C
src/lyxfunc.C
src/mathed/formula.C
src/mathed/math_parser.C
src/support/LAssert.C
src/support/filetools.C
src/text.C
src/trans.C

index 1b22c5b7b3c9c7ac574c387277cb977703464d41..3adc7265c242e1ee615be9dfcb1132342aaec797 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2001-06-01  Lars Gullik Bjønnes  <larsbj@birdstep.com>
+
+       * acconfig.h: add BOOST_NO_LIMITS hack to help boost lib.
+
 2001-05-31  Lars Gullik Bjønnes  <larsbj@birdstep.com>
 
        * acconfig.h: auto update
index b7318d8d0e4f48d4be4b19c13e7f10c0e5954bb0..0d04f91739ff2be45286351d29a7fc237e7a87b2 100644 (file)
@@ -8,7 +8,8 @@
    *
    *           LyX, the High Level Word Processor
    *
-   *           Copyright (C) 1995 Matthias Ettrich
+   *           Copyright 1995 Matthias Ettrich
+   *           Copyright 1995-2001 The LyX Team.
    *
    *======================================================*/
 
@@ -123,5 +124,14 @@ int mkstemp(char*);
 #include "nt_defines.h"
 #endif
 
+/* Some support for the boost library. */
+#ifndef HAVE_LIMITS
+#define BOOST_NO_LIMITS
+#endif
+
+#ifndef HAVE_SSTREAM
+#define BOOST_NO_STRINGSTREAM
+#endif
+
 #endif /* _CONFIG_H */
 
index 654a3449f7fb86add565d69aacbfeab9dd07d3c8..558320988235cccac9707a8173efda26a3fa4948 100644 (file)
@@ -1,3 +1,7 @@
+2001-06-01  Lars Gullik Bjønnes  <larsbj@birdstep.com>
+
+       * boost/config.hpp: remove hack moved to config.h
+
 2001-06-01  Jean-Marc Lasgouttes  <Jean-Marc.Lasgouttes@inria.fr>
 
        * boost/config.hpp (BOOST_NO_LIMITS): fix the hack mentionned
index 0cdb1e8c5716104cdd47a441dd6e3d5a21c6742e..216c8f493b2a27e14f929f48431cf7a6125a7046 100644 (file)
 #       define BOOST_NO_HASH
 #     endif
 #   endif
-// LYX: begin
-#   ifndef HAVE_LIMITS
-#      define BOOST_NO_LIMITS
-#   endif
-// LYX: end
 
 //  Intel on Linux ---------------------------------------------------------
 
index 4cf8fb3ae99f30df934518c6a94c57de27edf66a..a67d82bc2a6e5b7468a7269f7f6871cd45be83f2 100644 (file)
@@ -27,7 +27,6 @@ BufferView::BufferView(LyXView * o, int xpos, int ypos,
        : pimpl_(new Pimpl(this, o, xpos, ypos, width, height))
 {
        text = 0;
-       inset_slept = false;
 }
 
 
index a673802f765a6879124835a5208b6a8bfa55490f..a239d0ce6d4f1ec118ec55a54c33dab726cddab0 100644 (file)
@@ -78,11 +78,6 @@ public:
        ///
        int resizeCurrentBuffer();
        ///
-       void gotoInset(std::vector<Inset::Code> const & codes,
-                      bool same_content);
-       ///
-       void gotoInset(Inset::Code codes, bool same_content);
-       ///
        void cursorPrevious(LyXText *);
        ///
        void cursorNext(LyXText *);
@@ -117,8 +112,6 @@ public:
        ///
        void updateInset(Inset * inset, bool mark_dirty);
        ///
-       bool inset_slept;
-       ///
        int slx;
        ///
        int sly;
@@ -164,8 +157,9 @@ public:
            Placie it in a layout of lout,
            if no_table make sure that it doesn't end up in a table.
        */
-       bool insertInset(Inset * inset, string const & lout = string(),
-                        bool no_table = false);
+       //bool insertInset(Inset * inset, string const & lout = string(),
+       //               bool no_table = false);
+       bool insertInset(Inset * inset, string const & lout = string());
        /** Inserts a lyx file at cursor position.
            @return #false# if it fails.
        */
index 961b4c58797c8e91ca46b014305049f7dbf2b666..ec9093b6b8ea74f7697dd72ee36e47bf13f9aa75 100644 (file)
@@ -1,4 +1,4 @@
-// -*- C++ -*-
+a// -*- C++ -*-
 /* This file is part of
  * ====================================================== 
  * 
@@ -19,7 +19,6 @@
 #include "lyxcursor.h"
 #include "lyxtext.h"
 #include "insets/inseterror.h"
-#include "insets/insetinfo.h"
 #include "LyXView.h"
 #include "bufferlist.h"
 #include "support/FileInfo.h"
@@ -191,64 +190,9 @@ void BufferView::setCursorFromRow(int row)
 }
 
 
-bool BufferView::insertInset(Inset * inset, string const & lout,
-                            bool /*no_table*/)
+bool BufferView::insertInset(Inset * inset, string const & lout)
 {
-       // if we are in a locking inset we should try to insert the
-       // inset there otherwise this is a illegal function now
-       if (theLockingInset()) {
-               if (theLockingInset()->InsertInsetAllowed(inset))
-                   return theLockingInset()->InsertInset(this, inset);
-               return false;
-       }
-
-       // not quite sure if we want this...
-       text->SetCursorParUndo(buffer());
-       text->FreezeUndo();
-       
-       beforeChange(text);
-       if (!lout.empty()) {
-               update(text, BufferView::SELECT|BufferView::FITCUR);
-               text->BreakParagraph(this);
-               update(text, BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
-
-               if (text->cursor.par()->size()) {
-                       text->CursorLeft(this);
-                       
-                       text->BreakParagraph(this);
-                       update(text, BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
-               }
-
-               pair<bool, LyXTextClass::size_type> lres =
-                       textclasslist.NumberOfLayout(buffer()->params
-                                                    .textclass, lout);
-               LyXTextClass::size_type lay;
-               if (lres.first != false) {
-                       // layout found
-                       lay = lres.second;
-               } else {
-                       // layout not fount using default "Standard" (0)
-                       lay = 0;
-               }
-                
-               text->SetLayout(this, lay);
-               
-               text->SetParagraph(this, 0, 0,
-                                  0, 0,
-                                  VSpace(VSpace::NONE), VSpace(VSpace::NONE),
-                                  LYX_ALIGN_LAYOUT, 
-                                  string(),
-                                  0);
-               update(text, BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
-               
-               text->current_font.setLatex(LyXFont::OFF);
-       }
-       
-       text->InsertInset(this, inset);
-       update(text, BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
-
-       text->UnFreezeUndo();
-       return true;
+       return pimpl_->insertInset(inset, lout);
 }
 
 
@@ -384,48 +328,6 @@ void BufferView::paste()
 }
 
 
-void BufferView::gotoInset(std::vector<Inset::Code> const & codes,
-                          bool same_content)
-{
-       if (!available()) return;
-   
-       hideCursor();
-       beforeChange(text);
-       update(text, BufferView::SELECT|BufferView::FITCUR);
-
-       string contents;
-       if (same_content &&
-           text->cursor.par()->GetChar(text->cursor.pos()) == LyXParagraph::META_INSET) {
-               Inset const * inset = text->cursor.par()->GetInset(text->cursor.pos());
-               if (find(codes.begin(), codes.end(), inset->LyxCode())
-                   != codes.end())
-                       contents =
-                               static_cast<InsetCommand const *>(inset)->getContents();
-       }
-       
-       if (!text->GotoNextInset(this, codes, contents)) {
-               if (text->cursor.pos() 
-                   || text->cursor.par() != text->FirstParagraph()) {
-                               LyXCursor tmp = text->cursor;
-                               text->cursor.par(text->FirstParagraph());
-                               text->cursor.pos(0);
-                               if (!text->GotoNextInset(this, codes, contents)) {
-                                       text->cursor = tmp;
-                                       owner()->message(_("No more insets"));
-                               }
-                       } else {
-                               owner()->message(_("No more insets"));
-                       }
-       }
-       update(text, BufferView::SELECT|BufferView::FITCUR);
-       text->selection.cursor = text->cursor;
-}
-
-
-void BufferView::gotoInset(Inset::Code code, bool same_content)
-{
-       gotoInset(vector<Inset::Code>(1, code), same_content);
-}
 
 
 void BufferView::insertCorrectQuote()
@@ -592,44 +494,7 @@ void BufferView::lockedInsetStoreUndo(Undo::undo_kind kind)
 
 void BufferView::updateInset(Inset * inset, bool mark_dirty)
 {
-       if (!inset)
-               return;
-
-       // first check for locking insets
-       if (theLockingInset()) {
-               if (theLockingInset() == inset) {
-                       if (text->UpdateInset(this, inset)) {
-                               update();
-                               if (mark_dirty) {
-                                       buffer()->markDirty();
-                               }
-                               updateScrollbar();
-                               return;
-                       }
-               } else if (theLockingInset()->UpdateInsetInInset(this,inset)) {
-                       if (text->UpdateInset(this, theLockingInset())) {
-                               update();
-                               if (mark_dirty){
-                                       buffer()->markDirty();
-                               }
-                               updateScrollbar();
-                               return;
-                       }
-               }
-       }
-  
-       // then check the current buffer
-       if (available()) {
-               hideCursor();
-               update(text, BufferView::UPDATE);
-               if (text->UpdateInset(this, inset)) {
-                       if (mark_dirty)
-                               update(text, BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
-                       else 
-                               update(text, SELECT);
-                       return;
-               }
-       }
+       pimpl_->updateInset(inset, mark_dirty);
 }
 
 
@@ -694,6 +559,7 @@ bool BufferView::ChangeCitationsIfUnique(string const & from, string const & to)
        return ChangeInsets(Inset::CITE_CODE, from, to);
 }
 
+
 UpdatableInset * BufferView::theLockingInset() const
 {
        // If NULL is not allowed we should put an Assert here. (Lgb)
index 835cef0dd464c991576bf789a2c68e74722cb60d..3b70e8d7046dab59d4eb32a9ac73c7d1cbeb29cc 100644 (file)
@@ -81,10 +81,10 @@ extern bool math_insert_greek(BufferView *, char);
 extern void sigchldhandler(pid_t pid, int * status);
 extern int bibitemMaxWidth(BufferView *, LyXFont const &);
 
-const unsigned int saved_positions_num = 20;
-
 namespace {
 
+const unsigned int saved_positions_num = 20;
+
 inline
 void waitForX()
 {
@@ -112,7 +112,8 @@ BufferView::Pimpl::Pimpl(BufferView * b, LyXView * o,
             int xpos, int ypos, int width, int height)
        : bv_(b), owner_(o), buffer_(0),
          current_scrollbar_value(0), cursor_timeout(400),
-         workarea_(xpos, ypos, width, height), using_xterm_cursor(false)
+         workarea_(xpos, ypos, width, height), using_xterm_cursor(false),
+         inset_slept(false)
 {
        // Setup the signals
        workarea_.scrollCB.connect(slot(this, &BufferView::Pimpl::scrollCB));
@@ -138,10 +139,8 @@ BufferView::Pimpl::Pimpl(BufferView * b, LyXView * o,
        
        cursor_timeout.timeout.connect(slot(this,
                                            &BufferView::Pimpl::cursorToggle));
-       //current_scrollbar_value = 0;
        cursor_timeout.start();
        workarea_.setFocus();
-       //using_xterm_cursor = false;
        saved_positions.resize(saved_positions_num);
 }
 
@@ -157,7 +156,7 @@ void BufferView::Pimpl::buffer(Buffer * b)
        lyxerr[Debug::INFO] << "Setting buffer in BufferView ("
                            << b << ")" << endl;
        if (buffer_) {
-               bv_->insetSleep();
+               insetSleep();
                buffer_->delUser(bv_);
 
                // Put the old text into the TextCache, but
@@ -203,7 +202,7 @@ void BufferView::Pimpl::buffer(Buffer * b)
                // require bv_->text.
                owner_->getDialogs()->updateBufferDependent(true);
                redraw();
-               bv_->insetWakeup();
+               insetWakeup();
        } else {
                lyxerr[Debug::INFO] << "  No Buffer!" << endl;
                owner_->updateMenubar();
@@ -344,7 +343,7 @@ int BufferView::Pimpl::resizeCurrentBuffer()
        updateScrollbar();
        redraw();
 
-       bv_->setState();
+       setState();
        AllowInput(bv_);
 
        /// get rid of the splash screen if it's not gone already
@@ -367,58 +366,41 @@ void BufferView::Pimpl::updateScrollbar()
         * maximum must be the working area height. No scrolling will 
         * be possible */
 
-       if (!buffer_) {
+       if (!bv_->text) {
                workarea_.setScrollbar(0, 1.0);
                return;
        }
-       
-       static unsigned long max2 = 0;
-       static unsigned long height2 = 0;
 
-       unsigned long cbth = 0;
-       long cbsf = 0;
-
-       if (bv_->text) {
-               cbth = bv_->text->height;
-               cbsf = bv_->text->first;
-       }
+       static unsigned long text_height;
+       static unsigned long work_height;
 
+       unsigned long const tmp_text_height = bv_->text->height;
+       long const tmp_scrollbar_value = bv_->text->first;
+       
        // check if anything has changed.
-       if (max2 == cbth &&
-           height2 == workarea_.height() &&
-           current_scrollbar_value == cbsf)
+       if (text_height == tmp_text_height
+           && work_height == workarea_.height()
+           && current_scrollbar_value == tmp_scrollbar_value)
                return; // no
-       max2 = cbth;
-       height2 = workarea_.height();
-       current_scrollbar_value = cbsf;
 
-       if (cbth <= height2) { // text is smaller than screen
-               workarea_.setScrollbar(0, 1.0); // right?
+       // update values
+       text_height = tmp_text_height;
+       work_height = workarea_.height();
+       current_scrollbar_value = tmp_scrollbar_value;
+
+       long const height_diff = text_height - work_height;
+       
+       if (height_diff <= 0) {
+               workarea_.setScrollbar(0, 1.0);
                return;
        }
 
-       long maximum_height = workarea_.height() * 3 / 4 + cbth;
-       long value = cbsf;
-
-       // set the scrollbar
-       double hfloat = workarea_.height();
-       double maxfloat = maximum_height;
-
-       float slider_size = 0.0;
-       int slider_value = value;
-
-       workarea_.setScrollbarBounds(0, bv_->text->height - workarea_.height());
+       
+       workarea_.setScrollbarBounds(0, height_diff);
        double const lineh = bv_->text->DefaultHeight();
        workarea_.setScrollbarIncrements(lineh);
-       if (maxfloat > 0.0) {
-               if ((hfloat / maxfloat) * float(height2) < 3)
-                       slider_size = 3.0/float(height2);
-               else
-                       slider_size = hfloat / maxfloat;
-       } else
-               slider_size = hfloat;
-
-       workarea_.setScrollbar(slider_value, slider_size / workarea_.height());
+       double const slider_size = 1.0 / double(height_diff) ;
+       workarea_.setScrollbar(current_scrollbar_value, slider_size);
 }
 
 
@@ -491,7 +473,7 @@ int BufferView::Pimpl::scrollDown(long time)
    
        double value = workarea_.getScrollbarValue();
        pair<float, float> p = workarea_.getScrollbarBounds();
-       double max = p.second;
+       double const max = p.second;
        
        if (value == max) return 0;
 
@@ -531,7 +513,7 @@ void BufferView::Pimpl::workAreaMotionNotify(int x, int y, unsigned int state)
        // Check for inset locking
        if (bv_->theLockingInset()) {
                LyXCursor cursor = bv_->text->cursor;
-               LyXFont font = bv_->text->GetFont(bv_->buffer(),
+               LyXFont font = bv_->text->GetFont(buffer_,
                                                  cursor.par(), cursor.pos());
                int width = bv_->theLockingInset()->width(bv_, font);
                int inset_x = font.isVisibleRightToLeft()
@@ -545,8 +527,9 @@ void BufferView::Pimpl::workAreaMotionNotify(int x, int y, unsigned int state)
                return;
        }
    
-       /* The test for not selection possible is needed, that only motion events are 
-        * used, where the bottom press event was on the drawing area too */
+       /* The test for not selection possible is needed, that only motion
+          events are used, where the bottom press event was on
+          the drawing area too */
        if (!selection_possible)
                return;
  
@@ -568,9 +551,6 @@ void BufferView::Pimpl::workAreaMotionNotify(int x, int y, unsigned int state)
 void BufferView::Pimpl::workAreaButtonPress(int xpos, int ypos,
                                            unsigned int button)
 {
-       last_click_x = -1;
-       last_click_y = -1;
-
        if (!buffer_ || !screen_.get()) return;
 
        Inset * inset_hit = checkInsetHit(bv_->text, xpos, ypos, button);
@@ -766,7 +746,7 @@ void BufferView::Pimpl::workAreaButtonRelease(int x, int y,
        if (button == 2)
                return;
 
-       bv_->setState();
+       setState();
        owner_->showState();
 
        // Did we hit an editable inset?
@@ -790,7 +770,7 @@ void BufferView::Pimpl::workAreaButtonRelease(int x, int y,
                // ...or maybe the SetCursorParUndo()
                // below isn't necessary at all anylonger?
                if (inset_hit->LyxCode() == Inset::REF_CODE) {
-                       bv_->text->SetCursorParUndo(bv_->buffer());
+                       bv_->text->SetCursorParUndo(buffer_);
                }
 
                owner_->message(inset_hit->EditMessage());
@@ -862,7 +842,7 @@ Inset * BufferView::Pimpl::checkInsetHit(LyXText * text, int & x, int & y,
 
                // Check whether the inset really was hit
                Inset * tmpinset = cursor.par()->GetInset(cursor.pos());
-               LyXFont font = text->GetFont(bv_->buffer(),
+               LyXFont font = text->GetFont(buffer_,
                                                  cursor.par(), cursor.pos());
                int const width = tmpinset->width(bv_, font);
                int const inset_x = font.isVisibleRightToLeft()
@@ -886,7 +866,7 @@ Inset * BufferView::Pimpl::checkInsetHit(LyXText * text, int & x, int & y,
            (cursor.par()->GetInset(cursor.pos() - 1)) &&
            (cursor.par()->GetInset(cursor.pos() - 1)->Editable())) {
                Inset * tmpinset = cursor.par()->GetInset(cursor.pos()-1);
-               LyXFont font = text->GetFont(bv_->buffer(), cursor.par(),
+               LyXFont font = text->GetFont(buffer_, cursor.par(),
                                                  cursor.pos()-1);
                int const width = tmpinset->width(bv_, font);
                int const inset_x = font.isVisibleRightToLeft()
@@ -914,8 +894,8 @@ Inset * BufferView::Pimpl::checkInsetHit(LyXText * text, int & x, int & y,
 
 void BufferView::Pimpl::workAreaExpose()
 {
-       static int work_area_width = 0;
-       static unsigned int work_area_height = 0;
+       static int work_area_width;
+       static unsigned int work_area_height;
 
        bool const widthChange = workarea_.workWidth() != work_area_width;
        bool const heightChange = workarea_.height() != work_area_height;
@@ -1016,7 +996,7 @@ void BufferView::Pimpl::update(LyXText * text, BufferView::UpdateCodes f)
 
        if (text->inset_owner) {
            text->inset_owner->SetUpdateStatus(bv_, InsetText::NONE);
-           bv_->updateInset(text->inset_owner, true);
+           updateInset(text->inset_owner, true);
        } else
            update();
 
@@ -1041,7 +1021,7 @@ void BufferView::Pimpl::cursorToggle()
        }
  
        int status = 1;
-       int pid = waitpid(static_cast<pid_t>(0), &status, WNOHANG);
+       int const pid = waitpid(static_cast<pid_t>(0), &status, WNOHANG);
        if (pid == -1) // error find out what is wrong
                ; // ignore it for now.
        else if (pid > 0)
@@ -1202,19 +1182,19 @@ void BufferView::Pimpl::setState()
 
 void BufferView::Pimpl::insetSleep()
 {
-       if (bv_->theLockingInset() && !bv_->inset_slept) {
+       if (bv_->theLockingInset() && !inset_slept) {
                bv_->theLockingInset()->GetCursorPos(bv_, bv_->slx, bv_->sly);
                bv_->theLockingInset()->InsetUnlock(bv_);
-               bv_->inset_slept = true;
+               inset_slept = true;
        }
 }
 
 
 void BufferView::Pimpl::insetWakeup()
 {
-       if (bv_->theLockingInset() && bv_->inset_slept) {
+       if (bv_->theLockingInset() && inset_slept) {
                bv_->theLockingInset()->Edit(bv_, bv_->slx, bv_->sly, 0);
-               bv_->inset_slept = false;
+               inset_slept = false;
        }
 }
 
@@ -1222,11 +1202,11 @@ void BufferView::Pimpl::insetWakeup()
 void BufferView::Pimpl::insetUnlock()
 {
        if (bv_->theLockingInset()) {
-               if (!bv_->inset_slept)
+               if (!inset_slept)
                        bv_->theLockingInset()->InsetUnlock(bv_);
                bv_->theLockingInset(0);
                bv_->text->FinishUndo();
-               bv_->inset_slept = false;
+               inset_slept = false;
        }
 }
 
@@ -1336,7 +1316,7 @@ void BufferView::Pimpl::moveCursorUpdate(bool selecting)
        if (selecting || lt->selection.mark()) {
                lt->SetSelection(bv_);
                if (lt->bv_owner)
-                       bv_->toggleToggle();
+                       toggleToggle();
        }
        update(lt, BufferView::SELECT|BufferView::FITCUR);
        showCursor();
@@ -1344,7 +1324,7 @@ void BufferView::Pimpl::moveCursorUpdate(bool selecting)
        /* ---> Everytime the cursor is moved, show the current font state. */
        // should this too me moved out of this func?
        //owner->showState();
-       bv_->setState();
+       setState();
 }
 
 
@@ -1355,8 +1335,7 @@ Inset * BufferView::Pimpl::getInsetByCode(Inset::Code code)
                find_if(Buffer::inset_iterator(
                        cursor.par(), cursor.pos()),
                        buffer_->inset_iterator_end(),
-                       lyx::compare_memfun(&Inset::LyxCode, code)
-                       );
+                       lyx::compare_memfun(&Inset::LyxCode, code));
        return it != buffer_->inset_iterator_end() ? (*it) : 0;
 }
 
@@ -1445,7 +1424,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                InsetCommandParams p;
                p.setCmdName("tableofcontents");
                Inset * inset = new InsetTOC(p);
-               if (!bv_->insertInset(inset, "Standard", true))
+               if (!insertInset(inset, "Standard"))
                        delete inset;
                break;
        }
@@ -1460,11 +1439,11 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
        case LFUN_INSET_GRAPHICS:
        {
                Inset * new_inset = new InsetGraphics;
-               if (!bv_->insertInset(new_inset)) {
+               if (!insertInset(new_inset)) {
                        delete new_inset;
                } else {
                        // this is need because you don't use a inset->Edit()
-                       bv_->updateInset(new_inset, true);
+                       updateInset(new_inset, true);
                        new_inset->Edit(bv_, 0, 0, 0);
                }
                break;
@@ -1501,11 +1480,11 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                break;
                
        case LFUN_GOTOERROR:
-               bv_->gotoInset(Inset::ERROR_CODE, false);
+               gotoInset(Inset::ERROR_CODE, false);
                break;
                
        case LFUN_GOTONOTE:
-               bv_->gotoInset(Inset::IGNORE_CODE, false);
+               gotoInset(Inset::IGNORE_CODE, false);
                break;
 
        case LFUN_REFERENCE_GOTO:
@@ -1513,7 +1492,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                vector<Inset::Code> tmp;
                tmp.push_back(Inset::LABEL_CODE);
                tmp.push_back(Inset::REF_CODE);
-               bv_->gotoInset(tmp, true);
+               gotoInset(tmp, true);
                break;
        }
 
@@ -1684,7 +1663,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                       | BufferView::FITCUR);
                lt->ChangeWordCase(bv_, LyXText::text_uppercase);
                if (lt->inset_owner)
-                       bv_->updateInset(lt->inset_owner, true);
+                       updateInset(lt->inset_owner, true);
                update(lt,
                       BufferView::SELECT
                       | BufferView::FITCUR
@@ -1699,7 +1678,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                update(lt, BufferView::SELECT|BufferView::FITCUR);
                lt->ChangeWordCase(bv_, LyXText::text_lowercase);
                if (lt->inset_owner)
-                       bv_->updateInset(lt->inset_owner, true);
+                       updateInset(lt->inset_owner, true);
                update(lt,
                       BufferView::SELECT
                       | BufferView::FITCUR
@@ -1715,7 +1694,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                lt->ChangeWordCase(bv_,
                                   LyXText::text_capitalization);
                if (lt->inset_owner)
-                       bv_->updateInset(lt->inset_owner, true);
+                       updateInset(lt->inset_owner, true);
                update(lt,
                       BufferView::SELECT
                       | BufferView::FITCUR
@@ -1730,7 +1709,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                update(lt, BufferView::SELECT|BufferView::FITCUR);
                lt->TransposeChars(*bv_);
                if (lt->inset_owner)
-                       bv_->updateInset(lt->inset_owner, true);
+                       updateInset(lt->inset_owner, true);
                update(lt,
                       BufferView::SELECT
                       | BufferView::FITCUR
@@ -1752,10 +1731,10 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                        p.setFromString(argument);
 
                        InsetRef * inset = new InsetRef(p, *buffer_);
-                       if (!bv_->insertInset(inset))
+                       if (!insertInset(inset))
                                delete inset;
                        else
-                               bv_->updateInset(inset, true);
+                               updateInset(inset, true);
                }
                break;
 
@@ -2656,17 +2635,17 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                p.setFromString( argument );
 
                InsetUrl * inset = new InsetUrl( p );
-               if (!bv_->insertInset(inset))
+               if (!insertInset(inset))
                        delete inset;
                else
-                       bv_->updateInset( inset, true );
+                       updateInset( inset, true );
        }
        break;
        
        case LFUN_INSET_TEXT:
        {
                InsetText * new_inset = new InsetText;
-               if (bv_->insertInset(new_inset))
+               if (insertInset(new_inset))
                        new_inset->Edit(bv_, 0, 0, 0);
                else
                        delete new_inset;
@@ -2676,7 +2655,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
        case LFUN_INSET_ERT:
        {
                InsetERT * new_inset = new InsetERT;
-               if (bv_->insertInset(new_inset))
+               if (insertInset(new_inset))
                        new_inset->Edit(bv_, 0, 0, 0);
                else
                        delete new_inset;
@@ -2686,7 +2665,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
        case LFUN_INSET_EXTERNAL:
        {
                InsetExternal * new_inset = new InsetExternal;
-               if (bv_->insertInset(new_inset))
+               if (insertInset(new_inset))
                        new_inset->Edit(bv_, 0, 0, 0);
                else
                        delete new_inset;
@@ -2696,7 +2675,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
        case LFUN_INSET_FOOTNOTE:
        {
                InsetFoot * new_inset = new InsetFoot;
-               if (bv_->insertInset(new_inset))
+               if (insertInset(new_inset))
                        new_inset->Edit(bv_, 0, 0, 0);
                else
                        delete new_inset;
@@ -2706,7 +2685,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
        case LFUN_INSET_MARGINAL:
        {
                InsetMarginal * new_inset = new InsetMarginal;
-               if (bv_->insertInset(new_inset))
+               if (insertInset(new_inset))
                        new_inset->Edit(bv_, 0, 0, 0);
                else
                        delete new_inset;
@@ -2716,7 +2695,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
        case LFUN_INSET_MINIPAGE:
        {
                InsetMinipage * new_inset = new InsetMinipage;
-               if (bv_->insertInset(new_inset))
+               if (insertInset(new_inset))
                        new_inset->Edit(bv_, 0, 0, 0);
                else
                        delete new_inset;
@@ -2728,7 +2707,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                // check if the float type exist
                if (floatList.typeExist(argument)) {
                        InsetFloat * new_inset = new InsetFloat(argument);
-                       if (bv_->insertInset(new_inset))
+                       if (insertInset(new_inset))
                                new_inset->Edit(bv_, 0, 0, 0);
                        else
                                delete new_inset;
@@ -2746,7 +2725,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                if (floatList.typeExist(argument)) {
                        InsetFloat * new_inset = new InsetFloat(argument);
                        new_inset->wide(true);
-                       if (bv_->insertInset(new_inset))
+                       if (insertInset(new_inset))
                                new_inset->Edit(bv_, 0, 0, 0);
                        else
                                delete new_inset;
@@ -2761,7 +2740,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
        case LFUN_INSET_LIST:
        {
                InsetList * new_inset = new InsetList;
-               if (bv_->insertInset(new_inset))
+               if (insertInset(new_inset))
                        new_inset->Edit(bv_, 0, 0, 0);
                else
                        delete new_inset;
@@ -2771,7 +2750,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
        case LFUN_INSET_THEOREM:
        {
                InsetTheorem * new_inset = new InsetTheorem;
-               if (bv_->insertInset(new_inset))
+               if (insertInset(new_inset))
                        new_inset->Edit(bv_, 0, 0, 0);
                else
                        delete new_inset;
@@ -2789,7 +2768,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                        new_inset->SetAutoBreakRows(true);
                        new_inset->SetDrawFrame(0, InsetText::LOCKED);
                        new_inset->SetFrameColor(0, LColor::footnoteframe);
-                       if (bv_->insertInset(new_inset))
+                       if (insertInset(new_inset))
                                new_inset->Edit(bv_, 0, 0, 0);
                        else
                                delete new_inset;
@@ -2799,12 +2778,13 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
        
        case LFUN_INSET_TABULAR:
        {
-               int r = 2, c = 2;
+               int r = 2;
+               int c = 2;
                if (!argument.empty())
                        ::sscanf(argument.c_str(),"%d%d", &r, &c);
                InsetTabular * new_inset =
                        new InsetTabular(*buffer_, r, c);
-               bool rtl =
+               bool const rtl =
                        bv_->getLyXText()->real_current_font.isRightToLeft();
                if (!open_new_inset(new_inset, rtl))
                        delete new_inset;
@@ -2832,6 +2812,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                
        case LFUN_SETXY:
        {
+#warning Should check sscanf for errors (Lgb)
                int x;
                int y;
                ::sscanf(argument.c_str(), " %d %d", &x, &y);
@@ -2960,10 +2941,10 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                p.setFromString( argument );
 
                InsetCitation * inset = new InsetCitation( p );
-               if (!bv_->insertInset(inset))
+               if (!insertInset(inset))
                        delete inset;
                else
-                       bv_->updateInset( inset, true );
+                       updateInset( inset, true );
        }
        break;
                    
@@ -2980,7 +2961,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                InsetCommandParams p( "BibTeX", db, bibstyle );
                InsetBibtex * inset = new InsetBibtex(p);
                
-               if (bv_->insertInset(inset)) {
+               if (insertInset(inset)) {
                        if (argument.empty())
                                inset->Edit(bv_, 0, 0, 0);
                } else
@@ -3048,10 +3029,10 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                p.setFromString(argument);
                InsetIndex * inset = new InsetIndex(p);
 
-               if (!bv_->insertInset(inset))
+               if (!insertInset(inset))
                        delete inset;
                else
-                       bv_->updateInset(inset, true);
+                       updateInset(inset, true);
        }
        break;
                    
@@ -3069,10 +3050,10 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                InsetCommandParams p("index", curstring);
                InsetIndex * inset = new InsetIndex(p);
 
-               if (!bv_->insertInset(inset))
+               if (!insertInset(inset))
                        delete inset;
                else
-                       bv_->updateInset(inset, true);
+                       updateInset(inset, true);
        }
        break;
 
@@ -3080,7 +3061,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
        {
                InsetCommandParams p("printindex");
                Inset * inset = new InsetPrintIndex(p);
-               if (!bv_->insertInset(inset, "Standard", true))
+               if (!insertInset(inset, "Standard"))
                        delete inset;
        }
        break;
@@ -3090,7 +3071,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                lyxerr << "arg " << argument << endl;
                InsetCommandParams p( "lyxparent", argument );
                Inset * inset = new InsetParent(p, *buffer_);
-               if (!bv_->insertInset(inset, "Standard", true))
+               if (!insertInset(inset, "Standard"))
                        delete inset;
        }
                 
@@ -3103,10 +3084,10 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
                p.masterFilename_ = buffer_->fileName();
 
                InsetInclude * inset = new InsetInclude(p);
-               if (!bv_->insertInset(inset))
+               if (!insertInset(inset))
                        delete inset;
                else {
-                       bv_->updateInset(inset, true);
+                       updateInset(inset, true);
                        bv_->owner()->getDialogs()->showInclude(inset);
                }
        }
@@ -3116,7 +3097,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
        {
                // We should check the argument for validity. (Lgb)
                Inset * inset = new InsetFloatList(argument);
-               if (!bv_->insertInset(inset, "Standard", true))
+               if (!insertInset(inset, "Standard"))
                        delete inset;
        }
        break;
@@ -3258,10 +3239,10 @@ void BufferView::Pimpl::protectedBlank(LyXText * lt)
                update(lt, BufferView::SELECT|BufferView::FITCUR);
                InsetSpecialChar * new_inset =
                        new InsetSpecialChar(InsetSpecialChar::PROTECTED_SEPARATOR);
-               if (!bv_->insertInset(new_inset))
+               if (!insertInset(new_inset))
                        delete new_inset;
                else
-                       bv_->updateInset(new_inset, true);
+                       updateInset(new_inset, true);
        }
 }
 
@@ -3275,7 +3256,7 @@ void BufferView::Pimpl::menuSeparator()
                update(lt, BufferView::SELECT|BufferView::FITCUR);
                InsetSpecialChar * new_inset = 
                        new InsetSpecialChar(InsetSpecialChar::MENU_SEPARATOR);
-               bv_->insertInset(new_inset);
+               insertInset(new_inset);
        }
 }
 
@@ -3287,7 +3268,7 @@ void BufferView::Pimpl::endOfSentenceDot()
                update(bv_->getLyXText(), BufferView::SELECT|BufferView::FITCUR);
                InsetSpecialChar * new_inset = 
                        new InsetSpecialChar(InsetSpecialChar::END_OF_SENTENCE);
-               bv_->insertInset(new_inset);
+               insertInset(new_inset);
        }
 }
 
@@ -3299,7 +3280,7 @@ void BufferView::Pimpl::ldots()
                update(bv_->getLyXText(), BufferView::SELECT|BufferView::FITCUR);
                InsetSpecialChar * new_inset = 
                        new InsetSpecialChar(InsetSpecialChar::LDOTS);
-               bv_->insertInset(new_inset);
+               insertInset(new_inset);
        }
 }
 
@@ -3311,7 +3292,7 @@ void BufferView::Pimpl::hyphenationPoint()
                update(bv_->getLyXText(), BufferView::SELECT|BufferView::FITCUR);
                InsetSpecialChar * new_inset = 
                        new InsetSpecialChar(InsetSpecialChar::HYPHENATION);
-               bv_->insertInset(new_inset);
+               insertInset(new_inset);
        }
 }
 
@@ -3319,7 +3300,7 @@ void BufferView::Pimpl::hyphenationPoint()
 void BufferView::Pimpl::insertNote()
 {
        InsetInfo * new_inset = new InsetInfo();
-       bv_->insertInset(new_inset);
+       insertInset(new_inset);
        new_inset->Edit(bv_, 0, 0, 0);
 }
 
@@ -3331,7 +3312,7 @@ bool BufferView::Pimpl::open_new_inset(UpdatableInset * new_inset, bool behind)
        
        beforeChange(lt);
        lt->FinishUndo();
-       if (!bv_->insertInset(new_inset)) {
+       if (!insertInset(new_inset)) {
                delete new_inset;
                return false;
        }
@@ -3342,3 +3323,155 @@ bool BufferView::Pimpl::open_new_inset(UpdatableInset * new_inset, bool behind)
                new_inset->Edit(bv_, 0, 0, 0);
        return true;
 }
+
+
+bool BufferView::Pimpl::insertInset(Inset * inset, string const & lout)
+{
+       // if we are in a locking inset we should try to insert the
+       // inset there otherwise this is a illegal function now
+       if (bv_->theLockingInset()) {
+               if (bv_->theLockingInset()->InsertInsetAllowed(inset))
+                   return bv_->theLockingInset()->InsertInset(bv_, inset);
+               return false;
+       }
+
+       // not quite sure if we want this...
+       bv_->text->SetCursorParUndo(buffer_);
+       bv_->text->FreezeUndo();
+       
+       beforeChange(bv_->text);
+       if (!lout.empty()) {
+               update(bv_->text, BufferView::SELECT|BufferView::FITCUR);
+               bv_->text->BreakParagraph(bv_);
+               update(bv_->text, BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
+
+               if (bv_->text->cursor.par()->size()) {
+                       bv_->text->CursorLeft(bv_);
+                       
+                       bv_->text->BreakParagraph(bv_);
+                       update(bv_->text, BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
+               }
+
+               pair<bool, LyXTextClass::size_type> lres =
+                       textclasslist.NumberOfLayout(buffer_->params
+                                                    .textclass, lout);
+               LyXTextClass::size_type lay;
+               if (lres.first != false) {
+                       // layout found
+                       lay = lres.second;
+               } else {
+                       // layout not fount using default "Standard" (0)
+                       lay = 0;
+               }
+                
+               bv_->text->SetLayout(bv_, lay);
+               
+               bv_->text->SetParagraph(bv_, 0, 0,
+                                  0, 0,
+                                  VSpace(VSpace::NONE), VSpace(VSpace::NONE),
+                                  LYX_ALIGN_LAYOUT, 
+                                  string(),
+                                  0);
+               update(bv_->text, BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
+               
+               bv_->text->current_font.setLatex(LyXFont::OFF);
+       }
+       
+       bv_->text->InsertInset(bv_, inset);
+       update(bv_->text, BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
+
+       bv_->text->UnFreezeUndo();
+       return true;
+}
+
+
+void BufferView::Pimpl::updateInset(Inset * inset, bool mark_dirty)
+{
+       if (!inset)
+               return;
+
+       // first check for locking insets
+       if (bv_->theLockingInset()) {
+               if (bv_->theLockingInset() == inset) {
+                       if (bv_->text->UpdateInset(bv_, inset)) {
+                               update();
+                               if (mark_dirty) {
+                                       buffer_->markDirty();
+                               }
+                               updateScrollbar();
+                               return;
+                       }
+               } else if (bv_->theLockingInset()->UpdateInsetInInset(bv_, inset)) {
+                       if (bv_->text->UpdateInset(bv_,
+                                                  bv_->theLockingInset())) {
+                               update();
+                               if (mark_dirty){
+                                       buffer_->markDirty();
+                               }
+                               updateScrollbar();
+                               return;
+                       }
+               }
+       }
+  
+       // then check the current buffer
+       if (available()) {
+               hideCursor();
+               update(bv_->text, BufferView::UPDATE);
+               if (bv_->text->UpdateInset(bv_, inset)) {
+                       if (mark_dirty) {
+                               update(bv_->text,
+                                      BufferView::SELECT
+                                      | BufferView::FITCUR
+                                      | BufferView::CHANGE);
+                       } else {
+                               update(bv_->text, SELECT);
+                       }
+                       return;
+               }
+       }
+}
+
+
+void BufferView::Pimpl::gotoInset(vector<Inset::Code> const & codes,
+                                 bool same_content)
+{
+       if (!available()) return;
+       
+       hideCursor();
+       beforeChange(bv_->text);
+       update(bv_->text, BufferView::SELECT|BufferView::FITCUR);
+       
+       string contents;
+       if (same_content &&
+           bv_->text->cursor.par()->GetChar(bv_->text->cursor.pos()) == LyXParagraph::META_INSET) {
+               Inset const * inset = bv_->text->cursor.par()->GetInset(bv_->text->cursor.pos());
+               if (find(codes.begin(), codes.end(), inset->LyxCode())
+                   != codes.end())
+                       contents =
+                               static_cast<InsetCommand const *>(inset)->getContents();
+       }
+       
+       if (!bv_->text->GotoNextInset(bv_, codes, contents)) {
+               if (bv_->text->cursor.pos() 
+                   || bv_->text->cursor.par() != bv_->text->FirstParagraph()) {
+                       LyXCursor tmp = bv_->text->cursor;
+                       bv_->text->cursor.par(bv_->text->FirstParagraph());
+                       bv_->text->cursor.pos(0);
+                       if (!bv_->text->GotoNextInset(bv_, codes, contents)) {
+                               bv_->text->cursor = tmp;
+                               bv_->owner()->message(_("No more insets"));
+                       }
+               } else {
+                       bv_->owner()->message(_("No more insets"));
+               }
+       }
+       update(bv_->text, BufferView::SELECT|BufferView::FITCUR);
+       bv_->text->selection.cursor = bv_->text->cursor;
+}
+
+
+void BufferView::Pimpl::gotoInset(Inset::Code code, bool same_content)
+{
+       gotoInset(vector<Inset::Code>(1, code), same_content);
+}
index 59a2cba5f73a7c578e0614b0a11cee2a3fc7d6b6..f1234753cf994ca39185ffb3adf664ef7614f5e4 100644 (file)
@@ -118,6 +118,10 @@ struct BufferView::Pimpl : public SigC::Object {
        ///
        void center();
        ///
+       bool insertInset(Inset * inset, string const & lout = string());
+       ///
+       void updateInset(Inset * inset, bool mark_dirty);
+       ///
        bool Dispatch(kb_action action, string const & argument);
 private:
        ///
@@ -141,6 +145,11 @@ private:
        ///
        void insertNote();
        ///
+       void gotoInset(std::vector<Inset::Code> const & codes,
+                      bool same_content);
+       ///
+       void gotoInset(Inset::Code codes, bool same_content);
+       ///
        BufferView * bv_;
        ///
        LyXView * owner_;
@@ -152,10 +161,6 @@ private:
        long current_scrollbar_value;
        ///
        Timeout cursor_timeout;
-        ///
-       int last_click_x;
-       ///
-       int last_click_y;
        ///
        WorkArea workarea_;
        ///
@@ -188,5 +193,7 @@ private:
        Inset * getInsetByCode(Inset::Code code);
        ///
        void MenuInsertLyXFile(string const & filen);
+       ///
+       bool inset_slept;
 };
 #endif
index efe76281223ac4a20691629d72a6d1fbeff3f7f3..0bb70cf6d3669884323678e11ca7f146f6605636 100644 (file)
@@ -1,3 +1,14 @@
+2001-06-05  Lars Gullik Bjønnes  <larsbj@birdstep.com>
+
+       * BufferView_pimpl.C (updateScrollbar): simplify.
+
+       * BufferView2.C: don't include insets/insetinfo.h, change
+       prototype for insertInset and call the Pimpl version. let
+       updateInset call Pimpl version.
+
+       * BufferView.h: move inset_slept to BufferView::Pimpl, move
+       gotoInset to BufferView::Pimpl
+
 2001-06-01  Juergen Vigna  <jug@sad.it>
 
        * lyxfunc.C (Dispatch): LFUN_PREFIX don't call the update if we're
index 28dac54aec8fe3a583ec4879afe383f242f08cb8..25c91a8bd21e065d5303bef1f78bc83aab4feeb8 100644 (file)
@@ -62,7 +62,7 @@ void LyXAction::init()
        // occupies after the init is completed. It compiles several
        // magnitudes faster.
        
-       static bool init = false;
+       static bool init;
        if (init) return;
 
        struct lfun_item {
index 13eaa3a68af11b6a26e9590fba038e4068c0cb13..99f3aa442af16ab5acd1a2a1f092b6369d0a9832 100644 (file)
@@ -355,7 +355,7 @@ PainterBase & Painter::text(int x, int y, XChar2b const * s, int ls,
        } else {
                LyXFont smallfont(f);
                smallfont.decSize().decSize().setShape(LyXFont::UP_SHAPE);
-               static XChar2b c = {0, 0};
+               static XChar2b c;
                int tmpx = x;
                for (int i = 0; i < ls; ++i) {
                        if (s[i].byte1 == 0 && islower(s[i].byte2)) {
index cca2986bc122a7feec60e22502db2da1ea3d2d8a..f1ffab7c70a3f015a062a1cbe3782793a46b7f1c 100644 (file)
@@ -402,9 +402,9 @@ int WorkArea::work_area_handler(FL_OBJECT * ob, int event,
                // If you have a better way to handle "wild-output" of
                // characters after the key has been released than the one
                // below, please contact me. (Lgb)
-               static Time last_time_pressed = 0;
-               static unsigned int last_key_pressed = 0;
-               static unsigned int last_state_pressed = 0;
+               static Time last_time_pressed;
+               static unsigned int last_key_pressed;
+               static unsigned int last_state_pressed;
                lyxerr[Debug::KEY] << "Workarea Diff: "
                                   << xke->time - last_time_pressed
                                   << endl;
index 65d46a01ec8e1e8cc2d0314881f41dd16cebc8aa..f023ae0663dfff0ea601d92091ecaca8b34810e0 100644 (file)
@@ -362,11 +362,11 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, LyXParagraph *& par,
 #ifndef NO_PEXTRA_REALLY
        // This is super temporary but is needed to get the compability
        // mode for minipages work correctly together with new tabulars.
-       static int call_depth = 0;
+       static int call_depth;
        ++call_depth;
        bool checkminipage = false;
-       static LyXParagraph * minipar = 0;
-       static LyXParagraph * parBeforeMinipage = 0;
+       static LyXParagraph * minipar;
+       static LyXParagraph * parBeforeMinipage;
 #endif
        
        if (token[0] != '\\') {
index 455a4e9b48918cbbb3f8ceccb06b7657efc3fefa..65e2b427665992486acba1ed41f683d6b117e32e 100644 (file)
@@ -177,7 +177,7 @@ int lyxfont::width(XChar2b const * s, int n, LyXFont const & f)
        } else {
                // emulate smallcaps since X doesn't support this
                unsigned int result = 0;
-               static XChar2b c = {0, 0};
+               static XChar2b c;
                LyXFont smallfont(f);
                smallfont.decSize().decSize().setShape(LyXFont::UP_SHAPE);
                for (int i = 0; i < n; ++i) {
index 2258afdd68ecaa7f3084bc953e797906b159e899..0edb6f83a2c754495b43e075f26ba199f5e229c6 100644 (file)
@@ -171,7 +171,7 @@ string const ControlExternal::Browse(string const & input) const
        // FIXME: a temporary hack until the FileDialog interface is updated
        regexp += "|";
 
-       static int once = 0;
+       static int once;
        string current_path;
 
        while (1) {
index eb422e29652cfc1c67b58a4ae6ae54a50981ba03..22664de1894116da39121fadbdbffb527dc517a9 100644 (file)
 
 #include "deco.xbm"
 
+
 static char const * decoration_names[] = {
        "widehat", "widetilde", "overbrace", "overleftarrow", "overrightarrow", 
        "overline", "underbrace", "underline"
 };
 
+
 static int const nr_decoration_names = sizeof(decoration_names) / sizeof(char const *);
  
 FormMathsDeco::FormMathsDeco(LyXView * lv, Dialogs * d,
index 38acff97e50574db21ec0ae725251b0154e043d9..b14e9d8bd649e0e30fdc11bdc7e23f6a82828a30 100644 (file)
@@ -1936,10 +1936,11 @@ void InsetFig::Preview(string const & p)
                lyxerr << "Can't view " << buf2 << endl;
 }
 
+
 void InsetFig::BrowseFile()
 {
        static string current_figure_path;
-       static int once = 0;
+       static int once;
 
        if (lyxerr.debugging()) {
                lyxerr << "Filename: "
index 36af524a47ab103c6f55b04ba9c606a8049d4be6..378d932afb0df38be12727b95ce2e02aa0ad31c9 100644 (file)
@@ -196,7 +196,8 @@ string const InsetInfo::EditMessage() const
 
 void InsetInfo::Edit(BufferView *bv, int, int, unsigned int)
 {
-       static int ow = -1, oh;
+       static int ow = -1;
+       static int oh;
 
        if (bv->buffer()->isReadonly())
                WarnReadonly(bv->buffer()->fileName());
index 4f1436b110474b5a8f6aa103047e2d328fd939a8..44e05f66a0865a26e8c9ec3d4b753fb816a33a2e 100644 (file)
@@ -1258,7 +1258,7 @@ string const &
 LyXTextClassList::NameOfLayout(LyXTextClassList::size_type textclass,
                               LyXTextClass::size_type layout) const
 {
-       static string dummy("dummy");
+       static string const dummy("dummy");
        classlist[textclass].load();
        if (layout < classlist[textclass].numLayouts())
                return classlist[textclass][layout].name();
@@ -1270,7 +1270,7 @@ LyXTextClassList::NameOfLayout(LyXTextClassList::size_type textclass,
 string const &
 LyXTextClassList::NameOfClass(LyXTextClassList::size_type number) const
 {
-       static string dummy("dummy");
+       static string const dummy("dummy");
        if (classlist.size() == 0) {
                return dummy;
        }
@@ -1283,7 +1283,7 @@ LyXTextClassList::NameOfClass(LyXTextClassList::size_type number) const
 string const &
 LyXTextClassList::LatexnameOfClass(LyXTextClassList::size_type number) const
 {
-       static string dummy("dummy");
+       static string const dummy("dummy");
        classlist[number].load();
        if (classlist.size() == 0) {
                return dummy;
@@ -1297,7 +1297,7 @@ LyXTextClassList::LatexnameOfClass(LyXTextClassList::size_type number) const
 string const &
 LyXTextClassList::DescOfClass(LyXTextClassList::size_type number) const
 {
-       static string dummy("dummy");
+       static string const dummy("dummy");
        if (classlist.size() == 0) {
                return dummy;
        }
index 1ff937641a2012ac839fa9426e692bae64d9da69..68b39a01fe47502167c026357dbd11ca9a17e929 100644 (file)
@@ -1508,7 +1508,7 @@ void LyXFunc::MenuNew(bool fromTemplate)
                        initpath = trypath;
        }
 
-       static int newfile_number = 0;
+       static int newfile_number;
        string s;
        
        if (lyxrc.new_ask_filename) {
index 696af6d90223848a2c0e27a28f4a9c05863c59e5..6774868ff8ce03caa2a0ae29bc3b69e4b9887215 100644 (file)
@@ -685,7 +685,7 @@ InsetFormula::LocalDispatch(BufferView * bv, kb_action action,
        bool space_on = false;
        bool was_selection = mathcursor->Selection();
        RESULT result = DISPATCHED;
-       static MathSpaceInset * sp= 0;
+       static MathSpaceInset * sp;
 
        HideInsetCursor(bv);
 
index c762e8e1aaf49da6e69c65ee5e36b8997bcfcf1c..a26dba9f759ff2abb9588ef1d5198cd037752550 100644 (file)
@@ -229,7 +229,7 @@ char LexGetArg(char lf, bool accept_spaces = false)
 
 int yylex(void)
 {
-       static int init_done = 0;
+       static int init_done;
        
        if (!init_done) LexInitCodes();
        
index 8232b8d999b647df7542ac7d95bda1974dd2d6fb..b878f26d47a073bf502278b96581f612492365bd 100644 (file)
@@ -22,7 +22,7 @@
 extern BufferList bufferlist;
 
 void emergencySave() {
-       static bool didSafe = false;
+       static bool didSafe;
        if (didSafe)
                return;
 
index 578bca69ffbf3d6119f627fd968a7cdd8a08c9e3..10335730aac05a05de296288debc686638ebdd97 100644 (file)
@@ -466,12 +466,12 @@ int DestroyTmpDir(string const & tmpdir, bool Allfiles)
 
 string const CreateBufferTmpDir(string const & pathfor)
 {
-       static int count = 0;
+       static int count;
        static string const tmpdir(pathfor.empty() ? os::getTmpDir() : pathfor);
        // We are in our own directory.  Why bother to mangle name?
        // In fact I wrote this code to circumvent a problematic behaviour (bug?)
        // of EMX mkstemp().
-       string tmpfl = tmpdir + "/lyx_tmpbuf" + tostr(count++);
+       string const tmpfl = tmpdir + "/lyx_tmpbuf" + tostr(count++);
        if (lyx::mkdir(tmpfl, 0777)) {
                WriteFSAlert(_("Error! Couldn't create temporary directory:"),
                             tmpdir);
index 7eaca2ece6e3a876476b5499a78cfb4b0701749b..09a410947bae7465cd9dbf869b65b5317be3e2b1 100644 (file)
@@ -1952,7 +1952,7 @@ void LyXText::charInserted()
 {
        // Here we could call FinishUndo for every 20 characters inserted.
        // This is from my experience how emacs does it.
-       static unsigned int counter = 0;
+       static unsigned int counter;
        if (counter < 20) {
                ++counter;
        } else {
index 4e2d45c20a7e5355057fe5d54436aab07ce8ea47..6edac6a44f243d0a40c4e2e83ba3bbe11644b944 100644 (file)
@@ -344,8 +344,9 @@ bool Trans::isAccentDefined(tex_accent accent, KmodInfo & i) const
 
 string const Trans::process(char c, TransManager & k)
 {
-       string dummy("?");
-       string dt = dummy;
+       //string dummy("?");
+       //string dt = dummy;
+       string dt("?");
        string const t = Match(static_cast<unsigned char>(c));
 
        if (t.empty() && c != 0) {