X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt%2FInsertTableWidget.cpp;h=07ae06124f4dd3bd0b16a8880b06d66251e20559;hb=b41293352ea8d52890b7668f059fd07f09bd6bb6;hp=70f53e20dde71fe932a419a783fd22d720757767;hpb=cbc55548a34ec562950809f2ac4067d7bf1c8294;p=features.git diff --git a/src/frontends/qt/InsertTableWidget.cpp b/src/frontends/qt/InsertTableWidget.cpp index 70f53e20dd..07ae06124f 100644 --- a/src/frontends/qt/InsertTableWidget.cpp +++ b/src/frontends/qt/InsertTableWidget.cpp @@ -33,7 +33,7 @@ namespace lyx { namespace frontend { InsertTableWidget::InsertTableWidget(QWidget * parent) - : QWidget(parent, Qt::Popup), colwidth_(20), rowheight_(12) + : QWidget(parent, Qt::Popup), colwidth_(15), rowheight_(15), minrows_(5), mincols_(5) { init(); setMouseTracking(true); @@ -42,8 +42,8 @@ InsertTableWidget::InsertTableWidget(QWidget * parent) void InsertTableWidget::init() { - rows_ = 5; - cols_ = 5; + rows_ = minrows_; + cols_ = mincols_; bottom_ = 0; right_ = 0; underMouse_ = false; @@ -90,16 +90,23 @@ void InsertTableWidget::mouseMoveEvent(QMouseEvent * event) int const r0 = right_; int const b0 = bottom_; +#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)) + right_ = event->position().x() / colwidth_ + 1; + bottom_ = event->position().y() / rowheight_ + 1; +#else right_ = event->x() / colwidth_ + 1; bottom_ = event->y() / rowheight_ + 1; +#endif - if (bottom_ == rows_) { - ++rows_; + int const newrows = std::max(minrows_, bottom_ + 1); + if (rows_ != newrows) { + rows_ = newrows; resetGeometry(); } - if (right_ == cols_) { - ++cols_; + int const newcols = std::max(mincols_, right_ + 1); + if (cols_ != newcols) { + cols_ = newcols; resetGeometry(); } @@ -135,17 +142,20 @@ void InsertTableWidget::mousePressEvent(QMouseEvent * /*event*/) void InsertTableWidget::paintEvent(QPaintEvent * /*event*/) { - drawGrid(rows_, cols_, Qt::white); + QPalette const palette = this->palette(); + drawGrid(rows_, cols_, palette.base(), palette.text().color()); if (underMouse_) - drawGrid(bottom_, right_, Qt::darkBlue); + drawGrid(bottom_, right_, palette.highlight(), + palette.highlightedText().color()); } -void InsertTableWidget::drawGrid(int const rows, int const cols, Qt::GlobalColor const color) +void InsertTableWidget::drawGrid(int const rows, int const cols, + QBrush const fillBrush, QColor lineColor) { QPainter painter(this); - painter.setPen(Qt::darkGray); - painter.setBrush(color); + painter.setPen(lineColor); + painter.setBrush(fillBrush); for (int r = 0 ; r < rows ; ++r ) { for (int c = 0 ; c < cols ; ++c ) {