perf scripts python: exported-sql-viewer.py: Factor out ReportDialogBase

Factor out ReportDialogBase so it can be re-used.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Adrian Hunter 2019-02-22 09:27:22 +02:00 committed by Arnaldo Carvalho de Melo
parent 8c90fef9a8
commit 0924cd687f

View File

@ -1693,34 +1693,25 @@ class SQLTableDialogDataItem():
return False return False
return True return True
# Selected branch report creation dialog # Report Dialog Base
class SelectedBranchDialog(QDialog): class ReportDialogBase(QDialog):
def __init__(self, glb, parent=None): def __init__(self, glb, title, items, partial, parent=None):
super(SelectedBranchDialog, self).__init__(parent) super(ReportDialogBase, self).__init__(parent)
self.glb = glb self.glb = glb
self.name = "" self.name = ""
self.where_clause = "" self.where_clause = ""
self.setWindowTitle("Selected Branches") self.setWindowTitle(title)
self.setMinimumWidth(600) self.setMinimumWidth(600)
items = (
("Report name:", "Enter a name to appear in the window title bar", "", "", "", ""),
("Time ranges:", "Enter time ranges", "<timeranges>", "", "samples.id", ""),
("CPUs:", "Enter CPUs or ranges e.g. 0,5-6", "<ranges>", "", "cpu", ""),
("Commands:", "Only branches with these commands will be included", "comms", "comm", "comm_id", ""),
("PIDs:", "Only branches with these process IDs will be included", "threads", "pid", "thread_id", ""),
("TIDs:", "Only branches with these thread IDs will be included", "threads", "tid", "thread_id", ""),
("DSOs:", "Only branches with these DSOs will be included", "dsos", "short_name", "samples.dso_id", "to_dso_id"),
("Symbols:", "Only branches with these symbols will be included", "symbols", "name", "symbol_id", "to_symbol_id"),
("Raw SQL clause: ", "Enter a raw SQL WHERE clause", "", "", "", ""),
)
self.data_items = [SQLTableDialogDataItem(glb, *x, parent=self) for x in items] self.data_items = [SQLTableDialogDataItem(glb, *x, parent=self) for x in items]
self.partial = partial
self.grid = QGridLayout() self.grid = QGridLayout()
for row in xrange(len(self.data_items)): for row in xrange(len(self.data_items)):
@ -1764,7 +1755,10 @@ class SelectedBranchDialog(QDialog):
self.where_clause += " AND " self.where_clause += " AND "
self.where_clause += d.value self.where_clause += d.value
if len(self.where_clause): if len(self.where_clause):
self.where_clause = " AND ( " + self.where_clause + " ) " if self.partial:
self.where_clause = " AND ( " + self.where_clause + " ) "
else:
self.where_clause = " WHERE " + self.where_clause + " "
else: else:
self.ShowMessage("No selection") self.ShowMessage("No selection")
return return
@ -1776,6 +1770,25 @@ class SelectedBranchDialog(QDialog):
def ClearMessage(self): def ClearMessage(self):
self.status.setText("") self.status.setText("")
# Selected branch report creation dialog
class SelectedBranchDialog(ReportDialogBase):
def __init__(self, glb, parent=None):
title = "Selected Branches"
items = (
("Report name:", "Enter a name to appear in the window title bar", "", "", "", ""),
("Time ranges:", "Enter time ranges", "<timeranges>", "", "samples.id", ""),
("CPUs:", "Enter CPUs or ranges e.g. 0,5-6", "<ranges>", "", "cpu", ""),
("Commands:", "Only branches with these commands will be included", "comms", "comm", "comm_id", ""),
("PIDs:", "Only branches with these process IDs will be included", "threads", "pid", "thread_id", ""),
("TIDs:", "Only branches with these thread IDs will be included", "threads", "tid", "thread_id", ""),
("DSOs:", "Only branches with these DSOs will be included", "dsos", "short_name", "samples.dso_id", "to_dso_id"),
("Symbols:", "Only branches with these symbols will be included", "symbols", "name", "symbol_id", "to_symbol_id"),
("Raw SQL clause: ", "Enter a raw SQL WHERE clause", "", "", "", ""),
)
super(SelectedBranchDialog, self).__init__(glb, title, items, True, parent)
# Event list # Event list
def GetEventList(db): def GetEventList(db):