#include "GuiImplementation.h"
#include "GuiWorkArea.h"
-#include "QtView.h"
+#include "GuiView.h"
using boost::shared_ptr;
namespace lyx {
namespace frontend {
-GuiImplementation::GuiImplementation(QtView & owner): owner_(owner), max_id_(0)
+GuiImplementation::GuiImplementation(GuiView & owner): owner_(owner), max_id_(0)
{
}
namespace frontend {
class GuiWorkArea;
-class QtView;
+class GuiView;
/**
* The GuiImplementation class is the interface to all Qt4 components.
class GuiImplementation: public Gui
{
public:
- GuiImplementation(QtView & owner);
+ GuiImplementation(GuiView & owner);
virtual ~GuiImplementation() {}
Clipboard& clipboard();
///
std::map<int, boost::shared_ptr<GuiWorkArea> > work_areas_;
///
- QtView & owner_;
+ GuiView & owner_;
///
size_t max_id_;
};
--- /dev/null
+/**
+ * \file GuiView.C
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Lars Gullik Bjønnes
+ * \author John Levon
+ * \author Abdelrazak Younes
+ *
+ * Full author contact details are available in file CREDITS.
+ */
+
+#undef QT3_SUPPORT
+
+#include <config.h>
+
+#include "BufferView.h"
+#include "lyx_cb.h"
+#include "lyxrc.h"
+#include "lyx_main.h"
+#include "session.h"
+#include "lyxfunc.h"
+#include "MenuBackend.h"
+#include "funcrequest.h"
+#include "funcrequest.h"
+
+#include "debug.h"
+
+#include "frontends/Toolbars.h"
+
+#include "support/filetools.h"
+
+#include "support/convert.h"
+#include <boost/bind.hpp>
+
+#include "GuiView.h"
+#include "QLMenubar.h"
+#include "FontLoader.h"
+#include "QCommandBuffer.h"
+#include "qt_helpers.h"
+
+#include <QApplication>
+#include <QPixmap>
+#include <QStatusBar>
+#include <QToolBar>
+#include <QCloseEvent>
+#include <QAction>
+//#include <QMenu>
+//#include <QMenuBar>
+
+#include "support/lstrings.h"
+
+
+using std::string;
+using std::endl;
+
+FontLoader fontloader;
+
+namespace lyx {
+
+using support::subst;
+using support::libFileSearch;
+
+namespace frontend {
+
+namespace {
+
+int const statusbar_timer_value = 3000;
+
+} // namespace anon
+
+
+GuiView::GuiView(unsigned int width, unsigned int height)
+ : QMainWindow(), LyXView(), commandbuffer_(0), frontend_(*this)
+{
+ mainWidget_ = this;
+
+// setToolButtonStyle(Qt::ToolButtonIconOnly);
+// setIconSize(QSize(12,12));
+
+ bufferview_.reset(new BufferView(this, width, height));
+
+ menubar_.reset(new QLMenubar(this, menubackend));
+ connect(menuBar(), SIGNAL(triggered(QAction *)), this, SLOT(updateMenu(QAction *)));
+
+ getToolbars().init();
+
+ statusBar()->setSizeGripEnabled(false);
+
+ view_state_changed.connect(boost::bind(&GuiView::update_view_state, this));
+ connect(&statusbar_timer_, SIGNAL(timeout()), this, SLOT(update_view_state_qt()));
+
+#ifndef Q_WS_MACX
+ // assign an icon to main form. We do not do it under Qt/Mac,
+ // since the icon is provided in the application bundle.
+ string const iconname = libFileSearch("images", "lyx", "xpm");
+ if (!iconname.empty())
+ setWindowIcon(QPixmap(toqstr(iconname)));
+#endif
+
+ // make sure the buttons are disabled if needed
+ updateToolbars();
+}
+
+
+GuiView::~GuiView()
+{
+}
+
+void GuiView::updateMenu(QAction *action)
+{
+ menubar_->update();
+}
+
+void GuiView::setWindowTitle(string const & t, string const & it)
+{
+ QMainWindow::setWindowTitle(toqstr(t));
+ QMainWindow::setWindowIconText(toqstr(it));
+}
+
+
+void GuiView::addCommandBuffer(QToolBar * toolbar)
+{
+ commandbuffer_ = new QCommandBuffer(this, *controlcommand_);
+ focus_command_buffer.connect(boost::bind(&GuiView::focus_command_widget, this));
+ toolbar->addWidget(commandbuffer_);
+}
+
+
+void GuiView::message(string const & str)
+{
+ statusBar()->showMessage(toqstr(str));
+ statusbar_timer_.stop();
+ statusbar_timer_.start(statusbar_timer_value);
+}
+
+
+void GuiView::clearMessage()
+{
+ update_view_state_qt();
+}
+
+
+void GuiView::focus_command_widget()
+{
+ if (commandbuffer_)
+ commandbuffer_->focus_command();
+}
+
+
+void GuiView::update_view_state_qt()
+{
+ statusBar()->showMessage(toqstr(getLyXFunc().viewStatusMessage()));
+ statusbar_timer_.stop();
+}
+
+
+void GuiView::update_view_state()
+{
+ // let the user see the explicit message
+ if (statusbar_timer_.isActive())
+ return;
+
+ statusBar()->showMessage(toqstr(getLyXFunc().viewStatusMessage()));
+}
+
+
+void GuiView::activated(FuncRequest const & func)
+{
+ getLyXFunc().dispatch(func);
+}
+
+
+bool GuiView::hasFocus() const
+{
+ return qApp->activeWindow() == this;
+}
+
+
+void GuiView::closeEvent(QCloseEvent *)
+{
+ QRect geometry = normalGeometry();
+ Session & session = LyX::ref().session();
+ // save windows size and position
+ session.saveSessionInfo("WindowWidth", convert<string>(geometry.width()));
+ session.saveSessionInfo("WindowHeight", convert<string>(geometry.height()));
+ session.saveSessionInfo("WindowIsMaximized", (isMaximized() ? "yes" : "no"));
+ if (lyxrc.geometry_xysaved) {
+ session.saveSessionInfo("WindowPosX", convert<string>(geometry.x()));
+ session.saveSessionInfo("WindowPosY", convert<string>(geometry.y()));
+ }
+ // trigger LFUN_LYX_QUIT instead of quit directly
+ // since LFUN_LYX_QUIT may have more cleanup stuff
+ getLyXFunc().dispatch(FuncRequest(LFUN_LYX_QUIT));
+}
+
+
+void GuiView::show()
+{
+ QMainWindow::setWindowTitle(qt_("LyX"));
+ QMainWindow::show();
+}
+
+
+void GuiView::busy(bool yes) const
+{
+ if (yes)
+ QApplication::setOverrideCursor(Qt::WaitCursor);
+ else
+ QApplication::restoreOverrideCursor();
+}
+
+QMainWindow* GuiView::mainWidget()
+{
+ return mainWidget_;
+}
+
+QMainWindow* GuiView::mainWidget_ = 0;
+
+
+} // namespace frontend
+} // namespace lyx
+
+#include "GuiView_moc.cpp"
--- /dev/null
+// -*- C++ -*-
+/**
+ * \file GuiView.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Lars Gullik Bjornes
+ * \author John Levon
+ * \author Abdelrazak Younes
+ *
+ * Full author contact details are available in file CREDITS.
+ */
+
+#ifndef GUIVIEW_H
+#define GUIVIEW_H
+
+// Must be here because of moc.
+#include <config.h>
+
+#include "GuiImplementation.h"
+
+#include "frontends/LyXView.h"
+#include "funcrequest.h"
+
+#include <QMainWindow>
+#include <QTimer>
+#include <QAction>
+#include <QCloseEvent>
+
+class QToolBar;
+
+//class FuncRequest;
+
+//class string;
+
+namespace lyx {
+namespace frontend {
+
+class QCommandBuffer;
+
+QWidget* mainWindow();
+
+/**
+ * GuiView - Qt4 implementation of LyXView
+ *
+ * Qt-private implementation of the main LyX window.
+ */
+class GuiView : public QMainWindow, public LyXView {
+ Q_OBJECT
+public:
+ /// create a main window of the given dimensions
+ GuiView(unsigned int w, unsigned int h);
+
+ ~GuiView();
+
+ /// show - display the top-level window
+ void show();
+
+ /// show busy cursor
+ virtual void busy(bool) const;
+
+ /// display a status message
+ virtual void message(std::string const & str);
+
+ /// clear status message
+ virtual void clearMessage();
+
+ /// add the command buffer
+ void addCommandBuffer(QToolBar * toolbar);
+
+ /// menu item has been selected
+ void activated(FuncRequest const &);
+
+ // returns true if this view has the focus.
+ virtual bool hasFocus() const;
+
+ //
+ Gui & gui() { return frontend_; }
+
+ static QMainWindow* mainWidget();
+
+public slots:
+ /// idle timeout
+ void update_view_state_qt();
+
+ /// populate a toplevel menu and all its children on demand
+ void updateMenu(QAction *);
+
+protected:
+ /// make sure we quit cleanly
+ virtual void closeEvent(QCloseEvent * e);
+private:
+ /// focus the command buffer widget
+ void focus_command_widget();
+
+ /// update status bar
+ void update_view_state();
+
+ /**
+ * setWindowTitle - set title of window
+ * @param t main window title
+ * @param it iconified (short) title
+ */
+ virtual void setWindowTitle(std::string const & t, std::string const & it);
+
+ QTimer statusbar_timer_;
+
+ /// command buffer
+ QCommandBuffer * commandbuffer_;
+
+ ///
+ static QMainWindow* mainWidget_;
+
+ GuiImplementation frontend_;
+};
+
+} // namespace frontend
+} // namespace lyx
+
+#endif // GUIVIEW_H
#include "GuiWorkArea.h"
#include "QLPainter.h"
#include "QLyXKeySym.h"
-#include "QtView.h"
+#include "GuiView.h"
#include "ColorCache.h"
#include "qt_helpers.h"
GuiWorkArea::GuiWorkArea(LyXView & owner, int w, int h)
-: QAbstractScrollArea(QtView::mainWidget()), WorkArea(owner, w, h), view_(owner), painter_(this)
+: QAbstractScrollArea(GuiView::mainWidget()), WorkArea(owner, w, h), view_(owner), painter_(this)
{
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- QtView::mainWidget()->setCentralWidget(this);
+ GuiView::mainWidget()->setCentralWidget(this);
setAcceptDrops(true);
// Qt defines a macro 'signals' that clashes with a boost namespace.
// All is well if the namespace is visible first.
-#include "QtView.h"
+#include "GuiView.h"
#include "QCommandBuffer.h"
#include "QCommandEdit.h"
} // end of anon
-QCommandBuffer::QCommandBuffer(QtView * view, ControlCommandBuffer & control, QWidget * parent)
+QCommandBuffer::QCommandBuffer(GuiView * view, ControlCommandBuffer & control, QWidget * parent)
: QWidget(parent), view_(view), controller_(control)
{
QPixmap qpup(toqstr(libFileSearch("images", "up", "xpm")));
namespace frontend {
class QCommandEdit;
-class QtView;
+class GuiView;
class ControlCommandBuffer;
class QCommandBuffer : public QWidget {
Q_OBJECT
public:
- QCommandBuffer(QtView * view, ControlCommandBuffer & control, QWidget * parent=NULL);
+ QCommandBuffer(GuiView * view, ControlCommandBuffer & control, QWidget * parent=NULL);
/// focus the edit widget
void focus_command();
void down();
private:
/// owning view
- QtView * view_;
+ GuiView * view_;
/// controller
ControlCommandBuffer & controller_;
// Qt defines a macro 'signals' that clashes with a boost namespace.
// All is well if the namespace is visible first.
-#include "QtView.h"
+#include "GuiView.h"
#include "QLMenubar.h"
#include "QLPopupMenu.h"
// MacOSX specific stuff is at the end.
QLMenubar::QLMenubar(LyXView * view, MenuBackend & mbe)
- : owner_(static_cast<QtView*>(view)), menubackend_(mbe)
+ : owner_(static_cast<GuiView*>(view)), menubackend_(mbe)
{
macxMenuBarInit();
void QLMenubar::update()
{ }
-QtView * QLMenubar::view()
+GuiView * QLMenubar::view()
{
return owner_;
}
namespace frontend {
-class QtView;
+class GuiView;
class QLMenubar : public QObject, public Menubar {
Q_OBJECT
void openByName(std::string const &);
/// return the owning view
- QtView * view();
+ GuiView * view();
/// return the menu controller
MenuBackend const & backend();
void macxMenuBarInit();
/// owning view
- QtView * owner_;
+ GuiView * owner_;
/// menu controller
MenuBackend & menubackend_;
// Qt defines a macro 'signals' that clashes with a boost namespace.
// All is well if the namespace is visible first.
-#include "QtView.h"
+#include "GuiView.h"
#include "Action.h"
#include "QLPopupMenu.h"
#include "gettext.h"
#include "lyxfunc.h"
-#include "QtView.h"
+#include "GuiView.h"
#include "QLToolbar.h"
#include "Action.h"
#include "qt_helpers.h"
} // namespace anon
-QLayoutBox::QLayoutBox(QToolBar * toolbar, QtView & owner)
+QLayoutBox::QLayoutBox(QToolBar * toolbar, GuiView & owner)
: owner_(owner)
{
combo_ = new QComboBox;
namespace frontend {
QLToolbar::QLToolbar(ToolbarBackend::Toolbar const & tbb, LyXView & owner)
- : owner_(dynamic_cast<QtView &>(owner)),
+ : owner_(dynamic_cast<GuiView &>(owner)),
toolbar_(new QToolBar(qt_(tbb.gui_name), (QWidget*) &owner_)) //, getPosition(tbb.flags)))
{
/// \toto Move \a addToolBar call into QView because, in Qt4,
namespace frontend {
class QLayoutBox;
-class QtView;
+class GuiView;
class Action;
class QLayoutBox : public QObject, public LayoutBox {
Q_OBJECT
public:
- QLayoutBox(QToolBar *, QtView &);
+ QLayoutBox(QToolBar *, GuiView &);
/// select the right layout in the combox.
void set(std::string const & layout);
private:
QComboBox * combo_;
- QtView & owner_;
+ GuiView & owner_;
};
private:
std::vector<Action *> ActionVector;
- QtView & owner_;
+ GuiView & owner_;
QToolBar * toolbar_;
boost::scoped_ptr<QLayoutBox> layout_;
+++ /dev/null
-/**
- * \file QtView.C
- * This file is part of LyX, the document processor.
- * Licence details can be found in the file COPYING.
- *
- * \author Lars Gullik Bjønnes
- * \author John Levon
- * \author Abdelrazak Younes
- *
- * Full author contact details are available in file CREDITS.
- */
-
-#undef QT3_SUPPORT
-
-#include <config.h>
-
-#include "BufferView.h"
-#include "lyx_cb.h"
-#include "lyxrc.h"
-#include "lyx_main.h"
-#include "session.h"
-#include "lyxfunc.h"
-#include "MenuBackend.h"
-#include "funcrequest.h"
-#include "funcrequest.h"
-
-#include "debug.h"
-
-#include "frontends/Toolbars.h"
-
-#include "support/filetools.h"
-
-#include "support/convert.h"
-#include <boost/bind.hpp>
-
-#include "QtView.h"
-#include "QLMenubar.h"
-#include "FontLoader.h"
-#include "QCommandBuffer.h"
-#include "qt_helpers.h"
-
-#include <QApplication>
-#include <QPixmap>
-#include <QStatusBar>
-#include <QToolBar>
-#include <QCloseEvent>
-#include <QAction>
-//#include <QMenu>
-//#include <QMenuBar>
-
-#include "support/lstrings.h"
-
-
-using std::string;
-using std::endl;
-
-FontLoader fontloader;
-
-namespace lyx {
-
-using support::subst;
-using support::libFileSearch;
-
-namespace frontend {
-
-namespace {
-
-int const statusbar_timer_value = 3000;
-
-} // namespace anon
-
-
-QtView::QtView(unsigned int width, unsigned int height)
- : QMainWindow(), LyXView(), commandbuffer_(0), frontend_(*this)
-{
- mainWidget_ = this;
-
-// setToolButtonStyle(Qt::ToolButtonIconOnly);
-// setIconSize(QSize(12,12));
-
- bufferview_.reset(new BufferView(this, width, height));
-
- menubar_.reset(new QLMenubar(this, menubackend));
- connect(menuBar(), SIGNAL(triggered(QAction *)), this, SLOT(updateMenu(QAction *)));
-
- getToolbars().init();
-
- statusBar()->setSizeGripEnabled(false);
-
- view_state_changed.connect(boost::bind(&QtView::update_view_state, this));
- connect(&statusbar_timer_, SIGNAL(timeout()), this, SLOT(update_view_state_qt()));
-
-#ifndef Q_WS_MACX
- // assign an icon to main form. We do not do it under Qt/Mac,
- // since the icon is provided in the application bundle.
- string const iconname = libFileSearch("images", "lyx", "xpm");
- if (!iconname.empty())
- setWindowIcon(QPixmap(toqstr(iconname)));
-#endif
-
- // make sure the buttons are disabled if needed
- updateToolbars();
-}
-
-
-QtView::~QtView()
-{
-}
-
-void QtView::updateMenu(QAction *action)
-{
- menubar_->update();
-}
-
-void QtView::setWindowTitle(string const & t, string const & it)
-{
- QMainWindow::setWindowTitle(toqstr(t));
- QMainWindow::setWindowIconText(toqstr(it));
-}
-
-
-void QtView::addCommandBuffer(QToolBar * toolbar)
-{
- commandbuffer_ = new QCommandBuffer(this, *controlcommand_);
- focus_command_buffer.connect(boost::bind(&QtView::focus_command_widget, this));
- toolbar->addWidget(commandbuffer_);
-}
-
-
-void QtView::message(string const & str)
-{
- statusBar()->showMessage(toqstr(str));
- statusbar_timer_.stop();
- statusbar_timer_.start(statusbar_timer_value);
-}
-
-
-void QtView::clearMessage()
-{
- update_view_state_qt();
-}
-
-
-void QtView::focus_command_widget()
-{
- if (commandbuffer_)
- commandbuffer_->focus_command();
-}
-
-
-void QtView::update_view_state_qt()
-{
- statusBar()->showMessage(toqstr(getLyXFunc().viewStatusMessage()));
- statusbar_timer_.stop();
-}
-
-
-void QtView::update_view_state()
-{
- // let the user see the explicit message
- if (statusbar_timer_.isActive())
- return;
-
- statusBar()->showMessage(toqstr(getLyXFunc().viewStatusMessage()));
-}
-
-
-void QtView::activated(FuncRequest const & func)
-{
- getLyXFunc().dispatch(func);
-}
-
-
-bool QtView::hasFocus() const
-{
- return qApp->activeWindow() == this;
-}
-
-
-void QtView::closeEvent(QCloseEvent *)
-{
- QRect geometry = normalGeometry();
- Session & session = LyX::ref().session();
- // save windows size and position
- session.saveSessionInfo("WindowWidth", convert<string>(geometry.width()));
- session.saveSessionInfo("WindowHeight", convert<string>(geometry.height()));
- session.saveSessionInfo("WindowIsMaximized", (isMaximized() ? "yes" : "no"));
- if (lyxrc.geometry_xysaved) {
- session.saveSessionInfo("WindowPosX", convert<string>(geometry.x()));
- session.saveSessionInfo("WindowPosY", convert<string>(geometry.y()));
- }
- // trigger LFUN_LYX_QUIT instead of quit directly
- // since LFUN_LYX_QUIT may have more cleanup stuff
- getLyXFunc().dispatch(FuncRequest(LFUN_LYX_QUIT));
-}
-
-
-void QtView::show()
-{
- QMainWindow::setWindowTitle(qt_("LyX"));
- QMainWindow::show();
-}
-
-
-void QtView::busy(bool yes) const
-{
- if (yes)
- QApplication::setOverrideCursor(Qt::WaitCursor);
- else
- QApplication::restoreOverrideCursor();
-}
-
-QMainWindow* QtView::mainWidget()
-{
- return mainWidget_;
-}
-
-QMainWindow* QtView::mainWidget_ = 0;
-
-
-} // namespace frontend
-} // namespace lyx
-
-#include "QtView_moc.cpp"
+++ /dev/null
-// -*- C++ -*-
-/**
- * \file QtView.h
- * This file is part of LyX, the document processor.
- * Licence details can be found in the file COPYING.
- *
- * \author Lars Gullik Bjornes
- * \author John Levon
- * \author Abdelrazak Younes
- *
- * Full author contact details are available in file CREDITS.
- */
-
-#ifndef QTVIEW_H
-#define QTVIEW_H
-
-// Must be here because of moc.
-#include <config.h>
-
-#include "GuiImplementation.h"
-
-#include "frontends/LyXView.h"
-#include "funcrequest.h"
-
-#include <QMainWindow>
-#include <QTimer>
-#include <QAction>
-#include <QCloseEvent>
-
-class QToolBar;
-
-//class FuncRequest;
-
-//class string;
-
-namespace lyx {
-namespace frontend {
-
-class QCommandBuffer;
-
-QWidget* mainWindow();
-
-/**
- * QtView - Qt implementation of LyXView
- *
- * Qt-private implementation of the main LyX window.
- */
-class QtView : public QMainWindow, public LyXView {
- Q_OBJECT
-public:
- /// create a main window of the given dimensions
- QtView(unsigned int w, unsigned int h);
-
- ~QtView();
-
- /// show - display the top-level window
- void show();
-
- /// show busy cursor
- virtual void busy(bool) const;
-
- /// display a status message
- virtual void message(std::string const & str);
-
- /// clear status message
- virtual void clearMessage();
-
- /// add the command buffer
- void addCommandBuffer(QToolBar * toolbar);
-
- /// menu item has been selected
- void activated(FuncRequest const &);
-
- // returns true if this view has the focus.
- virtual bool hasFocus() const;
-
- //
- Gui & gui() { return frontend_; }
-
- static QMainWindow* mainWidget();
-
-public slots:
- /// idle timeout
- void update_view_state_qt();
-
- /// populate a toplevel menu and all its children on demand
- void updateMenu(QAction *);
-
-protected:
- /// make sure we quit cleanly
- virtual void closeEvent(QCloseEvent * e);
-private:
- /// focus the command buffer widget
- void focus_command_widget();
-
- /// update status bar
- void update_view_state();
-
- /**
- * setWindowTitle - set title of window
- * @param t main window title
- * @param it iconified (short) title
- */
- virtual void setWindowTitle(std::string const & t, std::string const & it);
-
- QTimer statusbar_timer_;
-
- /// command buffer
- QCommandBuffer * commandbuffer_;
-
- ///
- static QMainWindow* mainWidget_;
-
- GuiImplementation frontend_;
-};
-
-} // namespace frontend
-} // namespace lyx
-
-#endif // QTVIEW_H
#include <boost/bind.hpp>
#include <boost/shared_ptr.hpp>
-#include "QtView.h"
+#include "GuiView.h"
#include "ColorCache.h"
#include "FontLoader.h"
#include "QLImage.h"
using lyx::support::ltrim;
using lyx::support::package;
-using lyx::frontend::QtView;
+using lyx::frontend::GuiView;
using lyx::frontend::Application;
namespace os = lyx::support::os;
// this can't be done before because it needs the Languages object
initEncodings();
- boost::shared_ptr<QtView> view_ptr(new QtView(width, height));
+ boost::shared_ptr<GuiView> view_ptr(new GuiView(width, height));
LyX::ref().addLyXView(view_ptr);
- QtView & view = *view_ptr.get();
+ GuiView & view = *view_ptr.get();
view.init();