]> git.lyx.org Git - lyx.git/blobdiff - src/LyXFunc.cpp
I'll find a solution for the 'dirList problem', Abdel.
[lyx.git] / src / LyXFunc.cpp
index 627be90f70b0d9c241a1a10baa27c8b4a247eebb..7e9fe5a3da425b63634ebefa84e7716dd9695cc8 100644 (file)
 #include "Converter.h"
 #include "Cursor.h"
 #include "CutAndPaste.h"
-#include "debug.h"
+#include "support/debug.h"
 #include "DispatchResult.h"
 #include "Encoding.h"
 #include "ErrorList.h"
 #include "Format.h"
 #include "FuncRequest.h"
 #include "FuncStatus.h"
-#include "gettext.h"
+#include "support/gettext.h"
 #include "InsetIterator.h"
 #include "Intl.h"
 #include "KeyMap.h"
@@ -93,8 +93,6 @@
 #include "support/convert.h"
 #include "support/os.h"
 
-#include <boost/current_function.hpp>
-
 #include <sstream>
 
 using std::endl;
@@ -197,7 +195,8 @@ bool import(LyXView * lv, FileName const & filename,
                        : changeExtension(filename.absFilename(),
                                          formats.extension(loader_format));
                lv->view()->insertPlaintextFile(filename2, as_paragraphs);
-               lv->dispatch(FuncRequest(LFUN_MARK_OFF));
+               theLyXFunc().setLyXView(lv);
+               lyx::dispatch(FuncRequest(LFUN_MARK_OFF));
        }
 
        // we are done
@@ -411,8 +410,7 @@ void LyXFunc::processKeySym(KeySymbol const & keysym, KeyModifier state)
        cancel_meta_seq.reset();
 
        FuncRequest func = cancel_meta_seq.addkey(keysym, state);
-       LYXERR(Debug::KEY, BOOST_CURRENT_FUNCTION
-                          << " action first set to [" << func.action << ']');
+       LYXERR(Debug::KEY, "action first set to [" << func.action << ']');
 
        // When not cancel or meta-fake, do the normal lookup.
        // Note how the meta_fake Mod1 bit is OR-ed in and reset afterwards.
@@ -420,8 +418,7 @@ void LyXFunc::processKeySym(KeySymbol const & keysym, KeyModifier state)
        if ((func.action != LFUN_CANCEL) && (func.action != LFUN_META_PREFIX)) {
                // remove Caps Lock and Mod2 as a modifiers
                func = keyseq.addkey(keysym, (state | meta_fake_bit));
-               LYXERR(Debug::KEY, BOOST_CURRENT_FUNCTION
-                       << "action now set to [" << func.action << ']');
+               LYXERR(Debug::KEY, "action now set to [" << func.action << ']');
        }
 
        // Dont remove this unless you know what you are doing.
@@ -431,9 +428,8 @@ void LyXFunc::processKeySym(KeySymbol const & keysym, KeyModifier state)
        if (func.action == LFUN_NOACTION)
                func = FuncRequest(LFUN_COMMAND_PREFIX);
 
-       LYXERR(Debug::KEY, BOOST_CURRENT_FUNCTION
-               << " Key [action=" << func.action << "]["
-               << to_utf8(keyseq.print(KeySequence::Portable)) << ']');
+       LYXERR(Debug::KEY, " Key [action=" << func.action << "]["
+               << keyseq.print(KeySequence::Portable) << ']');
 
        // already here we know if it any point in going further
        // why not return already here if action == -1 and
@@ -847,35 +843,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
        } else {
                switch (action) {
 
-               // Let the frontend dispatch its own actions.
-               case LFUN_WINDOW_NEW:
-               case LFUN_WINDOW_CLOSE:
-               case LFUN_LYX_QUIT:
-                       BOOST_ASSERT(theApp());
-                       theApp()->dispatch(cmd);
-                       // Nothing more to do.
-                       return;
-
-               // Let lyx_view_ dispatch its own actions.
-               case LFUN_BUFFER_SWITCH:
-               case LFUN_BUFFER_NEXT:
-               case LFUN_BUFFER_PREVIOUS:
-               case LFUN_COMMAND_EXECUTE:
-               case LFUN_DROP_LAYOUTS_CHOICE:
-               case LFUN_MENU_OPEN:
-               case LFUN_TOOLBAR_TOGGLE:
-               case LFUN_DIALOG_UPDATE:
-               case LFUN_DIALOG_TOGGLE:
-               case LFUN_DIALOG_DISCONNECT_INSET:
-               case LFUN_DIALOG_HIDE:
-               case LFUN_DIALOG_SHOW:
-               case LFUN_INSET_APPLY:
-                       BOOST_ASSERT(lyx_view_);
-                       lyx_view_->dispatch(cmd);
-                       if (lyx_view_->view())
-                               updateFlags = lyx_view_->view()->cursor().result().update();
-                       break;
-
                case LFUN_WORD_FIND_FORWARD:
                case LFUN_WORD_FIND_BACKWARD: {
                        BOOST_ASSERT(lyx_view_ && lyx_view_->view());
@@ -976,7 +943,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                                        if (!b->isClean()) {
                                                if (!b->isUnnamed()) {
                                                        b->menuWrite();
-                                                       lyxerr[Debug::ACTION] << "Saved " << b->absFileName() << endl;
+                                                       LYXERR(Debug::ACTION, "Saved " << b->absFileName());
                                                } else
                                                        b->writeAs();
                                        }
@@ -1487,7 +1454,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                                // Set the parent name of the child document.
                                // This makes insertion of citations and references in the child work,
                                // when the target is in the parent or another child document.
-                               child->setParentName(parent->absFileName());
+                               child->setParent(parent);
                                updateLabels(*child->masterBuffer());
                                lyx_view_->setBuffer(child);
                                if (parsed)
@@ -1844,10 +1811,29 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        break;
 
                default: {
+                       BOOST_ASSERT(theApp());
+                       // Let the frontend dispatch its own actions.
+                       if (theApp()->dispatch(cmd))
+                               // Nothing more to do.
+                               return;
+
+                       // Let the current LyXView dispatch its own actions.
                        BOOST_ASSERT(lyx_view_);
+                       if (lyx_view_->dispatch(cmd)) {
+                               if (lyx_view_->view())
+                                       updateFlags = lyx_view_->view()->cursor().result().update();
+                               break;
+                       }
+
+                       // FIXME: Probably a good idea to inverse the Cursor and BufferView
+                       // dispatching.
+
+                       // Let the current Cursor dispatch its own actions.
+                       BOOST_ASSERT(lyx_view_->view());
                        view()->cursor().dispatch(cmd);
                        updateFlags = view()->cursor().result().update();
                        if (!view()->cursor().result().dispatched())
+                               // Let the current BufferView dispatch its own actions.
                                updateFlags = view()->dispatch(cmd);
                        break;
                }
@@ -1868,9 +1854,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
 
                        //Do we have a selection?
                        theSelection().haveSelection(view()->cursor().selection());
-
-                       if (view()->cursor().inTexted()) {
-                       }
                }
        }
        if (!quitting && lyx_view_) {
@@ -2304,6 +2287,7 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new)
                                support::package().document_dir() = FileName(lyxrc.document_path);
                }
        case LyXRC::RC_ESC_CHARS:
+       case LyXRC::RC_EXAMPLEPATH:
        case LyXRC::RC_FONT_ENCODING:
        case LyXRC::RC_FORMAT:
        case LyXRC::RC_INDEX_COMMAND: