diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-11-28 16:31:48 +0100 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-11-28 16:31:48 +0100 |
commit | f0a7c1760a0186ebfb7d80da34d6675b6d987303 (patch) | |
tree | 5a20e7618f093c13cbc7ba844d37fe4066a5ba48 /src/session/sessiondialog.cpp | |
parent | Rewrite Session saving and loading (diff) | |
download | smolbote-f0a7c1760a0186ebfb7d80da34d6675b6d987303.tar.xz |
Remove old session code
Diffstat (limited to 'src/session/sessiondialog.cpp')
-rw-r--r-- | src/session/sessiondialog.cpp | 24 |
1 files changed, 19 insertions, 5 deletions
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<SessionForm *>(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<SessionForm *>(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<SessionForm *>(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<Browser *>(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<Browser *>(qApp); auto doc = QJsonDocument::fromJson(json.readAll()); Session::restoreSession(doc.object()); json.close(); |