]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt2/QtView.C
Some string(widget->text()) fixes. Weirdness
[lyx.git] / src / frontends / qt2 / QtView.C
index f53c2cf19341c19ac043c5740e67b167fe2a5d18..4496cec0ce0279a496f9fd3d3cd84590d2b31328 100644 (file)
@@ -1,10 +1,12 @@
 /**
  * \file QtView.C
- * Copyright 1995-2002 the LyX Team
- * Read the file COPYING
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
- * \author Lars Gullik Bjornes <larsbj@lyx.org>
- * \author John Levon <moz@compsoc.man.ac.uk>
+ * \author Lars Gullik Bjornes
+ * \author John Levon
+ *
+ * Full author contact details are available in file CREDITS
  */
 
 #include <config.h>
@@ -18,7 +20,6 @@
 #include "lyx_cb.h"
 #include "support/filetools.h"
 #include "MenuBackend.h"
-#include "QMiniBuffer.h"
 #include "ToolbarDefaults.h"
 #include "lyxfunc.h"
 #include "bufferview_funcs.h"
 #include "frontends/Menubar.h"
 #include "frontends/Dialogs.h"
 #include "frontends/Timeout.h"
+
+#include <boost/bind.hpp>
+
 #include "QtView.h"
 #include "qfont_loader.h"
+#include "QCommandBuffer.h"
+
 #include <qapplication.h>
 #include <qpixmap.h>
 #include <qmenubar.h>
 #include <qstatusbar.h>
-#include <boost/bind.hpp>
+
 using std::endl;
 
+namespace {
+
+int const idle_timer_value = 3000;
+
+} // namespace anon
+
 // FIXME: this has to go away
 BufferView * current_view;
 
 qfont_loader fontloader;
 
+
 QtView::QtView(unsigned int width, unsigned int height)
        : QMainWindow(), LyXView()
 {
        resize(width, height);
-       qApp->setMainWidget(this);
-       menubar_.reset(new Menubar(this, menubackend));
 
-       connect(menuBar(), SIGNAL(activated(int)),
-               this, SLOT(activated(int)));
-       toolbar_.reset(new Toolbar(this, *getDialogs(), 0, 0, toolbardefaults));
-       toolbar_->set(true);
+       qApp->setMainWidget(this);
 
-       statusBar()->setSizeGripEnabled(false);
-       minibuffer_.reset(new QMiniBuffer(this)); 
        bufferview_.reset(new BufferView(this, 0, 0, width, height));
        ::current_view = bufferview_.get();
 
+       menubar_.reset(new Menubar(this, menubackend));
+       toolbar_.reset(new Toolbar(this, 0, 0, toolbardefaults));
+
+       statusBar()->setSizeGripEnabled(false);
+
        view_state_changed.connect(boost::bind(&QtView::update_view_state, this));
-       // FIXME: move 
-       // FIXME autosave_timeout_->timeout.connect(SigC::slot(this, &QtView::autoSave));
-       
-        //  assign an icon to main form
+       connect(&idle_timer_, SIGNAL(timeout()), this, SLOT(update_view_state_qt()));
+
+       idle_timer_.start(idle_timer_value);
+
+       focus_command_buffer.connect(boost::bind(&QtView::focus_command_widget, this));
+
+       commandbuffer_ = new QCommandBuffer(this, *controlcommand_);
+
+       addToolBar(commandbuffer_, Bottom, true);
+
+       //  assign an icon to main form
        string const iconname = LibFileSearch("images", "lyx", "xpm");
        if (!iconname.empty())
                setIcon(QPixmap(iconname.c_str()));
 
@@ -89,24 +96,44 @@ QtView::~QtView()
 }
 
 
+void QtView::message(string const & str)
+{
+       statusBar()->message(str.c_str());
+       idle_timer_.stop();
+       idle_timer_.start(idle_timer_value);
+}
+
+
+void QtView::focus_command_widget()
+{
+       commandbuffer_->focus_command();
+}
+
+
+void QtView::update_view_state_qt()
+{
+       statusBar()->message(currentState(view().get()).c_str());
+}
+
+
 void QtView::update_view_state()
 {
-       statusBar()->message(currentState(view()).c_str()); 
+       statusBar()->message(currentState(view().get()).c_str());
 }
 
+
 void QtView::activated(int id)
 {
-       getLyXFunc()->verboseDispatch(id, true);
+       getLyXFunc().dispatch(id, true);
 }
+
+
 void QtView::closeEvent(QCloseEvent *)
 {
        QuitLyX();
 }
 
+
 void QtView::show(int x, int y, string const & title)
 {
        move(x, y);
@@ -115,15 +142,16 @@ void QtView::show(int x, int y, string const & title)
 }
 
 
+// it's not at all clear that these are actually
+// needed anywhere in the source. Something to
+// check on a rainy day.
 void QtView::prohibitInput() const
 {
-       // FIXME
        //setFocusPolicy(QWidget::NoFocus);
 }
 
 
 void QtView::allowInput() const
 {
-       // FIXME
        //setFocusPolicy(QWidget::strongFocus);
 }