From: Juergen Spitzmueller Date: Fri, 1 May 2015 16:10:36 +0000 (+0200) Subject: Fix usability of EmptyTable widget. X-Git-Tag: 2.2.0alpha1~936 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;ds=sidebyside;h=17a4acf85725b010a874b49e715e03dbfcb8dcfc;p=lyx.git Fix usability of EmptyTable widget. Fixes #3919 (math matrix dialog UX issues). --- diff --git a/src/frontends/qt4/EmptyTable.cpp b/src/frontends/qt4/EmptyTable.cpp index d95d7a2443..647b563810 100644 --- a/src/frontends/qt4/EmptyTable.cpp +++ b/src/frontends/qt4/EmptyTable.cpp @@ -12,6 +12,8 @@ #include "EmptyTable.h" +#include "support/debug.h" + #include #include @@ -19,7 +21,8 @@ * A simple widget for a quick "preview" in TabularCreateDialog */ -unsigned int const cellsize = 20; +unsigned int const cellheight = 20; +unsigned int const cellwidth = 30; EmptyTable::EmptyTable(QWidget * parent, int rows, int columns) @@ -28,21 +31,23 @@ EmptyTable::EmptyTable(QWidget * parent, int rows, int columns) resetCellSize(); setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); - viewport()->resize(cellsize*rows,cellsize*columns); + viewport()->resize(cellheight * rows, cellwidth * columns); + setSelectionMode(QAbstractItemView::NoSelection); + setEditTriggers(QAbstractItemView::NoEditTriggers); } QSize EmptyTable::sizeHint() const { - return QSize(cellsize * (2+columnCount()), cellsize * (2+rowCount())); + return QSize(cellwidth * (2 + columnCount()), cellheight * (2 + rowCount())); } void EmptyTable::resetCellSize() { - for(int i=0; i space) { p->drawLine(x, y, ex, ey); x -= step; @@ -99,19 +104,26 @@ void EmptyTable::setNumberRows(int nr_rows) rowsChanged(nr_rows); } -/* + void EmptyTable::mouseMoveEvent(QMouseEvent *ev) { - int const x = ev->pos().x(); - int const y = ev->pos().y(); - - if (x > 0) - setNumberColumns(x / cellsize + columnCount()-1); - - if (y > 0) - setNumberRows(y / cellsize + rowCount()-1); + int cc = columnCount(); + int rc = rowCount(); + int x = ev->x(); + int y = ev->y(); + int w = cellwidth * cc; + int h = cellheight * rc; + int wl = cellwidth * (cc - 1); + int hl = cellheight * (rc - 1); + if (x > w) + setNumberColumns(cc + 1); + if (y > h) + setNumberRows(rc + 1); + if (x < wl) + setNumberColumns(cc - 1); + if (y < hl) + setNumberRows(rc - 1); } -*/ #include "moc_EmptyTable.cpp" diff --git a/src/frontends/qt4/EmptyTable.h b/src/frontends/qt4/EmptyTable.h index d9ffa03037..6fb07e0d9e 100644 --- a/src/frontends/qt4/EmptyTable.h +++ b/src/frontends/qt4/EmptyTable.h @@ -42,7 +42,7 @@ Q_SIGNALS: protected: /// fill in a cell virtual void paintCell(class QPainter *, int, int); -// virtual void mouseMoveEvent(QMouseEvent *); + virtual void mouseMoveEvent(QMouseEvent *); /// Reset all the cell size to default virtual void resetCellSize(); diff --git a/src/frontends/qt4/ui/MathMatrixUi.ui b/src/frontends/qt4/ui/MathMatrixUi.ui index 9666160f50..b96a792f85 100644 --- a/src/frontends/qt4/ui/MathMatrixUi.ui +++ b/src/frontends/qt4/ui/MathMatrixUi.ui @@ -6,7 +6,7 @@ 0 0 - 340 + 398 372 @@ -17,7 +17,7 @@ true - + 6 @@ -101,10 +101,10 @@ - + - + 0 0 @@ -114,7 +114,7 @@ - + Qt::Horizontal @@ -146,7 +146,7 @@ - + Alignment @@ -204,7 +204,7 @@ - + Decoration @@ -233,7 +233,7 @@ - + 6