Hi Abdel,

The same argument applies to qt3. Furthermore, qt4 is feature complete
now thanks to Edwin latest Bullet patch. So please, let's just drop it.

I think that Lars isn't fully against dropping qt3. In one of his recent emails (about two weeks ago), he said that there are mainly two things that need to be fixed before qt3 can be dropped:

1. qt4 must be feature-complete and mature
2. QT3_SUPPORT is no longer used in the qt3 frontend

I don't know the status regarding (1) - is there anything missing? Are there any changes to qt3 that haven't been ported to qt4?

Regarding (2), I don't know whether it is real worth but you shouldn't give Lars any reason to keep qt3 :-) I had a short look at the qt4 frontend and there are many files that require QT3_SUPPORT. However, fixing them means mainly replacing qt3 function calls by qt4 function calls. BTW: Last week, I compiled qt4 on my old SuSE 9.3 machine - absolutely problem-free!

Michael



--------------------------------------------------------------------------------


Index: BufferView.C
===================================================================
--- BufferView.C (revision 14681)
+++ BufferView.C (working copy)
@@ -235,12 +235,6 @@
}


-void BufferView::workAreaKeyPress(LyXKeySymPtr key, key_modifier::state state)
-{
- pimpl_->workAreaKeyPress(key, state);
-}
-
-
bool BufferView::workAreaDispatch(FuncRequest const & ev)
{
 return pimpl_->workAreaDispatch(ev);
Index: BufferView.h
===================================================================
--- BufferView.h (revision 14681)
+++ BufferView.h (working copy)
@@ -185,9 +185,6 @@
 ///
 void workAreaResize(int width, int height);

- /// Receive a keypress
- void workAreaKeyPress(LyXKeySymPtr key, key_modifier::state state);
-
 /// a function should be executed from the workarea
 bool workAreaDispatch(FuncRequest const & ev);

Index: BufferView_pimpl.C
===================================================================
--- BufferView_pimpl.C (revision 14681)
+++ BufferView_pimpl.C (working copy)
@@ -231,12 +231,6 @@
}


-lyx::frontend::Gui & BufferView::Pimpl::gui() const
-{
- return owner_->gui();
-}
-
-
int BufferView::Pimpl::width() const
{
 return width_;
@@ -470,7 +464,6 @@
 t.setCursorFromCoordinates(cur, 0, newy);
 }
 }
- owner_->updateLayoutChoice();
}


@@ -496,13 +489,6 @@
}


-void BufferView::Pimpl::workAreaKeyPress(LyXKeySymPtr key,
- key_modifier::state state)
-{
- owner_->getLyXFunc().processKeySym(key, state);
-}
-
-
void BufferView::Pimpl::selectionRequested()
{
 static string sel;
@@ -556,8 +542,6 @@

 if (widthChange || heightChange)
 update();
-
- owner_->updateLayoutChoice();
}


@@ -845,12 +829,6 @@
 // LFUN_FILE_OPEN generated by drag-and-drop.
 FuncRequest cmd = cmd0;

- // Handle drag&drop
- if (cmd.action == LFUN_FILE_OPEN) {
- owner_->dispatch(cmd);
- return true;
- }
-
 if (!buffer_)
 return false;

@@ -899,16 +877,6 @@
 update(Update::FitCursor | Update::MultiParSel);
 }

- // Skip these when selecting
- if (cmd.action != LFUN_MOUSE_MOTION) {
- owner_->updateLayoutChoice();
- owner_->updateToolbars();
- }
-
- // Slight hack: this is only called currently when we
- // clicked somewhere, so we force through the display
- // of the new status here.
- owner_->clearMessage();
 return true;
}

Index: BufferView_pimpl.h
===================================================================
--- BufferView_pimpl.h (revision 14681)
+++ BufferView_pimpl.h (working copy)
@@ -69,8 +69,6 @@
 /// Wheel mouse scroll, move by multiples of text->defaultRowHeight().
 void scroll(int lines);
 ///
- void workAreaKeyPress(LyXKeySymPtr key, key_modifier::state state);
- ///
 void selectionRequested();
 ///
 void selectionLost();
@@ -97,9 +95,6 @@
 /// a function should be executed
 bool dispatch(FuncRequest const & ev);

