ImageSourceToolbar.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "ImageSourceToolbar.hpp"
  2. #include "ui_image-source-toolbar.h"
  3. #include <qt-wrappers.hpp>
  4. #include "moc_ImageSourceToolbar.cpp"
  5. ImageSourceToolbar::ImageSourceToolbar(QWidget *parent, OBSSource source)
  6. : SourceToolbar(parent, source),
  7. ui(new Ui_ImageSourceToolbar)
  8. {
  9. ui->setupUi(this);
  10. obs_module_t *mod = obs_get_module("image-source");
  11. ui->pathLabel->setText(obs_module_get_locale_text(mod, "File"));
  12. OBSDataAutoRelease settings = obs_source_get_settings(source);
  13. std::string file = obs_data_get_string(settings, "file");
  14. ui->path->setText(file.c_str());
  15. }
  16. ImageSourceToolbar::~ImageSourceToolbar() {}
  17. void ImageSourceToolbar::on_browse_clicked()
  18. {
  19. OBSSource source = GetSource();
  20. if (!source) {
  21. return;
  22. }
  23. obs_property_t *p = obs_properties_get(props.get(), "file");
  24. const char *desc = obs_property_description(p);
  25. const char *filter = obs_property_path_filter(p);
  26. const char *default_path = obs_property_path_default_path(p);
  27. QString startDir = ui->path->text();
  28. if (startDir.isEmpty())
  29. startDir = default_path;
  30. QString path = OpenFile(this, desc, startDir, filter);
  31. if (path.isEmpty()) {
  32. return;
  33. }
  34. ui->path->setText(path);
  35. SaveOldProperties(source);
  36. OBSDataAutoRelease settings = obs_data_create();
  37. obs_data_set_string(settings, "file", QT_TO_UTF8(path));
  38. obs_source_update(source, settings);
  39. SetUndoProperties(source);
  40. }