10 #include "../include/ProjectTreeView.h"
15 ProjectTreeView::ProjectTreeView(QWidget *parent) : QTreeView(parent)
20 void ProjectTreeView::mouseDoubleClickEvent(QMouseEvent *event)
22 QTreeView::mouseDoubleClickEvent(event);
23 launchSelectedDocument();
26 void ProjectTreeView::launchSelectedDocument()
28 QModelIndex current = currentIndex();
29 if (current.isValid())
31 WorkspaceModel *wsModel = (WorkspaceModel*) model();
32 QFileSystemModel *fsModel = (QFileSystemModel*)
33 wsModel->sourceModel();
34 if (! (fsModel->isDir(wsModel->mapToSource(current))) )
36 QString documentPath = fsModel->filePath
37 (wsModel->mapToSource(current));
38 QModelIndex cParent = current.parent();
39 while (cParent.isValid() && cParent != rootIndex())
42 cParent = current.parent();
44 emit launchDocument(documentPath);
49 void ProjectTreeView::mouseReleaseEvent(QMouseEvent *event)
51 QTreeView::mouseReleaseEvent(event);
53 if (event->button() == Qt::RightButton)
55 QMenu *contextMenu =
new QMenu(
this);
56 QModelIndex current = indexAt(event->pos());
57 if (current.isValid())
59 WorkspaceModel *wsModel = (WorkspaceModel*)model();
60 QFileSystemModel *fsModel = (QFileSystemModel*)
61 wsModel->sourceModel();
62 if (fsModel->isDir(wsModel->mapToSource(current)))
64 QAction *newDocumentAct =
new QAction(
65 QIcon(
":/mainwindow/newDocument"),
66 tr(
"New document"), contextMenu);
67 QAction *newFolderAct =
new QAction(
68 QIcon(
":/mainwindow/newFolder"),
69 tr(
"New folder"), contextMenu);
70 contextMenu->addAction(newDocumentAct);
71 contextMenu->addAction(newFolderAct);
73 QAction *deleteDocument =
new QAction(
74 QIcon(
":/mainwindow/deleteDoc"),
75 tr(
"Delete Document"), contextMenu);
76 QAction *launchSelectedDocument =
new QAction(
77 tr(
"Launch Document"), contextMenu);
78 connect(launchSelectedDocument,SIGNAL(triggered()),
79 SLOT(launchSelectedDocument()));
81 contextMenu->addAction(launchSelectedDocument);
82 contextMenu->addAction(deleteDocument);
85 QAction *newProject =
new QAction(
86 QIcon(
":/mainwindow/openProject"),
87 tr(
"New Project"), contextMenu);
88 contextMenu->addAction(newProject);
90 contextMenu->exec(event->globalPos());
94 void ProjectTreeView::keyReleaseEvent(QKeyEvent *event)
96 QTreeView::keyReleaseEvent(event);
98 if (event->key() == Qt::Key_Return ||
event->key() == Qt::Key_Enter)
99 launchSelectedDocument();