#include "FileExplorer.h"
#include "CustomFileDelegate.h"


file_explorer::file_explorer()  {
    model = new QFileSystemModel(this);
    resize(1000, 800);
    tree_view = new QTreeView(this);
    tree_view->setModel(model);
    it = new Custom_File_Delegate(this, tree_view);
    tree_view->setItemDelegate(it);
    tree_view->setHeaderHidden(false);
    tree_view->setColumnWidth(0, 250);
    tree_view->setAnimated(true);
    tree_view->setSortingEnabled(true);
    tree_view->setSelectionMode(QAbstractItemView::SingleSelection);
    layout = new QVBoxLayout(this);
    show_root_dir = new QLineEdit;
    showFocusFile = new QLabel;
    layout->addWidget(show_root_dir);
    layout->addWidget(tree_view);
    auto bottom = new QHBoxLayout();
    confirmButton = new QPushButton("确定");
    cancelButton = new QPushButton("取消");
    confirmButton->setFixedHeight(height);
    cancelButton->setFixedHeight(height);

    bottom->addWidget(showFocusFile);
    bottom->addWidget(confirmButton);
    bottom->addWidget(cancelButton);
    layout->addLayout(bottom);
    change_root("D:/");

    connect(show_root_dir, &QLineEdit::returnPressed, [this](){
        change_root(show_root_dir->text());
    });
    connect(tree_view, &QTreeView::clicked, [this](const QModelIndex &index) {
        focus = model->fileInfo(index);
        showFocusFile->setText(focus.fileName());
    });
}