]> git.lyx.org Git - features.git/blobdiff - src/frontends/qt/InsertTableWidget.cpp
Fix broken Apple speller interface
[features.git] / src / frontends / qt / InsertTableWidget.cpp
index 70f53e20dde71fe932a419a783fd22d720757767..07ae06124f4dd3bd0b16a8880b06d66251e20559 100644 (file)
@@ -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 ) {