ctkDICOMQueryRetrieveWidget.cpp 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. }
  31. //----------------------------------------------------------------------------
  32. ctkDICOMQueryRetrieveWidget::~ctkDICOMQueryRetrieveWidget()
  33. {
  34. }
  35. //----------------------------------------------------------------------------
  36. void ctkDICOMQueryRetrieveWidget::onDatabaseDirectoryChanged(const QString& directory)
  37. {
  38. QSettings settings;
  39. settings.setValue("DatabaseDirectory", directory);
  40. settings.sync();
  41. }
  42. //----------------------------------------------------------------------------
  43. void ctkDICOMQueryRetrieveWidget::onTabCloseRequested(int index)
  44. {
  45. Q_D(ctkDICOMQueryRetrieveWidget);
  46. if (index == 0)
  47. {
  48. return;
  49. }
  50. d->results->removeTab(index);
  51. }
  52. //----------------------------------------------------------------------------
  53. void ctkDICOMQueryRetrieveWidget::processQuery()
  54. {
  55. Q_D(ctkDICOMQueryRetrieveWidget);
  56. d->serverNodeWidget->populateQuery();
  57. d->queryWidget->populateQuery();
  58. QTreeView *queryResults = new QTreeView;
  59. int tabIndex = d->results->addTab(queryResults, tr("Query Results"));
  60. d->results->setCurrentIndex(tabIndex);
  61. }