ctkDICOMModelTest2.cpp 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. // Qt includes
  2. #include <QApplication>
  3. #include <QDebug>
  4. #include <QFileInfo>
  5. #include <QHBoxLayout>
  6. #include <QTimer>
  7. #include <QTreeView>
  8. // ctkDICOMCore includes
  9. #include "ctkDICOMDatabase.h"
  10. #include "ctkDICOMModel.h"
  11. #include "ctkModelTester.h"
  12. // CTK includes
  13. #include "ctkCheckableHeaderView.h"
  14. // STD includes
  15. #include <iostream>
  16. /* Test from build directory:
  17. ./CTK-build/bin/CTKDICOMCoreCxxTests ctkDICOMModelTest1 test.db ../CTK/Libs/DICOM/Core/Resources/dicom-sample.sql
  18. */
  19. int ctkDICOMModelTest2( int argc, char * argv [] )
  20. {
  21. QApplication app(argc, argv);
  22. if (argc <= 2)
  23. {
  24. std::cerr << "Warning, no sql file given. Test stops" << std::endl;
  25. std::cerr << "Usage: qctkDICOMModelTest1 <scratch.db> <dumpfile.sql>" << std::endl;
  26. return EXIT_FAILURE;
  27. }
  28. try
  29. {
  30. ctkDICOMDatabase myCTK( argv[1] );
  31. if (!myCTK.initializeDatabase(argv[2]))
  32. {
  33. std::cerr << "Error when initializing the data base: " << argv[2]
  34. << " error: " << myCTK.lastError().toStdString();
  35. }
  36. ctkDICOMModel model;
  37. model.setDatabase(myCTK.database());
  38. QWidget topLevel;
  39. QTreeView viewer;
  40. QHBoxLayout* layout = new QHBoxLayout;
  41. layout->addWidget(&viewer);
  42. topLevel.setLayout(layout);
  43. viewer.setModel(&model);
  44. QHeaderView* previousHeaderView = viewer.header();
  45. qDebug() << "previous: " << previousHeaderView->isHidden();
  46. ctkCheckableHeaderView* headerView = new ctkCheckableHeaderView(Qt::Horizontal, &viewer);
  47. headerView->setClickable(previousHeaderView->isClickable());
  48. headerView->setMovable(previousHeaderView->isMovable());
  49. headerView->setHighlightSections(previousHeaderView->highlightSections());
  50. headerView->setPropagateToItems(true);
  51. viewer.setHeader(headerView);
  52. qDebug() << "new: " << headerView->isHidden();
  53. topLevel.show();
  54. if (argc <= 3 || QString(argv[3]) != "-I")
  55. {
  56. QTimer::singleShot(200, &app, SLOT(quit()));
  57. }
  58. return app.exec();
  59. }
  60. catch (std::exception e)
  61. {
  62. std::cerr << "Error when opening the data base file: " << argv[1]
  63. << " error: " << e.what();
  64. return EXIT_FAILURE;
  65. }
  66. }