#include "clickabletableview.h"

ClickableTableView::ClickableTableView(QWidget *parent)
    : QTableView(parent) {
    // 构造函数的实现
    // // 设置背景颜色
    // QPalette palette = this->palette();
    // palette.setColor(QPalette::Base, Qt::white);
    // palette.setColor(QPalette::AlternateBase, Qt::lightGray);
    // palette.setColor(QPalette::Highlight, QColor(0, 120, 215));
    // palette.setColor(QPalette::HighlightedText, Qt::white);
    // this->setPalette(palette);

    // // 设置网格线颜色
    // this->setGridStyle(Qt::SolidLine);
    // QColor gridColor(Qt::darkGray);
    this->setStyleSheet(QString("QTableView { selection-background-color: blue;}"
                                "QTableView QTableCornerButton::section { background: transparent; } "
                                "QHeaderView::section { background-color: gray; color: white; padding-left: 4px; padding-right: 4px; } "));

    // // 设置边框
    // this->setFrameShape(QFrame::Box);
    // this->setLineWidth(1);

    // // 设置单元格内边距
    // this->verticalHeader()->setDefaultSectionSize(30);
    // this->horizontalHeader()->setDefaultSectionSize(100);
// }
}

void ClickableTableView::mouseReleaseEvent(QMouseEvent *event) {
    QModelIndex index = indexAt(event->pos());
    if (index.isValid() && index.column() == 8) {
        QRect rect = visualRect(index);
        QRect firstButtonRect = rect.adjusted(0, 0, -rect.width() / 2, 0);
        QRect secondButtonRect = rect.adjusted(rect.width() / 2, 0, 0, 0);

        if (firstButtonRect.contains(event->pos())) {
            // 处理第一个按钮点击事件
            qDebug() << "Button 1 clicked at row:" << index.row();
            displayRowData(index.row());
        } else if (secondButtonRect.contains(event->pos())) {
            // 处理第二个按钮点击事件
            qDebug() << "Button 2 clicked at row:" << index.row();
            displayRowData(index.row());
        }
    }
    QTableView::mouseReleaseEvent(event);
}

void ClickableTableView::displayRowData(int row) {
    QAbstractItemModel* model = this->model();
    if (model) {
        QString rowData;
        for (int col = 0; col < model->columnCount(); ++col) {
            QModelIndex index = model->index(row, col);
            QVariant data = model->data(index);
            rowData += QString("Column %1: %2 | ").arg(col).arg(data.toString());
        }
        qDebug() << "Row" << row << "Data:" << rowData;
    }
}
