/* * This file is part of smolbote. It's copyrighted by the contributors recorded * in the version control history of the file, available from its original * location: https://library.iserlohn-fortress.net/aqua/smolbote.git * * SPDX-License-Identifier: GPL-3.0 */ #ifndef SMOLBOTE_SESSIONDIALOG_H #define SMOLBOTE_SESSIONDIALOG_H #include "session.hpp" #include #include namespace Ui { class SessionDialog; } class QListWidgetItem; class SessionDialog : public QDialog { Q_OBJECT public: explicit SessionDialog(QWidget *parent = nullptr); explicit SessionDialog(const SessionDialog &) = delete; explicit SessionDialog(SessionDialog &&) = delete; SessionDialog &operator=(const SessionDialog &) = delete; SessionDialog &operator=(SessionDialog &&) = delete; ~SessionDialog() override; std::optional> pickSession(); private slots: void search(const QString &text); static void openSession(const QString &filename); private: const QString create_window_str; Ui::SessionDialog *ui; QMetaObject::Connection accepted_connection; }; #endif // SMOLBOTE_SESSIONDIALOG_H