argdialog.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #ifndef ARGDIALOG_H
  2. #define ARGDIALOG_H
  3. #include <include/ui/kfiledialog.h>
  4. #include <QDialog>
  5. #include <QFile>
  6. #include <QFileDialog>
  7. #include <QKeyEvent>
  8. #include <QMessageBox>
  9. #include <QPushButton>
  10. #include <headers/util.hpp>
  11. #include <include/task/instagram_task.hpp>
  12. #include <include/task/generic_task.hpp>
  13. #include <include/task/task.hpp>
  14. #include <string_view>
  15. #include <unordered_map>
  16. #include <QVBoxLayout>
  17. #include <QLabel>
  18. #include <QMovie>
  19. using namespace Scheduler;
  20. typedef std::string Str;
  21. class KLoader : public QWidget {
  22. public:
  23. KLoader() {
  24. QWidget* verticalLayoutWidget = new QWidget();
  25. verticalLayoutWidget->setObjectName(QString::fromUtf8("verticalLayoutWidget"));
  26. verticalLayoutWidget->setGeometry(QRect(10, 10, 500, 500));
  27. QVBoxLayout* verticalLayout = new QVBoxLayout(verticalLayoutWidget);
  28. verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
  29. verticalLayout->setContentsMargins(0, 0, 0, 0);
  30. QLabel* loader_title = new QLabel{"Loading...", this};
  31. verticalLayout->addWidget(loader_title);
  32. }
  33. };
  34. namespace Ui {
  35. class ArgDialog;
  36. }
  37. class ArgDialog : public QDialog {
  38. Q_OBJECT
  39. public:
  40. explicit ArgDialog(QWidget *parent = nullptr);
  41. virtual void keyPressEvent(QKeyEvent* e) override;
  42. void setFilePath(QString path);
  43. virtual void accept() override;
  44. void setAppName(QString task_name);
  45. void setConfig(QJsonObject config);
  46. void notifyClientSuccess();
  47. ~ArgDialog();
  48. signals:
  49. void taskRequestReady(Scheduler::Task *task);
  50. protected:
  51. void showEvent(QShowEvent* event) override;
  52. private:
  53. void clearPost();
  54. void defaultPost();
  55. void clearTask();
  56. void displayLoader(bool visible);
  57. void addToArgList(QString value, QString type);
  58. void addOrReplaceInArgList(QString value, QString type);
  59. void addHashtag(QString tag);
  60. void addRequestedBy(QString value);
  61. void setTaskArguments();
  62. void setArgTypes();
  63. Ui::ArgDialog *ui;
  64. void addItem(QString value, QString type);
  65. void addFile(QString path);
  66. Task* m_task;
  67. QString m_file_path;
  68. QJsonObject m_config;
  69. QString m_app_name;
  70. QMovie* m_loader;
  71. QWidget m_loader_widget;
  72. QVBoxLayout m_loader_layout;
  73. };
  74. #endif // ARGDIALOG_H