aboutsummaryrefslogtreecommitdiff
path: root/src/session/sessiondialog.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-11-28 16:31:48 +0100
committerAqua-sama <aqua@iserlohn-fortress.net>2018-11-28 16:31:48 +0100
commitf0a7c1760a0186ebfb7d80da34d6675b6d987303 (patch)
tree5a20e7618f093c13cbc7ba844d37fe4066a5ba48 /src/session/sessiondialog.cpp
parentRewrite Session saving and loading (diff)
downloadsmolbote-f0a7c1760a0186ebfb7d80da34d6675b6d987303.tar.xz
Remove old session code
Diffstat (limited to 'src/session/sessiondialog.cpp')
-rw-r--r--src/session/sessiondialog.cpp24
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();