Guest User

promote class of "classeurs" QTreeView

a guest
Feb 24th, 2015
202
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "classeurs_treeview.h"
  2. #include "classeur.h"
  3. #include <QMessageBox>
  4.  
  5. Classeurs_treeView::Classeurs_treeView(QWidget *parent) {
  6. this->setAcceptDrops(false);
  7. this->setSelectionMode(QAbstractItemView::ExtendedSelection);
  8. this->setColumnHidden(2, true);
  9. this->setColumnHidden(3, true);
  10. this->setColumnHidden(4, true);
  11. supprimer = new QAction(tr("Supprimer"), this);
  12. add = new QAction(tr("Ajoute un classeur"), this);
  13. addChild = new QAction(tr("Ajoute un classeur \"enfant\""), this);
  14. QObject::connect(supprimer, &QAction::triggered,
  15. this, &Classeurs_treeView::delete_row);
  16. QObject::connect(add, &QAction::triggered,
  17. this, &Classeurs_treeView::add_row);
  18. QObject::connect(addChild, &QAction::triggered,
  19. this, &Classeurs_treeView::add_row_child);
  20. }
  21.  
  22. Classeurs_treeView::~Classeurs_treeView() {
  23.  
  24. }
  25.  
  26. //****** Methods "get" ****************************************************
  27. Classeurs_Model *Classeurs_treeView::getModel() {
  28. return Classeurs.classeurs_model;
  29. }
  30.  
  31. //****** Actions Classeur **************************************************
  32. void Classeurs_treeView::delete_row() { // supprimer une sélection ou plus
  33. int answer = QMessageBox::question(this,"SUPPRIMER", // et leurs fils
  34. tr("Voulez vous supprimer le(s) classeur(s) ?"),
  35. tr("Oui"), tr("Non"));
  36. if (answer == 0) // si "oui" j'envois le signal pour effacer
  37. emit delete_classeur(this->selectionModel()->selectedIndexes());
  38. }
  39.  
  40. void Classeurs_treeView::add_row() {
  41. emit add_classeur(this->currentIndex());
  42. }
  43.  
  44. void Classeurs_treeView::add_row_child() {
  45. emit add_child_classeur(this->currentIndex());
  46. }
  47.  
  48. //****** Event mouse click *************************************************
  49. void Classeurs_treeView::mouseReleaseEvent ( QMouseEvent * event ) {
  50. if(event->button() == Qt::RightButton) {
  51. menu_middle = new QMenu(this);
  52. if (this->indexAt(event->pos()).isValid()) {
  53. menu_middle->addAction(supprimer);
  54. menu_middle->popup(this->viewport()->mapToGlobal(event->pos()));
  55. menu_middle->addAction(add);
  56. menu_middle->popup(this->viewport()->mapToGlobal(event->pos()));
  57. menu_middle->addAction(addChild);
  58. menu_middle->popup(this->viewport()->mapToGlobal(event->pos())); }
  59. else {
  60. menu_middle->addAction(add);
  61. menu_middle->popup(this->viewport()->mapToGlobal(event->pos())); } }
  62. if(event->button() == Qt::LeftButton) {
  63. // if (this->indexAt(event->pos()).isValid())
  64. // this->setCurrentIndex(this->indexAt(event->pos()));
  65. // emit clicked(this->indexAt(event->pos()));
  66. emit clicked(this->currentIndex());
  67. }
  68. }
RAW Paste Data