dont preview by default, Vault::delete_file

This commit is contained in:
2025-11-02 21:44:10 +01:00
parent 3e33504e22
commit cf1ac6d556
10 changed files with 110 additions and 68 deletions

View File

@@ -6,9 +6,11 @@
#include <QTemporaryFile>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow) {
: QMainWindow(parent), ui(std::make_unique<Ui::MainWindow>()) {
ui->setupUi(this);
ui->filePreview->setVisible(false);
connect(ui->actionNew, &QAction::triggered, this, [this]() {
QString path = QFileDialog::getSaveFileName(this, "Choose vault location",
QDir::currentPath(),
@@ -33,10 +35,9 @@ MainWindow::MainWindow(QWidget *parent)
reload_fs_tree();
});
connect(ui->fsTreeWidget, &QTreeWidget::itemClicked,
[this](QTreeWidgetItem *item, int column) {
preview_file(item->text(column).toStdString());
});
connect(
ui->fsTreeWidget, &QTreeWidget::itemClicked,
[this](QTreeWidgetItem *, int) { ui->filePreview->setVisible(false); });
connect(ui->fsTreeWidget, &QTreeWidget::customContextMenuRequested, this,
&MainWindow::file_context_menu);
@@ -54,7 +55,7 @@ MainWindow::MainWindow(QWidget *parent)
std::string content((std::istreambuf_iterator<char>(file)),
std::istreambuf_iterator<char>());
m_vault->write_file(path_to_filename(path.toStdString()), content);
m_vault->create_file(path_to_filename(path.toStdString()), content);
}
reload_fs_tree();
@@ -62,6 +63,7 @@ MainWindow::MainWindow(QWidget *parent)
}
void MainWindow::reload_fs_tree() {
ui->menuFiles->setEnabled(true);
ui->fsTreeWidget->clear();
auto headers = m_vault->read_file_headers();
@@ -69,11 +71,14 @@ void MainWindow::reload_fs_tree() {
auto *item = new QTreeWidgetItem(ui->fsTreeWidget);
item->setText(0, QString::fromStdString(header.name));
item->setText(1, QString::number(header.size));
item->setText(2, QString::number(header.offset));
}
ui->fsTreeWidget->resizeColumnToContents(0);
}
void MainWindow::preview_file(const std::string &filename) {
ui->filePreview->setVisible(true);
auto content = m_vault->read_file(filename);
if (content) {
ui->filePreview->setText(QString::fromStdString(content.value()));
@@ -102,6 +107,8 @@ void MainWindow::edit_file(const std::string &filename) {
QTextStream in(&temp_file);
m_vault->update_file(filename, in.readAll().toStdString());
reload_fs_tree();
// QTemporaryFile gets deleted when it goes out of scope
} else {
qWarning() << "File to edit not found";
}
@@ -115,6 +122,11 @@ void MainWindow::file_context_menu(const QPoint &pos) {
QMenu menu(this);
QAction *preview_action = menu.addAction(
style()->standardIcon(QStyle::SP_FileDialogContentsView), "Preview");
connect(preview_action, &QAction::triggered, this,
[this, item]() { preview_file(item->text(0).toStdString()); });
QAction *edit_action = menu.addAction(
style()->standardIcon(QStyle::SP_FileDialogDetailedView), "Edit");
connect(edit_action, &QAction::triggered, this,