ctkDICOMAppWidget.cpp 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. #include <QDebug>
  2. #include <QTreeView>
  3. #include <QTabBar>
  4. #include <QSettings>
  5. #include <QAction>
  6. #include <QModelIndex>
  7. // ctkDICOMWidgets includes
  8. #include "ctkDICOMDatabase.h"
  9. #include "ctkDICOMModel.h"
  10. #include "ctkDICOMAppWidget.h"
  11. #include "ctkDICOMQueryResultsTabWidget.h"
  12. #include "ui_ctkDICOMAppWidget.h"
  13. #include "ctkDirectoryButton.h"
  14. #include "ctkDICOMQueryRetrieveWidget.h"
  15. //logger
  16. #include <ctkLogger.h>
  17. static ctkLogger logger("org.commontk.DICOM.Widgets.ctkDICOMAppWidget");
  18. //----------------------------------------------------------------------------
  19. class ctkDICOMAppWidgetPrivate: public Ui_ctkDICOMAppWidget
  20. {
  21. public:
  22. ctkDICOMQueryRetrieveWidget* queryRetrieveWidget;
  23. ctkDICOMAppWidgetPrivate(){}
  24. };
  25. //----------------------------------------------------------------------------
  26. // ctkDICOMAppWidgetPrivate methods
  27. //----------------------------------------------------------------------------
  28. // ctkDICOMAppWidget methods
  29. //----------------------------------------------------------------------------
  30. ctkDICOMAppWidget::ctkDICOMAppWidget(QWidget* _parent):Superclass(_parent),
  31. d_ptr(new ctkDICOMAppWidgetPrivate)
  32. {
  33. Q_D(ctkDICOMAppWidget);
  34. d->setupUi(this);
  35. //Set toolbar button style
  36. d->toolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
  37. d->queryRetrieveWidget = new ctkDICOMQueryRetrieveWidget();
  38. connect(d->directoryButton, SIGNAL(directoryChanged(const QString&)), this, SLOT(onDatabaseDirectoryChanged(const QString&)));
  39. //Set thumbnails width in thumbnail widget
  40. d->thumbnailsWidget->setThumbnailWidth(128);
  41. //Test add thumbnails
  42. d->thumbnailsWidget->addTestThumbnail();
  43. //connect signal and slots
  44. connect(d->treeView, SIGNAL(clicked(const QModelIndex&)), this, SLOT(onDICOMModelSelected(const QModelIndex &)));
  45. connect(d->thumbnailsWidget, SIGNAL(selected(const ctkDICOMThumbnailWidget&)), this, SLOT(onThumbnailSelected(const ctkDICOMThumbnailWidget&)));
  46. }
  47. //----------------------------------------------------------------------------
  48. ctkDICOMAppWidget::~ctkDICOMAppWidget()
  49. {
  50. Q_D(ctkDICOMAppWidget);
  51. d->queryRetrieveWidget->deleteLater();
  52. }
  53. //----------------------------------------------------------------------------
  54. void ctkDICOMAppWidget::onDatabaseDirectoryChanged(const QString& directory)
  55. {
  56. //Q_D(ctkDICOMAppWidget);
  57. QSettings settings;
  58. settings.setValue("DatabaseDirectory", directory);
  59. settings.sync();
  60. }
  61. void ctkDICOMAppWidget::onAddToDatabase()
  62. {
  63. //Q_D(ctkDICOMAppWidget);
  64. //d->
  65. }
  66. //----------------------------------------------------------------------------
  67. void ctkDICOMAppWidget::onImport(){
  68. }
  69. void ctkDICOMAppWidget::onExport(){
  70. }
  71. void ctkDICOMAppWidget::onQuery(){
  72. Q_D(ctkDICOMAppWidget);
  73. d->queryRetrieveWidget->show();
  74. d->queryRetrieveWidget->raise();
  75. }
  76. void ctkDICOMAppWidget::onDICOMModelSelected(const QModelIndex& index){
  77. Q_D(ctkDICOMAppWidget);
  78. //TODO: update thumbnails and previewer
  79. d->thumbnailsWidget->setModelIndex(index);
  80. }
  81. void ctkDICOMAppWidget::onThumbnailSelected(const ctkDICOMThumbnailWidget& widget){
  82. //TODO: update previewer
  83. }