Hello,
Could someone please commit this? I would like applied before I the
following one which conatains compilation fixes for MacOSX.
Thanks in advance,
Abdel.
PS: Lars, I sent you a private email about this svn account, I don't
know if you received it.
Index: D:/msys/home/yns/src/lyx-svn/trunk/src/frontends/qt4/ChangeLog
===================================================================
--- D:/msys/home/yns/src/lyx-svn/trunk/src/frontends/qt4/ChangeLog
(revision 13339)
+++ D:/msys/home/yns/src/lyx-svn/trunk/src/frontends/qt4/ChangeLog
(working copy)
@@ -1,3 +1,15 @@
+2006-03-01 Abdelrazak Younes <[EMAIL PROTECTED]>
+
+ * QWorkArea.[Ch] cleanup:
+ - Added private members workWidth_ and workHeight_ in order to
+ make sure QWorkArea is always able to draw (link to
+ workArea::WorkAreaResize).
+ - deleted superfluous debugging stuff
+ - deleted superfluous commented out code.
+ - placed all specific stuff (Qt-immodule, X11 and Mac OSX) in a
+ separate place at the end of QWorkArea.C.
+ - initial support for Wheel mouse (still does not work).
+
2006-03-10 Georg Baum <[EMAIL PROTECTED]>
* QWorkArea.C (getClipboard): convert MAC to UNIX line endings on OSX
@@ -7,6 +19,39 @@
* add svn:ignore
+2006-03-01 Abdelrazak Younes <[EMAIL PROTECTED]>
+
+ Initial Port to Qt4.
+ * UI files: they have all been ported to Qt4 format.
+ - With Qt4, uic generates a header only class that is not a Q_OBJECT.
+ => No more need to compile anything in the ui directory.
+ => No more need to moc the header
+ - Signal/slot connection to external method is no more supported. I have
+ transfered all the connections to the corresponding Dialog classes.
+ - xxxBase and xxxModule renamed to xxxUi
+ - Remaining issue: there's still an error with BulletsUI.ui
+
+ * Dialogs.
+ All the dialogs have been ported but there still some Q3xxx objects.
+ Remaining issues:
+ - qttableview use replaced with QTableWidget: Dragging the define the
+ table with the mouse is not implemented.
+ - QTocDialog ported to QTreeWidget but not yet fully functional.
+ - BulletModule not fully been ported and not functional.
+ - Wheel mouse support not functional
+ - Toolbars are always positioned at the top.
+
+ * Important rewrites:
+ - QContentPane merged with QWorkArea which derives from
QAbstractScrollArea.
+ - QLPainter now use QPainter
+ - QLPopupmenu ported to QMenu.
+ - QtView ported to QMainWindow
+ - QLToolbar, QToc, QTocDialog, QPrefsDialog, QDocumentDialog...
+ - As Qt4 UI files do not define external signal/slot, I had to copy and
+ paste the code generated by former 'uic' in the *.C files into
+ corresponding Dialog classes. I think I have covered all connections
but
+ this has to be verified.
+
2005-12-14 Hartmut Haase <[EMAIL PROTECTED]>
* ui/QPrefLatexModule.ui: make the papersize choices in
Index: D:/msys/home/yns/src/lyx-svn/trunk/src/frontends/qt4/QWorkArea.C
===================================================================
--- D:/msys/home/yns/src/lyx-svn/trunk/src/frontends/qt4/QWorkArea.C
(revision 13339)
+++ D:/msys/home/yns/src/lyx-svn/trunk/src/frontends/qt4/QWorkArea.C
(working copy)
@@ -11,6 +11,8 @@
#include <config.h>
+#include <boost/current_function.hpp>
+
#include "QWorkArea.h"
#include "QLPainter.h"
#include "QLyXKeySym.h"
@@ -34,26 +36,30 @@
#include <QScrollBar>
#include <boost/bind.hpp>
-
-#ifdef Q_WS_X11
+
+///////////////////////////////////////////////////////////////
+// Specific stuff
+#ifdef Q_OS_X11
#include <X11/Xlib.h>
#endif
-#ifdef Q_WS_MACX
+#ifdef Q_OS_MACX
#include <Carbon/Carbon.h>
-#endif
+#include <support/lstrings.h>
+using lyx::support::subst;
+#endif
-#ifdef Q_OS_MAC
-#include <support/lstrings.h>
-
-using lyx::support::subst;
-#endif
+// You can find other qt-immodule, X11 and MACX specific stuff
+// at the end of this file...
+///////////////////////////////////////////////////////////////
+
using std::endl;
using std::string;
namespace os = lyx::support::os;
-namespace {
+namespace {
+
QWorkArea const * wa_ptr = 0;
/// return the LyX key state from Qt's
@@ -112,18 +118,10 @@
: timeout(200), restart_timeout(true),
x_old(-1), y_old(-1), scrollbar_value_old(-1.0)
{}
+
-
-
-Painter & QWorkArea::getPainter() { return painter_; }
-
-// QLPainter & QWorkArea::getQLPainter() { return painter_; }
-
-/// get the content pane widget
-QWidget * QWorkArea::getContent() const { return viewport(); }
-
QWorkArea::QWorkArea(LyXView &, int w, int h)
- : WorkArea(), QAbstractScrollArea(qApp->mainWidget()), painter_(this)
+ : QAbstractScrollArea(qApp->mainWidget()), WorkArea(), painter_(this)
{
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
@@ -132,69 +130,70 @@
setAcceptDrops(true);
- setMinimumSize(100, 70);
-
-// setBackgroundRole(lcolorcache.get(LColor::background));
-// viewport()->setBackgroundRole(QPalette::Window);
+ setMinimumSize(100, 70);
+
viewport()->setAutoFillBackground(false);
viewport()->setAttribute(Qt::WA_OpaquePaintEvent);
viewport()->setFocusPolicy(Qt::WheelFocus);
viewport()->setFocus();
-// viewport()->grabKeyboard();
- setFocusPolicy(Qt::WheelFocus);
- setFocusProxy(viewport());
+ setFocusPolicy(Qt::WheelFocus);
+
viewport()->setCursor(Qt::IBeamCursor);
-
- resize(w, h);
- show();
-
- scrolled_with_mouse_=false;
- scrolled_with_keyboard_ = false;
-
+
+ resize(w, h);
+ show();
+ workWidth_ = w;
+ workHeight_ = h;
+
synthetic_mouse_event_.timeout.timeout.connect(
boost::bind(&QWorkArea::generateSyntheticMouseEvent,
this));
-/*
- if ( !QObject::connect(&step_timer_, SIGNAL(timeout()),
- this, SLOT(keyeventTimeout())) )
- lyxerr[Debug::GUI] << "ERROR: keyeventTimeout cannot
connect!" << endl;
-*/
-
- if ( !QObject::connect(verticalScrollBar(),
SIGNAL(actionTriggered(int)),
- this, SLOT(adjustViewWithScrollBar(int))) )
- lyxerr[Debug::GUI] << "ERROR: adjustViewWithScrollBar
cannot connect!" << endl;
-#if USE_INPUT_METHODS
- // to make qt-immodule work
- setInputMethodEnabled(true);
-#endif
-#ifdef Q_WS_X11
- // doubleClickInterval() is 400 ms on X11 witch is just too long.
- // On Windows and Mac OS X, the operating system's value is used.
- // On Microsoft Windows, calling this function sets the double
- // click interval for all applications. So we don't!
- QApplication::setDoubleClickInterval(300);
-#endif
-
- // Start the timer, one-shot.
- step_timer_.start(50, true);
-
- //viewport()->resize(w, h);
- pixmap_.reset(new QPixmap(viewport()->width(), viewport()->height()));
-
- this->workAreaResize();
-
+ // Initialize the vertical Scroll Bar
+ QObject::connect(verticalScrollBar(), SIGNAL(actionTriggered(int)),
+ this, SLOT(adjustViewWithScrollBar(int)));
+
+ // PageStep only depends on the viewport height.
+ verticalScrollBar()->setPageStep(workHeight_);
+
lyxerr[Debug::GUI] << BOOST_CURRENT_FUNCTION
<< "\n Area width\t" << width()
<< "\n Area height\t" << height()
<< "\n viewport width\t" << viewport()->width()
<< "\n viewport height\t" << viewport()->height()
<< endl;
+
+/*
+ // This is the keyboard buffering stuff...
+ // I don't see any need for this under windows. The keyboard is reactive
+ // enough...
+
+ if ( !QObject::connect(&step_timer_, SIGNAL(timeout()),
+ this, SLOT(keyeventTimeout())) )
+ lyxerr[Debug::GUI] << "ERROR: keyeventTimeout cannot
connect!" << endl;
+
+ // Start the timer, one-shot.
+ step_timer_.start(50, true);
+*/
+
+ ///////////////////////////////////////////////////////////////////////
+ // Specific stuff goes here...
-// this->QWidget::resize(w,h);
+#if USE_INPUT_METHODS
+ // to make qt-immodule work
+ setInputMethodEnabled(true);
+#endif
+
+#ifdef Q_OS_X11
+ // doubleClickInterval() is 400 ms on X11 witch is just too long.
+ // On Windows and Mac OS X, the operating system's value is used.
+ // On Microsoft Windows, calling this function sets the double
+ // click interval for all applications. So we don't!
+ QApplication::setDoubleClickInterval(300);
+#endif
-#ifdef Q_WS_MACX
+#ifdef Q_OS_MACX
wa_ptr = this;
#endif
}
@@ -205,32 +204,13 @@
void QWorkArea::setScrollbarParams(int h, int scroll_pos, int scroll_line_step)
{
- /*
- if (scrolled_with_mouse_)
- {
- scrolled_with_mouse_=false;
- return;
- }
- */
-
- //if (scroll_pos_ == scroll_pos)
- //{
- // verticalScrollBar()->triggerAction(QAbstractSlider::SliderMove);
- int scroll_pos_ = scroll_pos;
- //}
- int scroll_line_step_ = scroll_line_step;
- int scroll_page_step_ = viewport()->height();
-
// do what cursor movement does (some grey)
h += height() / 4;
int scroll_max_ = std::max(0, h - height());
- //scrolled_with_keyboard_=true;
-
verticalScrollBar()->setRange(0, scroll_max_);
- verticalScrollBar()->setSliderPosition(scroll_pos_);
- verticalScrollBar()->setLineStep(scroll_line_step_);
- verticalScrollBar()->setPageStep(scroll_page_step_);
+ verticalScrollBar()->setSliderPosition(scroll_pos);
+ verticalScrollBar()->setLineStep(scroll_line_step);
}
void QWorkArea::adjustViewWithScrollBar(int action)
@@ -245,98 +225,12 @@
<< endl;
this->scrollDocView(verticalScrollBar()->sliderPosition());
-
-// scrolled_with_mouse_ = true;
}
-#ifdef Q_WS_X11
-bool lyxX11EventFilter(XEvent * xev)
-{
- switch (xev->type) {
- case SelectionRequest:
- lyxerr[Debug::GUI] << "X requested selection." << endl;
- if (wa_ptr)
- wa_ptr->selectionRequested();
- break;
- case SelectionClear:
- lyxerr[Debug::GUI] << "Lost selection." << endl;
- if (wa_ptr)
- wa_ptr->selectionLost();
- break;
- }
- return false;
-}
-#endif
-#ifdef Q_WS_MACX
-namespace{
-OSErr checkAppleEventForMissingParams(const AppleEvent& theAppleEvent)
- {
- DescType returnedType;
- Size actualSize;
- OSErr err = AEGetAttributePtr(&theAppleEvent, keyMissedKeywordAttr,
- typeWildCard, &returnedType, nil, 0,
- &actualSize);
- switch (err) {
- case errAEDescNotFound:
- return noErr;
- case noErr:
- return errAEEventNotHandled;
- default:
- return err;
- }
- }
-}
-
-pascal OSErr handleOpenDocuments(const AppleEvent* inEvent,
- AppleEvent* /*reply*/, long /*refCon*/)
-{
- QString s_arg;
- AEDescList documentList;
- OSErr err = AEGetParamDesc(inEvent, keyDirectObject, typeAEList,
- &documentList);
- if (err != noErr)
- return err;
-
- err = checkAppleEventForMissingParams(*inEvent);
- if (err == noErr) {
- long documentCount;
- err = AECountItems(&documentList, &documentCount);
- for (long documentIndex = 1;
- err == noErr && documentIndex <= documentCount;
- documentIndex++) {
- DescType returnedType;
- Size actualSize;
- AEKeyword keyword;
- FSRef ref;
- char qstr_buf[1024];
- err = AESizeOfNthItem(&documentList, documentIndex,
- &returnedType, &actualSize);
- if (err == noErr) {
- err = AEGetNthPtr(&documentList, documentIndex,
- typeFSRef, &keyword,
- &returnedType, (Ptr)&ref,
- sizeof(FSRef), &actualSize);
- if (err == noErr) {
- FSRefMakePath(&ref, (UInt8*)qstr_buf,
- 1024);
- s_arg=QString::fromUtf8(qstr_buf);
- wa_ptr->dispatch(
- FuncRequest(LFUN_FILE_OPEN,
- fromqstr(s_arg)));
- break;
- }
- }
- } // for ...
- }
- AEDisposeDesc(&documentList);
- return err;
-}
-#endif // Q_WS_MACX
-
void QWorkArea::haveSelection(bool own) const
{
- wa_ptr = this;
+ wa_ptr = this;
if (!QApplication::clipboard()->supportsSelection())
return;
@@ -355,24 +249,24 @@
lyxerr[Debug::ACTION] << "getClipboard: " << (const char*) str << endl;
if (str.isNull())
return string();
-#ifdef Q_OS_MAC
- // The MAC clipboard uses \r for lineendings, and we use \n
- return subst(fromqstr(str), '\r', '\n');
-#else
+#ifdef Q_OS_MACX
+ // The MAC clipboard uses \r for lineendings, and we use \n
+ return subst(fromqstr(str), '\r', '\n');
+#else
return fromqstr(str);
-#endif
+#endif
}
void QWorkArea::putClipboard(string const & str) const
{
-#ifdef Q_OS_MAC
- // The MAC clipboard uses \r for lineendings, and we use \n
- QApplication::clipboard()->setText(toqstr(subst(str, '\n', '\r')),
- QClipboard::Selection);
-#else
- QApplication::clipboard()->setText(toqstr(str), QClipboard::Selection);
-#endif
+#ifdef Q_OS_MACX
+ // The MAC clipboard uses \r for lineendings, and we use \n
+ QApplication::clipboard()->setText(toqstr(subst(str, '\n', '\r')),
+ QClipboard::Selection);
+#else
+ QApplication::clipboard()->setText(toqstr(str), QClipboard::Selection);
+#endif
lyxerr[Debug::ACTION] << "putClipboard: " << str << endl;
}
@@ -402,49 +296,8 @@
}
}
}
-/*
-void QWorkArea::scrollContentsBy(int dx, int dy)
-{
- lyxerr[Debug::GUI] << BOOST_CURRENT_FUNCTION
- << " scroll by dx=" << dx
- << " dy=" << dy
- << " verticalScrollBar val=" << verticalScrollBar()->value()
- << " min=" << verticalScrollBar()->minimum()
- << " max=" << verticalScrollBar()->maximum()
- << " pagestep=" << verticalScrollBar()->pageStep()
- << " linestep=" << verticalScrollBar()->lineStep()
- << endl;
+
- if (scrolled_with_keyboard_)
- {
- scrolled_with_keyboard_=false;
- return;
- }
-
- this->scrollDocView(verticalScrollBar()->value());
- scrolled_with_mouse_ = true;
-}
-*/
-
-#if USE_INPUT_METHODS
-// to make qt-immodule work
-
-void QWorkArea::inputMethodEvent(QInputMethodEvent * e)
-{
- QString const text = e->text();
- if (!text.isEmpty()) {
- int key = 0;
- // needed to make math superscript work on some systems
- // ideally, such special coding should not be necessary
- if (text == "^")
- key = Qt::Key_AsciiCircum;
- QKeyEvent ev(QEvent::KeyPress, key, *text.ascii(), 0, text);
- keyPressEvent(&ev);
- }
- e->accept();
-}
-#endif
-
void QWorkArea::mousePressEvent(QMouseEvent * e)
{
if (dc_event_.active && dc_event_ == *e) {
@@ -479,14 +332,14 @@
q_motion_state(e->state()));
// If we're above or below the work area...
- if (e->y() <= 20 || e->y() >= viewport()->QWidget::height() - 20) {
+ if (e->y() <= 20 || e->y() >= viewport()->height() - 20) {
// Make sure only a synthetic event can cause a page scroll,
// so they come at a steady rate:
if (e->y() <= 20)
// _Force_ a scroll up:
cmd.y = -40;
else
- cmd.y = viewport()->QWidget::height();
+ cmd.y = viewport()->height();
// Store the event, to be handled when the timeout expires.
synthetic_mouse_event_.cmd = cmd;
@@ -536,9 +389,26 @@
void QWorkArea::wheelEvent(QWheelEvent * e)
{
-// verticalScrollBar()->setValue(verticalScrollBar()->value() -
e->delta());
+ verticalScrollBar()->setValue(verticalScrollBar()->value() -
e->delta());
}
+void QWorkArea::generateSyntheticMouseEvent()
+{
+ // Set things off to generate the _next_ 'pseudo' event.
+ if (synthetic_mouse_event_.restart_timeout)
+ synthetic_mouse_event_.timeout.start();
+
+ // Has anything changed on-screen since the last timeout signal
+ // was received?
+ double const scrollbar_value = verticalScrollBar()->value();
+ if (scrollbar_value != synthetic_mouse_event_.scrollbar_value_old) {
+ // Yes it has. Store the params used to check this.
+ synthetic_mouse_event_.scrollbar_value_old = scrollbar_value;
+
+ // ... and dispatch the event to the LyX core.
+ this->dispatch(synthetic_mouse_event_.cmd);
+ }
+}
void QWorkArea::keyPressEvent(QKeyEvent * e)
{
@@ -548,8 +418,7 @@
<< " isAutoRepeat=" << e->isAutoRepeat()
<< " key=" << e->key()
<< endl;
-
- //viewport()->grabKeyboard();
+
// keyeventQueue_.push(boost::shared_ptr<QKeyEvent>(new QKeyEvent(*e)));
boost::shared_ptr<QLyXKeySym> sym(new QLyXKeySym);
@@ -558,25 +427,7 @@
}
-void QWorkArea::generateSyntheticMouseEvent()
-{
- // Set things off to generate the _next_ 'pseudo' event.
- if (synthetic_mouse_event_.restart_timeout)
- synthetic_mouse_event_.timeout.start();
-
- // Has anything changed on-screen since the last timeout signal
- // was received?
- double const scrollbar_value = verticalScrollBar()->value();
- if (scrollbar_value != synthetic_mouse_event_.scrollbar_value_old) {
- // Yes it has. Store the params used to check this.
- synthetic_mouse_event_.scrollbar_value_old = scrollbar_value;
-
- // ... and dispatch the event to the LyX core.
- this->dispatch(synthetic_mouse_event_.cmd);
- }
-}
-
-
+// This is not used for now...
void QWorkArea::keyeventTimeout()
{
bool handle_autos = true;
@@ -629,37 +480,161 @@
void QWorkArea::resizeEvent(QResizeEvent * resizeEvent)
-{
+{
+ workWidth_ = viewport()->width();
+ workHeight_ = viewport()->height();
+
+ verticalScrollBar()->setPageStep(viewport()->height());
+
pixmap_.reset(new QPixmap(viewport()->width(), viewport()->height()));
- scrolled_with_mouse_=false;
- scrolled_with_keyboard_=false;
-
this->workAreaResize();
lyxerr[Debug::GUI] << BOOST_CURRENT_FUNCTION
- << "\n QWidget width\t" << viewport()->width()
- << "\n QWidget height\t" << viewport()->height()
+ << "\n QWidget width\t" << this->QWidget::width()
+ << "\n QWidget height\t" << this->QWidget::height()
+ << "\n viewport width\t" << viewport()->width()
+ << "\n viewport height\t" << viewport()->height()
<< "\n QResizeEvent rect left\t" << rect().left()
<< "\n QResizeEvent rect right\t" << rect().right()
<< endl;
}
void QWorkArea::paintEvent(QPaintEvent * e)
-{
-/*
+{
lyxerr[Debug::GUI] << BOOST_CURRENT_FUNCTION
- << "\n QWidget width\t" << viewport()->width()
- << "\n QWidget height\t" << viewport()->height()
+ << "\n QWidget width\t" << this->width()
+ << "\n QWidget height\t" << this->height()
+ << "\n viewport width\t" << viewport()->width()
+ << "\n viewport height\t" << viewport()->height()
+ << "\n pixmap width\t" << pixmap_->width()
+ << "\n pixmap height\t" << pixmap_->height()
<< "\n QPaintEvent x\t" << e->rect().x()
- << "\n QPaintEvent y\t" << e->rect().x()
+ << "\n QPaintEvent y\t" << e->rect().y()
<< "\n QPaintEvent w\t" << e->rect().width()
<< "\n QPaintEvent h\t" << e->rect().height()
<< endl;
-*/
+
QPainter q(viewport());
q.drawPixmap(e->rect(), *pixmap_.get(), e->rect());
-
-// q.drawPixmap(QPoint(r.x(), r.y()),
-// *pixmap_.get(), r);
}
+
+
+///////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////
+// Specific stuff
+
+////////////////////////////////////////////////////////////////////////
+// qt-immodule specific stuff goes here...
+
+#if USE_INPUT_METHODS
+// to make qt-immodule work
+
+void QWorkArea::inputMethodEvent(QInputMethodEvent * e)
+{
+ QString const text = e->text();
+ if (!text.isEmpty()) {
+ int key = 0;
+ // needed to make math superscript work on some systems
+ // ideally, such special coding should not be necessary
+ if (text == "^")
+ key = Qt::Key_AsciiCircum;
+ QKeyEvent ev(QEvent::KeyPress, key, *text.ascii(), 0, text);
+ keyPressEvent(&ev);
+ }
+ e->accept();
+}
+#endif
+
+
+////////////////////////////////////////////////////////////////////////
+// X11 specific stuff goes here...
+
+#ifdef Q_WS_X11
+bool lyxX11EventFilter(XEvent * xev)
+{
+ switch (xev->type) {
+ case SelectionRequest:
+ lyxerr[Debug::GUI] << "X requested selection." << endl;
+ if (wa_ptr)
+ wa_ptr->selectionRequested();
+ break;
+ case SelectionClear:
+ lyxerr[Debug::GUI] << "Lost selection." << endl;
+ if (wa_ptr)
+ wa_ptr->selectionLost();
+ break;
+ }
+ return false;
+}
+#endif
+
+
+////////////////////////////////////////////////////////////////////////
+// Mac OSX specific stuff goes here...
+
+#ifdef Q_OS_MACX
+namespace{
+OSErr checkAppleEventForMissingParams(const AppleEvent& theAppleEvent)
+ {
+ DescType returnedType;
+ Size actualSize;
+ OSErr err = AEGetAttributePtr(&theAppleEvent, keyMissedKeywordAttr,
+ typeWildCard, &returnedType, nil, 0,
+ &actualSize);
+ switch (err) {
+ case errAEDescNotFound:
+ return noErr;
+ case noErr:
+ return errAEEventNotHandled;
+ default:
+ return err;
+ }
+ }
+}
+
+pascal OSErr handleOpenDocuments(const AppleEvent* inEvent,
+ AppleEvent* /*reply*/, long /*refCon*/)
+{
+ QString s_arg;
+ AEDescList documentList;
+ OSErr err = AEGetParamDesc(inEvent, keyDirectObject, typeAEList,
+ &documentList);
+ if (err != noErr)
+ return err;
+
+ err = checkAppleEventForMissingParams(*inEvent);
+ if (err == noErr) {
+ long documentCount;
+ err = AECountItems(&documentList, &documentCount);
+ for (long documentIndex = 1;
+ err == noErr && documentIndex <= documentCount;
+ documentIndex++) {
+ DescType returnedType;
+ Size actualSize;
+ AEKeyword keyword;
+ FSRef ref;
+ char qstr_buf[1024];
+ err = AESizeOfNthItem(&documentList, documentIndex,
+ &returnedType, &actualSize);
+ if (err == noErr) {
+ err = AEGetNthPtr(&documentList, documentIndex,
+ typeFSRef, &keyword,
+ &returnedType, (Ptr)&ref,
+ sizeof(FSRef), &actualSize);
+ if (err == noErr) {
+ FSRefMakePath(&ref, (UInt8*)qstr_buf,
+ 1024);
+ s_arg=QString::fromUtf8(qstr_buf);
+ wa_ptr->dispatch(
+ FuncRequest(LFUN_FILE_OPEN,
+ fromqstr(s_arg)));
+ break;
+ }
+ }
+ } // for ...
+ }
+ AEDisposeDesc(&documentList);
+ return err;
+}
+#endif // Q_OS_MACX
Index: D:/msys/home/yns/src/lyx-svn/trunk/src/frontends/qt4/QWorkArea.h
===================================================================
--- D:/msys/home/yns/src/lyx-svn/trunk/src/frontends/qt4/QWorkArea.h
(revision 13339)
+++ D:/msys/home/yns/src/lyx-svn/trunk/src/frontends/qt4/QWorkArea.h
(working copy)
@@ -94,10 +94,7 @@
/**
* Qt-specific implementation of the work area
* (buffer view GUI)
- *
- * It consists of a content pane widget, and a scrollbar.
- * Hopefully soon we can just use QScrollView ...
- */
+*/
class QWorkArea : public QAbstractScrollArea, public WorkArea {
Q_OBJECT
@@ -108,48 +105,49 @@
virtual ~QWorkArea();
/// return the width of the content pane
- virtual int workWidth() const { return viewport()->width(); }
+ virtual int workWidth() const { return workWidth_; }
+
/// return the height of the content pane
- virtual int workHeight() const { return viewport()->height(); }
+ virtual int workHeight() const { return workHeight_; }
///
virtual void setScrollbarParams(int height, int pos, int line_height);
/// a selection exists
- virtual void haveSelection(bool) const;
+ virtual void haveSelection(bool) const;
+
///
virtual std::string const getClipboard() const;
+
///
virtual void putClipboard(std::string const &) const;
+
///
virtual void dragEnterEvent(QDragEnterEvent * event);
+
///
- virtual void dropEvent(QDropEvent* event);
+ virtual void dropEvent(QDropEvent* event);
/// return the widget's painter
- virtual Painter & getPainter();
+ virtual Painter & getPainter() { return (Painter &) painter_; }
- //virtual QPaintDevice & paintDevice() { return content_->pixmap(); }
+ ///
+ //virtual QPaintDevice & paintDevice() { return content_->pixmap(); }
+
/// return the backing pixmap
- QPixmap * pixmap() const { return pixmap_.get(); }
+ QPixmap * pixmap() const { return pixmap_.get(); }
- /// return the widget's painter
-// virtual QLPainter & getQLPainter();
+ /// return the widget's painter
+ //virtual QLPainter & getQLPainter() const { return painter_; }
/// get the content pane widget
- QWidget * getContent() const;
+ QWidget * getContent() const { return viewport(); }
-
-
protected:
-
-// void scrollContentsBy(int dx, int dy);
/// repaint part of the widget
void paintEvent(QPaintEvent * e);
-
/// widget has been resized
void resizeEvent(QResizeEvent * e);
-
/// mouse button press
void mousePressEvent(QMouseEvent * e);
/// mouse button release
@@ -164,6 +162,7 @@
void keyPressEvent(QKeyEvent * e);
#if USE_INPUT_METHODS
+protected:
/// IM events
void QWorkArea::inputMethodEvent(QInputMethodEvent * e)
#endif
@@ -173,11 +172,13 @@
void keyeventTimeout();
void adjustViewWithScrollBar(int action);
-protected:
-
-
-private:
-
+private:
+
+ ///
+ int workWidth_;
+ ///
+ int workHeight_;
+
/// our painter
QLPainter painter_;