- /// the frontend
- lyx::frontend::Gui & gui() const;
-
 /// Width and height of the BufferView in Pixels
 /**
 This is set externally by the workAreaResize method.
Index: frontends/gtk/GuiWorkArea.h
===================================================================
--- frontends/gtk/GuiWorkArea.h (revision 14681)
+++ frontends/gtk/GuiWorkArea.h (working copy)
@@ -27,7 +27,7 @@
class GuiWorkArea: public lyx::frontend::WorkArea {
public:
 GuiWorkArea(GScreen * screen, GWorkArea * work_area)
- : old_screen_(screen), old_work_area_(work_area)
+ : WorkArea(work_area->view()), old_screen_(screen), old_work_area_(work_area)
 {
 }

Index: frontends/gtk/GWorkArea.C
===================================================================
--- frontends/gtk/GWorkArea.C (revision 14681)
+++ frontends/gtk/GWorkArea.C (working copy)
@@ -376,8 +376,7 @@
 adjusting_ = true;

 double val = vscrollbar_.get_adjustment()->get_value();
- view_.view()->scrollDocView(static_cast<int>(val));
- view_.workArea()->redraw();
+ view_.workArea()->scrollBufferView(static_cast<int>(val));
 adjusting_ = false;
}

Index: frontends/gtk/GWorkArea.h
===================================================================
--- frontends/gtk/GWorkArea.h (revision 14681)
+++ frontends/gtk/GWorkArea.h (working copy)
@@ -82,6 +82,12 @@
 /// a selection exists
 virtual void haveSelection(bool);
 void inputCommit(gchar * str);
+
+ LyXView & view()
+ {
+ return view_;
+ }
+
private:
 bool onExpose(GdkEventExpose * event);
 bool onConfigure(GdkEventConfigure * event);
Index: frontends/qt3/GuiWorkArea.h
===================================================================
--- frontends/qt3/GuiWorkArea.h (revision 14681)
+++ frontends/qt3/GuiWorkArea.h (working copy)
@@ -30,7 +30,7 @@
class GuiWorkArea: public lyx::frontend::WorkArea {
public:
 GuiWorkArea(FScreen * screen, FWorkArea * work_area)
- : old_screen_(screen), old_work_area_(work_area)
+ : WorkArea(work_area->view()), old_screen_(screen), old_work_area_(work_area)
 {
 }

Index: frontends/qt3/QContentPane.C
===================================================================
--- frontends/qt3/QContentPane.C (revision 14681)
+++ frontends/qt3/QContentPane.C (working copy)
@@ -169,10 +169,8 @@

void QContentPane::scrollBarChanged(int val)
{
- if (track_scrollbar_) {
- wa_->view().view()->scrollDocView(val);
- wa_->view().workArea()->redraw();
- }
+ if (track_scrollbar_)
+ wa_->view().workArea()->scrollBufferView(val);
}


@@ -340,7 +338,7 @@
 }

 pixmap_->resize(width(), height());
- wa_->view().view()->workAreaResize(width(), height());
+ wa_->view().workArea()->resizeBufferView();
}


@@ -350,7 +348,7 @@

 if (!pixmap_.get()) {
 pixmap_.reset(new QPixmap(width(), height()));
- buffer_view_->workAreaResize(width(), height());
+ wa_->view().workArea()->resizeBufferView();
 return;
 }

Index: frontends/qt4/GuiImplementation.C
===================================================================
--- frontends/qt4/GuiImplementation.C (revision 14681)
+++ frontends/qt4/GuiImplementation.C (working copy)
@@ -75,7 +75,7 @@

 GuiView * view = views_[view_id].get();

- work_areas_[id].reset(new GuiWorkArea(w, h, view));
+ work_areas_[id].reset(new GuiWorkArea(w, h, *view));

 // FIXME BufferView creation should be independant of WorkArea creation
 buffer_views_[id].reset(new BufferView(view));
Index: frontends/qt4/GuiWorkArea.C
===================================================================
--- frontends/qt4/GuiWorkArea.C (revision 14681)
+++ frontends/qt4/GuiWorkArea.C (working copy)
@@ -117,8 +117,8 @@
{}


-GuiWorkArea::GuiWorkArea(int w, int h, QWidget * parent, BufferView * buffer_view)
-: QAbstractScrollArea(parent), WorkArea(buffer_view), painter_(this)
+GuiWorkArea::GuiWorkArea(int w, int h, LyXView & lyx_view)
+: WorkArea(lyx_view), painter_(this)
{
 setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
 setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
@@ -137,7 +137,6 @@
 viewport()->setCursor(Qt::IBeamCursor);

 resize(w, h);
- show();
 workWidth_ = w;
 workHeight_ = h;

@@ -197,18 +196,7 @@

void GuiWorkArea::adjustViewWithScrollBar(int)
{
- /*
- lyxerr[Debug::GUI] << BOOST_CURRENT_FUNCTION
- << " verticalScrollBar val=" << verticalScrollBar()->value()
- << " verticalScrollBar pos=" << verticalScrollBar()->sliderPosition()
- << " min=" << verticalScrollBar()->minimum()
- << " max=" << verticalScrollBar()->maximum()
- << " pagestep=" << verticalScrollBar()->pageStep()
- << " linestep=" << verticalScrollBar()->lineStep()
- << endl;
- */
- buffer_view_->scrollDocView(verticalScrollBar()->sliderPosition());
- redraw();
+ scrollBufferView(verticalScrollBar()->sliderPosition());
}


