apol: Implement copy from table results.

Closes #123
This commit is contained in:
Chris PeBenito 2016-07-09 18:18:47 -04:00
parent ddca4536ee
commit adfb31f518
22 changed files with 206 additions and 21 deletions

View File

@ -304,7 +304,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -396,6 +396,11 @@
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
<customwidget>
<class>GetDetailsListView</class>
<extends>QListView</extends>

View File

@ -166,7 +166,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -522,6 +522,13 @@
</layout>
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>criteria_expander</tabstop>
<tabstop>notes_expander</tabstop>

View File

@ -265,7 +265,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -357,6 +357,11 @@
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
<customwidget>
<class>GetDetailsListView</class>
<extends>QListView</extends>

View File

@ -346,7 +346,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -438,6 +438,11 @@
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
<customwidget>
<class>GetDetailsListView</class>
<extends>QListView</extends>

View File

@ -166,7 +166,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -767,6 +767,13 @@
</layout>
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>criteria_expander</tabstop>
<tabstop>notes_expander</tabstop>

View File

@ -166,7 +166,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -570,6 +570,13 @@
</layout>
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>criteria_expander</tabstop>
<tabstop>notes_expander</tabstop>

View File

@ -664,7 +664,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -744,6 +744,13 @@
</layout>
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>criteria_expander</tabstop>
<tabstop>notes_expander</tabstop>

View File

@ -173,7 +173,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -695,6 +695,13 @@
</layout>
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>criteria_expander</tabstop>
<tabstop>notes_expander</tabstop>

View File

@ -567,7 +567,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -647,6 +647,13 @@
</layout>
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>criteria_expander</tabstop>
<tabstop>notes_expander</tabstop>

View File

@ -95,7 +95,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -711,6 +711,13 @@
</layout>
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>criteria_expander</tabstop>
<tabstop>notes_expander</tabstop>

View File

@ -567,7 +567,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -647,6 +647,13 @@
</layout>
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>criteria_expander</tabstop>
<tabstop>notes_expander</tabstop>

View File

@ -173,7 +173,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -705,6 +705,13 @@
</layout>
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>criteria_expander</tabstop>
<tabstop>notes_expander</tabstop>

View File

@ -386,7 +386,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -478,6 +478,11 @@
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
<customwidget>
<class>GetDetailsListView</class>
<extends>QListView</extends>

View File

@ -173,7 +173,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -727,6 +727,13 @@
</layout>
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>criteria_expander</tabstop>
<tabstop>notes_expander</tabstop>

View File

@ -586,7 +586,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -728,6 +728,13 @@
</layout>
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>criteria_expander</tabstop>
<tabstop>notes_expander</tabstop>

View File

@ -374,7 +374,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -466,6 +466,11 @@
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
<customwidget>
<class>GetDetailsListView</class>
<extends>QListView</extends>

View File

@ -265,7 +265,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -357,6 +357,11 @@
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
<customwidget>
<class>GetDetailsListView</class>
<extends>QListView</extends>

View File

@ -104,7 +104,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -1001,6 +1001,13 @@
</layout>
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>criteria_expander</tabstop>
<tabstop>notes_expander</tabstop>

View File

@ -374,7 +374,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -466,6 +466,11 @@
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
<customwidget>
<class>GetDetailsListView</class>
<extends>QListView</extends>

View File

@ -399,7 +399,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -491,6 +491,11 @@
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
<customwidget>
<class>GetDetailsListView</class>
<extends>QListView</extends>

View File

@ -567,7 +567,7 @@
<number>6</number>
</property>
<item>
<widget class="QTableView" name="table_results">
<widget class="SEToolsTableView" name="table_results">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -659,6 +659,11 @@
</widget>
</widget>
<customwidgets>
<customwidget>
<class>SEToolsTableView</class>
<extends>QTableView</extends>
<header>setoolsgui/tableview.h</header>
</customwidget>
<customwidget>
<class>GetDetailsListView</class>
<extends>QListView</extends>

56
setoolsgui/tableview.py Normal file
View File

@ -0,0 +1,56 @@
# Copyright 2016, Chris PeBenito <pebenito@ieee.org>
#
# This file is part of SETools.
#
# SETools is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 2.1 of
# the License, or (at your option) any later version.
#
# SETools is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with SETools. If not, see
# <http://www.gnu.org/licenses/>.
#
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QKeySequence
from PyQt5.QtWidgets import QApplication, QTableView
class SEToolsTableView(QTableView):
"""QTableView class extended for SETools use."""
def event(self, e):
if e == QKeySequence.Copy or e == QKeySequence.Cut:
datamodel = self.model()
selected_text = ""
current_row = None
current_col = None
prev_row = None
prev_col = None
for index in sorted(self.selectionModel().selectedIndexes()):
current_row = index.row()
current_col = index.column()
if prev_row is not None and current_row != prev_row:
selected_text += '\n'
elif prev_col is not None and current_col != prev_col:
selected_text += '\t'
selected_text += datamodel.data(index, Qt.DisplayRole)
prev_row = current_row
prev_col = current_col
QApplication.clipboard().setText(selected_text)
return True
else:
return super(SEToolsTableView, self).event(e)