ctkDICOMQueryRetrieveWidget.cpp 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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. connect(d->addToDatabase, SIGNAL(clicked()), this, SLOT(onAddToDatabase()));
  32. QSettings settings;
  33. if ( settings.value("DatabaseDirectory", "") != "" )
  34. {
  35. d->sqlDirectory->setDirectory(settings.value("DatabaseDirectory").toString());
  36. }
  37. }
  38. //----------------------------------------------------------------------------
  39. ctkDICOMQueryRetrieveWidget::~ctkDICOMQueryRetrieveWidget()
  40. {
  41. }
  42. //----------------------------------------------------------------------------
  43. void ctkDICOMQueryRetrieveWidget::onDatabaseDirectoryChanged(const QString& directory)
  44. {
  45. QSettings settings;
  46. settings.setValue("DatabaseDirectory", directory);
  47. settings.sync();
  48. }
  49. //----------------------------------------------------------------------------
  50. void ctkDICOMQueryRetrieveWidget::onTabCloseRequested(int index)
  51. {
  52. Q_D(ctkDICOMQueryRetrieveWidget);
  53. if (index == 0)
  54. {
  55. return;
  56. }
  57. d->results->removeTab(index);
  58. }
  59. void ctkDICOMQueryRetrieveWidget::onAddToDatabase()
  60. {
  61. Q_D(ctkDICOMQueryRetrieveWidget);
  62. //d->
  63. }
  64. //----------------------------------------------------------------------------
  65. void ctkDICOMQueryRetrieveWidget::processQuery()
  66. {
  67. Q_D(ctkDICOMQueryRetrieveWidget);
  68. d->serverNodeWidget->populateQuery();
  69. d->queryWidget->populateQuery();
  70. QTreeView *queryResults = new QTreeView;
  71. int tabIndex = d->results->addTab(queryResults, tr("Query Results"));
  72. d->results->setCurrentIndex(tabIndex);
  73. }