Index: frontends/qt4/GuiWorkArea.h
===================================================================
--- frontends/qt4/GuiWorkArea.h (revision 14681)
+++ frontends/qt4/GuiWorkArea.h (working copy)
@@ -101,7 +101,7 @@

public:

- GuiWorkArea(int width, int height, QWidget * parent, BufferView * buffer_view = 0);
+ GuiWorkArea(int width, int height, LyXView & lyx_view);

 virtual ~GuiWorkArea();
 /// return the width of the content pane
Index: frontends/WorkArea.C
===================================================================
--- frontends/WorkArea.C (revision 14681)
+++ frontends/WorkArea.C (working copy)
@@ -16,7 +16,9 @@
#include "WorkArea.h"

#include "font_metrics.h"
+#include "funcrequest.h"
#include "lyx_gui.h"
+#include "lyxfunc.h"
#include "Painter.h"

#include "BufferView.h"
@@ -31,6 +33,7 @@
#include "lyxrc.h"
#include "lyxrow.h"
#include "lyxtext.h"
+#include "LyXView.h"
#include "metricsinfo.h"
#include "paragraph.h"
#include "rowpainter.h"
@@ -135,8 +138,8 @@

} // anon namespace

-WorkArea::WorkArea(BufferView * buffer_view)
- :  buffer_view_(buffer_view), greyed_out_(true),
+WorkArea::WorkArea(LyXView & lyx_view)
+ :  buffer_view_(0), lyx_view_(lyx_view), greyed_out_(true),
 cursor_visible_(false), cursor_timeout_(400)
{
 // Start loading the pixmap as soon as possible
@@ -211,7 +214,7 @@
 key_modifier::state state)
{
 hideCursor();
- buffer_view_->workAreaKeyPress(key, state);
+ lyx_view_.getLyXFunc().processKeySym(key, state);

 /* This is perhaps a bit of a hack. When we move
 * around, or type, it's nice to be able to see
@@ -222,7 +225,7 @@
 */
// if (buffer_view_->available())
 toggleCursor();
-
+
 // uneeded "redraw()" call commented out for now.
 // When/if the call to LyXView::redrawWorkArea() in "lyxfunc.C:1610"
 // is not needed anymore, this line should be uncommented out
@@ -232,7 +235,25 @@

void WorkArea::dispatch(FuncRequest const & cmd0)
{
+ // Handle drag&drop
+ if (cmd0.action == LFUN_FILE_OPEN) {
+ lyx_view_.dispatch(cmd0);
+ return;
+ }
+
 buffer_view_->workAreaDispatch(cmd0);
+
+ // Skip these when selecting
+ if (cmd0.action != LFUN_MOUSE_MOTION) {
+ lyx_view_.updateLayoutChoice();
+ lyx_view_.updateToolbars();
+ }
+
+ // Slight hack: this is only called currently when we
+ // clicked somewhere, so we force through the display
+ // of the new status here.
+ lyx_view_.clearMessage();
+
 redraw();
}

@@ -240,10 +261,19 @@
void WorkArea::resizeBufferView()
{
 buffer_view_->workAreaResize(width(), height());
+ lyx_view_.updateLayoutChoice();
 redraw();
}


+void WorkArea::scrollBufferView(int position)
+{
+ buffer_view_->scrollDocView(position);
+ lyx_view_.updateLayoutChoice();
+ redraw();
+}
+
+
void WorkArea::greyOut()
{
 greyed_out_ = true;
Index: frontends/WorkArea.h
===================================================================
--- frontends/WorkArea.h (revision 14681)
+++ frontends/WorkArea.h (working copy)
@@ -37,6 +37,7 @@

class BufferView;
class FuncRequest;
+class LyXView;

namespace lyx {
namespace frontend {
@@ -62,7 +63,7 @@
 */
class WorkArea {
public:
- WorkArea(BufferView * buffer_view = 0);
+ WorkArea(LyXView & lyx_view);

 virtual ~WorkArea() {}

@@ -109,11 +110,13 @@
 /// FIXME: This is public because of qt3 and gtk, should be protected
 void dispatch(FuncRequest const & cmd0);

-protected:
- ///
+ /// FIXME: This is public because of qt3 and gtk, should be protected
 void resizeBufferView();

+ /// FIXME: This is public because of qt3 and gtk, should be protected
+ void scrollBufferView(int position);

+protected:
 /// hide the visible cursor, if it is visible
 void hideCursor();

@@ -132,6 +135,9 @@
 ///
 BufferView * buffer_view_;

+ ///
+ LyXView & lyx_view_;
+
private:
 ///
 void checkAndGreyOut();


Reply via email to