Fixes #3919 (math matrix dialog UX issues).
+#include "support/debug.h"
+
#include <QPainter>
#include <QMouseEvent>
#include <QPainter>
#include <QMouseEvent>
* A simple widget for a quick "preview" in TabularCreateDialog
*/
* 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)
EmptyTable::EmptyTable(QWidget * parent, int rows, int columns)
resetCellSize();
setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
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
{
}
QSize EmptyTable::sizeHint() const
{
- return QSize(cellsize * (2+columnCount()), cellsize * (2+rowCount()));
+ return QSize(cellwidth * (2 + columnCount()), cellheight * (2 + rowCount()));
}
void EmptyTable::resetCellSize()
{
}
void EmptyTable::resetCellSize()
{
- for(int i=0; i<rowCount(); ++i)
- setRowHeight(i, cellsize);
- for(int i=0; i<columnCount(); ++i)
- setColumnWidth(i, cellsize);
+ for(int i = 0; i < rowCount(); ++i)
+ setRowHeight(i, cellheight);
+ for(int i = 0; i < columnCount(); ++i)
+ setColumnWidth(i, cellwidth);
}
void EmptyTable::paintCell(QPainter * p, int row, int col)
}
void EmptyTable::paintCell(QPainter * p, int row, int col)
- int const step = cellsize / 5;
+ int const step = cellheight / 5;
- int x = cellsize - step;
- int const y = cellsize - space;
- int const ex = cellsize - space;
- int ey = cellsize - step;
+ int x = cellwidth - step;
+ int const y = cellheight - space;
+ int const ex = cellwidth - space;
+ int ey = cellheight - step;
while (x > space) {
p->drawLine(x, y, ex, ey);
x -= step;
while (x > space) {
p->drawLine(x, y, ex, ey);
x -= step;
void EmptyTable::mouseMoveEvent(QMouseEvent *ev)
{
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"
#include "moc_EmptyTable.cpp"
protected:
/// fill in a cell
virtual void paintCell(class QPainter *, int, int);
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();
/// Reset all the cell size to default
virtual void resetCellSize();
<height>372</height>
</rect>
</property>
<height>372</height>
</rect>
</property>
<bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout">
<bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0" colspan="2">
+ <item row="0" column="0" colspan="3">
<layout class="QHBoxLayout">
<property name="spacing">
<number>6</number>
<layout class="QHBoxLayout">
<property name="spacing">
<number>6</number>
</item>
</layout>
</item>
</item>
</layout>
</item>
- <item row="1" column="0">
+ <item row="1" column="0" colspan="2">
<widget class="EmptyTable" name="table" native="true">
<property name="sizePolicy">
<widget class="EmptyTable" name="table" native="true">
<property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</property>
</widget>
</item>
- <item row="1" column="1">
+ <item row="1" column="2">
<spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
<spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</spacer>
</item>
</property>
</spacer>
</item>
- <item row="3" column="0" colspan="2">
+ <item row="3" column="0">
<widget class="QGroupBox" name="alignmentGB">
<property name="title">
<string>Alignment</string>
<widget class="QGroupBox" name="alignmentGB">
<property name="title">
<string>Alignment</string>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
- <item row="3" column="2">
+ <item row="3" column="1" colspan="2">
<widget class="QGroupBox" name="decorationtGB">
<property name="title">
<string>Decoration</string>
<widget class="QGroupBox" name="decorationtGB">
<property name="title">
<string>Decoration</string>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
- <item row="4" column="0" colspan="2">
+ <item row="4" column="0">
<layout class="QHBoxLayout">
<property name="spacing">
<number>6</number>
<layout class="QHBoxLayout">
<property name="spacing">
<number>6</number>