config_zcm.cpp
Go to the documentation of this file.
1 #include "config_zcm.h"
2 #include "ui_config_zcm.h"
3 
4 #include <QFileDialog>
5 #include <QMessageBox>
6 #include <QSettings>
7 #include <QFileInfo>
8 
9 
10 ConfigZCM::ConfigZCM(QString prefix, QWidget *parent)
11  : QWidget(parent)
12  , ui(new Ui::ConfigZCM)
13  , _prefix(prefix)
14 {
15  ui->setupUi(this);
16 
17  QSettings settings;
18  auto libs = settings.value(_prefix + "::manual_libs", {}).toStringList();
19  for (auto const &lib : libs) {
20  ui->listWidgetLibs->addItem(lib);
21  }
22 
23  bool is_manual = settings.value(_prefix + "::is_manual", false).toBool();
24  ui->radioManualLibrary->setChecked(is_manual);
25 }
26 
28 {
29  QSettings settings;
30 
31  QStringList libs;
32  for (int row = 0; row < ui->listWidgetLibs->count(); row++) {
33  libs << ui->listWidgetLibs->item(row)->text();
34  }
35  settings.setValue(_prefix + "::manual_libs", libs);
36  settings.setValue(_prefix + "::is_manual", ui->radioManualLibrary->isChecked());
37  delete ui;
38 }
39 
40 QString ConfigZCM::getLibraries() const
41 {
42  if (ui->radioEnvironmentLibrary->isChecked()) {
43  return getenv("PJ_ZCMTYPES_LIB_PATH");
44  } else {
45  QStringList libs;
46  for (int row = 0; row < ui->listWidgetLibs->count(); row++) {
47  libs << ui->listWidgetLibs->item(row)->text();
48  }
49  return libs.join(":");
50  }
51 }
52 
54 {
55  if (checked) {
56  ui->radioManualLibrary->setChecked(false);
57  }
58 }
59 
61 {
62  if (checked) {
63  ui->radioEnvironmentLibrary->setChecked(false);
64  }
65  ui->manualWidget->setEnabled(checked);
66 }
67 
69 {
70  QSettings settings;
71  auto dir = settings.value(_prefix + "::load_dir", QDir::currentPath()).toString();
72  auto files = QFileDialog::getOpenFileNames(this, "Zcm libraries", dir, "*.so *.dll");
73  for (auto filename : files) {
74  if (ui->listWidgetLibs->findItems(filename, Qt::MatchExactly).empty()) {
75  ui->listWidgetLibs->addItem(filename);
76  }
77  }
78  ui->listWidgetLibs->sortItems();
79  if(!files.empty()){
80  settings.setValue(_prefix + "::load_dir",
81  QFileInfo(files.front()).dir().absolutePath());
82  }
83 }
84 
86 {
87  auto items = ui->listWidgetLibs->selectedItems();
88  for(auto item: items) {
89  ui->listWidgetLibs->removeItemWidget(item);
90  delete item;
91  }
92 }
93 
void on_radioEnvironmentLibrary_toggled(bool checked)
Definition: config_zcm.cpp:53
void on_radioManualLibrary_toggled(bool checked)
Definition: config_zcm.cpp:60
QString _prefix
Definition: config_zcm.h:30
void on_pushButtonRemove_clicked()
Definition: config_zcm.cpp:85
lib
Definition: sol.hpp:7809
QString getLibraries() const
Definition: config_zcm.cpp:40
Ui::ConfigZCM * ui
Definition: config_zcm.h:29
void on_pushButtonAdd_clicked()
Definition: config_zcm.cpp:68
ConfigZCM(QString prefix, QWidget *parent=nullptr)
Definition: config_zcm.cpp:10


plotjuggler
Author(s): Davide Faconti
autogenerated on Mon Jun 19 2023 03:01:01