Bladeren bron

fixed some bugs as argument values were being changed before the task was sent by client
added a method to ArgDialog so we can notify it upon successful scheduling of task, at which point it can reset its task

logicp 4 jaren geleden
bovenliggende
commit
49ff5d2174
6 gewijzigde bestanden met toevoegingen van 14 en 11 verwijderingen
  1. 4 1
      headers/util.hpp
  2. 1 0
      include/ui/argdialog.h
  3. 7 3
      src/argdialog.cpp
  4. 1 2
      src/client.cpp
  5. 0 2
      src/instagram_task.cpp
  6. 1 3
      src/mainwindow.cpp

+ 4 - 1
headers/util.hpp

@@ -122,7 +122,10 @@ bool isUploadCompleteEvent(const char* event) {
 bool isEvent(const char* data) {
     Document d;
     d.Parse(data);
-    return strcmp(d["type"].GetString(), "event") == 0;
+    if (d.HasMember("type")); {
+      return strcmp(d["type"].GetString(), "event") == 0;
+    }
+    return false;
 }
 
 template <typename T>

+ 1 - 0
include/ui/argdialog.h

@@ -31,6 +31,7 @@ class ArgDialog : public QDialog {
   void setFilePath(QString path);
   virtual void accept() override;
   void setConfig(QString config_string);
+  void notifyClientSuccess();
 
   ~ArgDialog();
 

+ 7 - 3
src/argdialog.cpp

@@ -127,7 +127,8 @@ ArgDialog::ArgDialog(QWidget *parent) : QDialog(parent), ui(new Ui::ArgDialog),
 
   QObject::connect(ui->dateTime, &QDateTimeEdit::dateTimeChanged, this, [this]() {
     auto date_time = ui->dateTime->dateTime();
-    m_task->setArgument("datetime", date_time.toString());
+    m_task->setArgument("datetime", QString::number(date_time.toTime_t()));
+    auto new_time = std::get<Scheduler::VariantIndex::QSTRING>(m_task->getTaskArgument("datetime"));
     qDebug() << "Time changed to" << date_time;
   });
 
@@ -140,7 +141,6 @@ ArgDialog::ArgDialog(QWidget *parent) : QDialog(parent), ui(new Ui::ArgDialog),
                        if (m_task->isReady()) {
                          emit ArgDialog::taskRequestReady(m_task);
                        }
-                       clearPost(); // reset m_ig_post to default values
                      }
                    });
 
@@ -233,7 +233,7 @@ void ArgDialog::clearPost() {
   ui->dateTime->setDateTime(date_time);
   m_task->clear();
   m_task->setDefaultValues();
-  m_task->setArgument("datetime", date_time.toString());
+  m_task->setArgument("datetime", QString::number(date_time.toTime_t()));
   m_task->setArgument("user", ui->user->currentText());
   ui->argType->setCurrentIndex(0);
   ui->argList->setRowCount(0);
@@ -379,3 +379,7 @@ void ArgDialog::setArgTypes() {
     ui->argType->addItem(arg->text());
   }
 }
+
+void ArgDialog::notifyClientSuccess() {
+  clearPost();
+}

+ 1 - 2
src/client.cpp

@@ -243,7 +243,6 @@ std::string getTaskFileInfo(std::vector<SentFile> files) {
  */
 void Client::sendTaskEncoded(Scheduler::Task* task) {
   if (task->getType() == Scheduler::TaskType::INSTAGRAM) {
-    auto mask_value = std::get<Scheduler::VariantIndex::INTEGER>(task->getTaskArgument("mask"));
     flatbuffers::Offset<IGTask> ig_task =
         CreateIGTask(
             builder,
@@ -265,7 +264,7 @@ void Client::sendTaskEncoded(Scheduler::Task* task) {
             builder.CreateString(
 /*7*/           KString{std::get<Scheduler::VariantIndex::QSTRING>(task->getTaskArgument("link_in_bio"))}),
 /*8*/                   std::get<Scheduler::VariantIndex::BOOLEAN>(task->getTaskArgument("is_video")),
-/*9*/                   std::get<Scheduler::VariantIndex::INTEGER>(task->getTaskArgument("mask")),
+/*9*/                   getSelectedApp(),
             builder.CreateString(
 /*10*/          KString{std::get<Scheduler::VariantIndex::QSTRING>(task->getTaskArgument("header"))}),
             builder.CreateString(

+ 0 - 2
src/instagram_task.cpp

@@ -19,7 +19,6 @@ static const uint8_t REQUESTED_BY_PHRASE = 9;
 static const uint8_t FILES = 10;
 static const uint8_t USER = 11;
 static const uint8_t IS_VIDEO = 12;
-static const uint8_t MASK = 13;
 }  // namespace TaskIndex
 
 /**
@@ -48,7 +47,6 @@ void InstagramTask::defineTaskArguments() {
   m_arguments.emplace_back(std::make_unique<TaskArgument>("files", Type::FILEVECTOR, QVector<KFileData>{}));
   m_arguments.emplace_back(std::make_unique<TaskArgument>("user", Type::TEXT, QString{}));
   m_arguments.emplace_back(std::make_unique<TaskArgument>("is_video", Type::BOOLEAN, bool{}));
-  m_arguments.emplace_back(std::make_unique<TaskArgument>("mask", Type::INTEGER, -1));
 }
 
 /**

+ 1 - 3
src/mainwindow.cpp

@@ -212,9 +212,6 @@ void MainWindow::connectClient() {
       [this](Task* task) {
         auto mask = q_client->getSelectedApp();
         if (mask > -1) {
-            qDebug() << "Scheduling a task";
-            task->setArgument("mask", mask);
-            auto updated_mask_value = std::get<VariantIndex::INTEGER>(task->getTaskArgument("mask"));
             q_client->scheduleTask(task);
         }
       });
@@ -320,6 +317,7 @@ void MainWindow::updateMessages(int t, const QString& message, StringVec v) {
     if (isKEvent<QString>(message,
                           Event::TASK_SCHEDULED)) {  // Event was scheduled task
       event_message += ". Details:\n" + parseTaskInfo(v);
+      arg_ui->notifyClientSuccess(); // Update ArgDialog accordingly
     }
     m_events.push_back(event_message);
     m_event_model->setItem(m_event_model->rowCount(),