From f0a7c1760a0186ebfb7d80da34d6675b6d987303 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Wed, 28 Nov 2018 16:31:48 +0100 Subject: Remove old session code --- src/session/sessiondialog.cpp | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'src/session/sessiondialog.cpp') diff --git a/src/session/sessiondialog.cpp b/src/session/sessiondialog.cpp index 5fd65c3..287950d 100644 --- a/src/session/sessiondialog.cpp +++ b/src/session/sessiondialog.cpp @@ -37,9 +37,7 @@ SessionDialog::SessionDialog(QWidget *parent) ui->listWidget->setItemWidget(item, widget); } -#ifdef QT_DEBUG - ui->listWidget->addItem(tr("Start new session")); -#endif + ui->listWidget->addItem(tr("Create a new window")); connect(ui->listWidget, &QListWidget::currentItemChanged, this, [this](QListWidgetItem *currentItem, QListWidgetItem *previousItem) { auto *currentWidget = qobject_cast(ui->listWidget->itemWidget(currentItem)); @@ -60,11 +58,15 @@ SessionDialog::SessionDialog(QWidget *parent) } }); - connect(this, &SessionDialog::accepted, this, [this]() { + connect(this, &SessionDialog::accepted, this, [this, browser]() { auto *currentWidget = qobject_cast(ui->listWidget->itemWidget(ui->listWidget->currentItem())); if(currentWidget) this->openSession(currentWidget->ui->label->text()); + else + browser->createWindow(); }); + + connect(ui->search, &QLineEdit::textEdited, this, &SessionDialog::search); } SessionDialog::~SessionDialog() @@ -72,6 +74,19 @@ SessionDialog::~SessionDialog() delete ui; } +void SessionDialog::search(const QString &text) +{ + for(int i = 0; i < ui->listWidget->count(); ++i) { + auto *item = ui->listWidget->item(i); + auto *widget = qobject_cast(ui->listWidget->itemWidget(item)); + + if(widget == nullptr) + item->setHidden(!text.isEmpty()); + else + item->setHidden(!widget->ui->label->text().contains(text)); + } +} + void SessionDialog::openSession(const QString &filename) { auto *browser = qobject_cast(qApp); @@ -79,7 +94,6 @@ void SessionDialog::openSession(const QString &filename) QFile json(filename); if(json.open(QIODevice::ReadOnly | QIODevice::Text)) { - auto *browser = qobject_cast(qApp); auto doc = QJsonDocument::fromJson(json.readAll()); Session::restoreSession(doc.object()); json.close(); -- cgit v1.2.1