#include "CBTableView.h"
#include "CBTableViewModel.h"

#include <QHBoxLayout>
#include <QHeaderView>
#include <QVBoxLayout>

#include "ElaTableView.h"
#include "ElaText.h"

CBTableView::CBTableView(QWidget *parent) : BasePage(parent) {
    // [Useless] 预览窗口标题
    setWindowTitle("Clipboard Histroy");
    // 面包屑导航是否显示，即 centralWidget 的 Title 是否显示
    setTitleVisible(false);

    ElaText *tableText = new ElaText("剪贴板历史记录", this);
    tableText->setTextPixelSize(18);
    _tableView = new ElaTableView(this);
    // ElaScrollBar* tableViewFloatScrollBar = new ElaScrollBar(_tableView->verticalScrollBar(), _tableView);
    // tableViewFloatScrollBar->setIsAnimation(true);
    QFont tableHeaderFont = _tableView->horizontalHeader()->font();
    tableHeaderFont.setPixelSize(16);
    _tableView->horizontalHeader()->setFont(tableHeaderFont);
    _tableView->setModel(new CBTableViewModel(this));
    _tableView->setAlternatingRowColors(true);
    _tableView->setIconSize(QSize(38, 38));
    _tableView->verticalHeader()->setHidden(true);
    _tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
    // 设置单击即可选中整行
    _tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
    // 设置只能选择一个还是可以多选
    _tableView->setSelectionMode(QAbstractItemView::SingleSelection);
    _tableView->horizontalHeader()->setMinimumSectionSize(60);
    _tableView->verticalHeader()->setMinimumSectionSize(46);
    _tableView->setFixedHeight(520);
    connect(_tableView, &ElaTableView::tableViewShow, this, [=]() {
        _tableView->setColumnWidth(0, 320);
        _tableView->setColumnWidth(1, 50);
        _tableView->setColumnWidth(2, 50);
        // _tableView->setColumnWidth(3, 150);
        // _tableView->setColumnWidth(4, 60);
    });
    QHBoxLayout *tableViewLayout = new QHBoxLayout();
    tableViewLayout->setContentsMargins(0, 0, 10, 0);
    tableViewLayout->addWidget(_tableView);

    QWidget *centralWidget = new QWidget(this);
    centralWidget->setWindowTitle("Clipboard Histroy");
    centralWidget->setWindowFlags(Qt::WindowTitleHint);
    QVBoxLayout *centerVLayout = new QVBoxLayout(centralWidget);
    centerVLayout->setContentsMargins(0, 0, 0, 0);
    centerVLayout->addWidget(tableText);
    centerVLayout->addSpacing(10);
    centerVLayout->addLayout(tableViewLayout);
    centerVLayout->addStretch();
    addCentralWidget(centralWidget, true, false, 0);
}

CBTableView::~CBTableView() {}
