From 30714e7aabced243e98b6778acb65ae768d5bc87 Mon Sep 17 00:00:00 2001 From: Rtch90 Date: Thu, 18 Dec 2014 13:57:08 +0000 Subject: [PATCH] [Add] Multiple page Selection. --- src/pdf_table_widget.cpp | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/pdf_table_widget.cpp b/src/pdf_table_widget.cpp index dd2af89..c347916 100644 --- a/src/pdf_table_widget.cpp +++ b/src/pdf_table_widget.cpp @@ -60,15 +60,25 @@ void PDFTableWidget::registerPage(PDFPageWidget* child) { void PDFTableWidget::pageClicked(PDFPageWidget* sender, QMouseEvent* event, QString path) { if(event->button() == Qt::LeftButton) { /* Handle selection. */ - for(int i = 0; i < selectedPages.size(); i++) { - selectedPages.at(i)->setSelected(false); - } + if(event->modifiers() != Qt::ControlModifier) { + for(int i = 0; i < selectedPages.size(); i++) { + selectedPages.at(i)->setSelected(false); + } - selectedPages.clear(); + selectedPages.clear(); - if(!sender->isSelected()) { - sender->setSelected(true); - selectedPages.append(sender); + if(!sender->isSelected()) { + sender->setSelected(true); + selectedPages.append(sender); + } + } else { + if(!sender->isSelected()) { + sender->setSelected(true); + selectedPages.append(sender); + } else { + sender->setSelected(false); + selectedPages.remove(selectedPages.indexOf(sender)); + } } /* Handle drag. */