Window.cpp 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #include <QtGui>
  2. #include <iostream>
  3. #include <cstring>
  4. #include "GLWidget.hpp"
  5. #include "Window.hpp"
  6. Window::Window(char* nom_image, char* colorspace[], Image *tabim[], int nb_colorspace)
  7. {
  8. glWidget = new GLWidget(tabim);
  9. glWidget->setFixedSize(tabim[0]->taillex,tabim[0]->tailley);
  10. canal1 = new QListWidget;
  11. canal2 = new QListWidget;
  12. canal3 = new QListWidget;
  13. connect(canal1,
  14. SIGNAL(currentRowChanged(int)),
  15. glWidget,
  16. SLOT(modif_canal1(int)));
  17. connect(canal2,
  18. SIGNAL(currentRowChanged(int)),
  19. glWidget,
  20. SLOT(modif_canal2(int)));
  21. connect(canal3,
  22. SIGNAL(currentRowChanged(int)),
  23. glWidget,
  24. SLOT(modif_canal3(int)));
  25. for(int i=0;i<nb_colorspace;i++)
  26. {
  27. QString str(colorspace[i]);
  28. str.append("_c1");
  29. canal1->addItem(str);
  30. canal2->addItem(str);
  31. canal3->addItem(str);
  32. str = colorspace[i];
  33. str.append("_c2");
  34. canal1->addItem(str);
  35. canal2->addItem(str);
  36. canal3->addItem(str);
  37. str = colorspace[i];
  38. str.append("_c3");
  39. canal1->addItem(str);
  40. canal2->addItem(str);
  41. canal3->addItem(str);
  42. }
  43. canal1->setCurrentRow(0);
  44. canal2->setCurrentRow(1);
  45. canal3->setCurrentRow(2);
  46. canal1->adjustSize();
  47. canal2->adjustSize();
  48. canal3->adjustSize();
  49. sauver=new QPushButton("Sauver l'image");
  50. connect(sauver,
  51. SIGNAL(released()),
  52. this,
  53. SLOT(clic_sauver()));
  54. passage_2D_3Db=new QPushButton("2D/3D");
  55. connect(passage_2D_3Db,
  56. SIGNAL(released()),
  57. glWidget,
  58. SLOT(passage_2D_3D()));
  59. QVBoxLayout *sousLayout = new QVBoxLayout;
  60. sousLayout->addWidget(sauver);
  61. sousLayout->addWidget(passage_2D_3Db);
  62. QHBoxLayout *mainLayout = new QHBoxLayout;
  63. mainLayout->addWidget(glWidget);
  64. mainLayout->addWidget(canal1);
  65. mainLayout->addWidget(canal2);
  66. mainLayout->addWidget(canal3);
  67. mainLayout->addLayout(sousLayout);
  68. setLayout(mainLayout);
  69. setWindowTitle(QString("Melange image : ").append(nom_image));
  70. connect(this,
  71. SIGNAL(sauver_image(const QString&, int)),
  72. glWidget,
  73. SLOT(sauver_image(const QString&, int)));
  74. }
  75. void Window::clic_sauver()
  76. {
  77. QString str = QFileDialog::getSaveFileName(this,
  78. "Sauver l'image sous...",
  79. "",
  80. tr("Images (*.ppm)"));
  81. int max=glWidget->width();
  82. if(glWidget->height()>max)
  83. max = glWidget->height();
  84. if(!str.isEmpty())
  85. emit sauver_image(str,(1023/max)+1);
  86. }