- if (event->key() == Qt::Key_Return) {
- QTreeWidgetItem *it = currentItem();
- if (it) {
- it->setExpanded(!it->isExpanded());
- if (it->type() == PROJECTFOLDERTYPE) {
- static_cast <FolderProjectItem *>(it)->switchIcon();
- }
+ if (item->type() == PROJECTFOLDERTYPE) {
+ blockSignals(true);
+ static_cast <FolderProjectItem *>(item)->switchIcon();
+ blockSignals(false);
+ }
+}
+
+void ProjectListView::slotExpanded(QTreeWidgetItem *item)
+{
+ if (item->type() == PROJECTFOLDERTYPE) {
+ blockSignals(true);
+ static_cast <FolderProjectItem *>(item)->switchIcon();
+ blockSignals(false);
+ }
+}
+
+bool ProjectListView::eventFilter(QObject *obj, QEvent *event)
+{
+ if (event->type() == QEvent::KeyPress || event->type() == QEvent::ShortcutOverride) {
+ QKeyEvent* ke = (QKeyEvent*) event;
+ if (ke->key() == Qt::Key_Plus) {
+ if (currentItem()) currentItem()->setExpanded(true);
+ event->accept();
+ return true;
+ } else if (ke->key() == Qt::Key_Minus) {
+ if (currentItem()) currentItem()->setExpanded(false);
+ event->accept();
+ return true;
+ } else {
+ return false;