Procházet zdrojové kódy

able to pass config for default file directory, to inform argdialog`s file open dialog

logicp před 5 roky
rodič
revize
7bd41c5543

+ 2 - 0
include/argdialog.h

@@ -63,6 +63,7 @@ class ArgDialog : public QDialog {
  public:
   explicit ArgDialog(QWidget *parent = nullptr);
   virtual void keyPressEvent(QKeyEvent* e);
+  void setFilePath(QString path);
   ~ArgDialog();
 
  signals:
@@ -83,6 +84,7 @@ class ArgDialog : public QDialog {
   void addFile(QString path);
   Task m_task;
   IGPost m_ig_post;
+  QString m_file_path;
 };
 
 #endif  // ARGDIALOG_H

+ 1 - 1
include/kfiledialog.h

@@ -7,7 +7,7 @@ class KFileDialog : QFileDialog {
 Q_OBJECT
 public:
     KFileDialog();
-    QString openFileDialog();
+    QString openFileDialog(QString file_path = "");
 };
 
 #endif // KFILEDIALOG_H

+ 3 - 1
include/mainwindow.h

@@ -70,8 +70,10 @@ private:
     QList<QString> m_events;
     QStandardItemModel* m_process_model;
     QStandardItemModel* m_event_model;
+    /** Misc */
+    ConfigJson m_config;
 
-private slots:
+   private slots:
     /** Receivers */
     void connectClient();
     void updateMessages(int t, const QString& s, StringVec v);

+ 3 - 1
src/argdialog.cpp

@@ -21,7 +21,7 @@ ArgDialog::ArgDialog(QWidget *parent)
     ->setStyleSheet(QString("background:%1").arg("#2f535f"));
   QObject::connect(ui->addFile, &QPushButton::clicked, this, [this]() {
     KFileDialog file_dialog{};
-    auto file_path = file_dialog.openFileDialog();
+    auto file_path = file_dialog.openFileDialog(m_file_path);
     qDebug() << "Selected file:" << file_path;
     if (file_path.size() > 0) {
       auto slash_index = file_path.lastIndexOf("/") + 1;
@@ -279,6 +279,8 @@ void ArgDialog::keyPressEvent(QKeyEvent *e) {
     }
 }
 
+void ArgDialog::setFilePath(QString path) { m_file_path = path; }
+
 ArgDialog::~ArgDialog()
 {
     delete ui;

+ 7 - 3
src/kfiledialog.cpp

@@ -5,7 +5,11 @@ KFileDialog::KFileDialog()
     this->setStyleSheet("QFileDialog QWidget { background-color: rgb(0, 43, 54); color: rgb(131, 148, 150); font-weight: 700;}");
 }
 
-QString KFileDialog::openFileDialog() {
-    return this->getOpenFileName(this,
-                                                 tr("Open File"), "~", tr("All Files (*.*)"), nullptr, QFileDialog::DontUseNativeDialog);
+QString KFileDialog::openFileDialog(QString file_path) {
+  if (!file_path.isEmpty()) {
+    this->setDirectory(file_path);
+  }
+  return this->getOpenFileName(this, tr("Open File"), "~",
+                               tr("All Files (*.*)"), nullptr,
+                               QFileDialog::DontUseNativeDialog);
 }

+ 6 - 2
src/mainwindow.cpp

@@ -41,6 +41,11 @@ MainWindow::MainWindow(int argc, char** argv, QWidget* parent)
   ui->setupUi(this);
   this->setWindowTitle("KYGUI");
   setConnectScreen();
+  m_config = getConfigObject(ui->kyConfig->toPlainText());
+  QString file_path = m_config.at("fileDirectory");
+  if (file_path != NULL) {
+    arg_ui->setFilePath(file_path);
+  }
   connect(ui->connect, &QPushButton::clicked, this, &MainWindow::connectClient);
   ui->processList->setModel(m_process_model);
   ui->eventList->setModel(m_event_model);
@@ -238,8 +243,7 @@ void MainWindow::updateMessages(int t, const QString& message, StringVec v) {
     qDebug() << "Updating commands";
     QComboBox* app_list = ui->appList;
     app_list->clear();
-    ConfigJson config = getConfigObject(ui->kyConfig->toPlainText());
-    QString default_app = config.at("defaultApp");
+    QString default_app = m_config.at("defaultApp");
     int app_index = 0;
     for (const auto& s : v) {
       app_list->addItem(s);