ctkDICOMQueryRetrieveWidget.cpp 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #include <QDebug>
  2. #include <QTreeView>
  3. #include <QTabBar>
  4. #include <QSettings>
  5. // ctkDICOMWidgets includes
  6. #include "ctkDICOMQueryRetrieveWidget.h"
  7. #include "ctkDICOMQueryResultsTabWidget.h"
  8. #include "ui_ctkDICOMQueryRetrieveWidget.h"
  9. #include <ctkLogger.h>
  10. static ctkLogger logger("org.commontk.DICOM.Widgets.ctkDICOMQueryRetrieveWidget");
  11. //----------------------------------------------------------------------------
  12. class ctkDICOMQueryRetrieveWidgetPrivate: public Ui_ctkDICOMQueryRetrieveWidget
  13. {
  14. public:
  15. ctkDICOMQueryRetrieveWidgetPrivate(){}
  16. };
  17. //----------------------------------------------------------------------------
  18. // ctkDICOMQueryRetrieveWidgetPrivate methods
  19. //----------------------------------------------------------------------------
  20. // ctkDICOMQueryRetrieveWidget methods
  21. //----------------------------------------------------------------------------
  22. ctkDICOMQueryRetrieveWidget::ctkDICOMQueryRetrieveWidget(QWidget* _parent):Superclass(_parent),
  23. d_ptr(new ctkDICOMQueryRetrieveWidgetPrivate)
  24. {
  25. Q_D(ctkDICOMQueryRetrieveWidget);
  26. d->setupUi(this);
  27. d->results->disableCloseOnTab(0);
  28. connect(d->queryButton, SIGNAL(clicked()), this, SLOT(processQuery()));
  29. connect(d->results, SIGNAL(tabCloseRequested(int)), this, SLOT(onTabCloseRequested(int)));
  30. connect(d->sqlDirectory, SIGNAL(directoryChanged(const QString&)), this, SLOT(onDatabaseDirectoryChanged(const QString&)));
  31. QSettings settings;
  32. if ( settings.value("DatabaseDirectory", "") != "" )
  33. {
  34. d->sqlDirectory->setDirectory(settings.value("DatabaseDirectory").toString());
  35. }
  36. }
  37. //----------------------------------------------------------------------------
  38. ctkDICOMQueryRetrieveWidget::~ctkDICOMQueryRetrieveWidget()
  39. {
  40. }
  41. //----------------------------------------------------------------------------
  42. void ctkDICOMQueryRetrieveWidget::onDatabaseDirectoryChanged(const QString& directory)
  43. {
  44. QSettings settings;
  45. settings.setValue("DatabaseDirectory", directory);
  46. settings.sync();
  47. }
  48. //----------------------------------------------------------------------------
  49. void ctkDICOMQueryRetrieveWidget::onTabCloseRequested(int index)
  50. {
  51. Q_D(ctkDICOMQueryRetrieveWidget);
  52. if (index == 0)
  53. {
  54. return;
  55. }
  56. d->results->removeTab(index);
  57. }
  58. //----------------------------------------------------------------------------
  59. void ctkDICOMQueryRetrieveWidget::processQuery()
  60. {
  61. Q_D(ctkDICOMQueryRetrieveWidget);
  62. d->serverNodeWidget->populateQuery();
  63. d->queryWidget->populateQuery();
  64. QTreeView *queryResults = new QTreeView;
  65. int tabIndex = d->results->addTab(queryResults, tr("Query Results"));
  66. d->results->setCurrentIndex(tabIndex);
  67. }