Lines 20-38
Link Here
|
20 |
#include <fstream> |
20 |
#include <fstream> |
21 |
#include <algorithm> |
21 |
#include <algorithm> |
22 |
|
22 |
|
23 |
#include <qlineedit.h> |
23 |
#include <Qt/qlineedit.h> |
24 |
#include <qlistview.h> |
24 |
#include <Qt/q3listview.h> |
25 |
#include <qcombobox.h> |
25 |
#include <Qt/q3combobox.h> |
26 |
#include <qlistbox.h> |
26 |
#include <Qt/q3listbox.h> |
27 |
#include <qfiledialog.h> |
27 |
#include <Qt/q3filedialog.h> |
28 |
#include <qbuttongroup.h> |
28 |
#include <Qt/q3buttongroup.h> |
29 |
#include <qcheckbox.h> |
29 |
#include <Qt/qcheckbox.h> |
30 |
#include <qtabwidget.h> |
30 |
#include <Qt/qtabwidget.h> |
31 |
#include <qmessagebox.h> |
31 |
#include <Qt/qmessagebox.h> |
32 |
#include <qvalidator.h> |
32 |
#include <Qt/qvalidator.h> |
33 |
#include <qlabel.h> |
33 |
#include <Qt/qlabel.h> |
34 |
#include <qpushbutton.h> |
34 |
#include <Qt/qpushbutton.h> |
35 |
#include <qheader.h> |
35 |
#include <Qt/q3header.h> |
36 |
|
36 |
|
37 |
#include "config.h" |
37 |
#include "config.h" |
38 |
#include "oprof_start.h" |
38 |
#include "oprof_start.h" |
Lines 268-277
Link Here
|
268 |
namespace { |
268 |
namespace { |
269 |
|
269 |
|
270 |
/// find the first item with the given text in column 0 or return NULL |
270 |
/// find the first item with the given text in column 0 or return NULL |
271 |
QListViewItem * findItem(QListView * view, char const * name) |
271 |
Q3ListViewItem * findItem(Q3ListView * view, char const * name) |
272 |
{ |
272 |
{ |
273 |
// Qt 2.3.1 does not have QListView::findItem() |
273 |
// Qt 2.3.1 does not have QListView::findItem() |
274 |
QListViewItem * item = view->firstChild(); |
274 |
Q3ListViewItem * item = view->firstChild(); |
275 |
|
275 |
|
276 |
while (item && strcmp(item->text(0).latin1(), name)) |
276 |
while (item && strcmp(item->text(0).latin1(), name)) |
277 |
item = item->nextSibling(); |
277 |
item = item->nextSibling(); |
Lines 292-298
Link Here
|
292 |
event_cfgs[descr.name].user_ring_count = 1; |
292 |
event_cfgs[descr.name].user_ring_count = 1; |
293 |
event_cfgs[descr.name].os_ring_count = 1; |
293 |
event_cfgs[descr.name].os_ring_count = 1; |
294 |
|
294 |
|
295 |
QListViewItem * item = findItem(events_list, descr.name); |
295 |
Q3ListViewItem * item = findItem(events_list, descr.name); |
296 |
if (item) |
296 |
if (item) |
297 |
item->setSelected(true); |
297 |
item->setSelected(true); |
298 |
} |
298 |
} |
Lines 349-355
Link Here
|
349 |
event_cfgs[ev_name].os_ring_count = 1; |
349 |
event_cfgs[ev_name].os_ring_count = 1; |
350 |
} |
350 |
} |
351 |
|
351 |
|
352 |
QListViewItem * item = findItem(events_list, ev_name.c_str()); |
352 |
Q3ListViewItem * item = findItem(events_list, ev_name.c_str()); |
353 |
if (item) |
353 |
if (item) |
354 |
item->setSelected(true); |
354 |
item->setSelected(true); |
355 |
} |
355 |
} |
Lines 436-442
Link Here
|
436 |
|
436 |
|
437 |
for (vector<op_event_descr>::reverse_iterator cit = v_events.rbegin(); |
437 |
for (vector<op_event_descr>::reverse_iterator cit = v_events.rbegin(); |
438 |
cit != v_events.rend(); ++cit) { |
438 |
cit != v_events.rend(); ++cit) { |
439 |
new QListViewItem(events_list, cit->name.c_str()); |
439 |
new Q3ListViewItem(events_list, cit->name.c_str()); |
440 |
} |
440 |
} |
441 |
|
441 |
|
442 |
setUpdatesEnabled(true); |
442 |
setUpdatesEnabled(true); |
Lines 467-473
Link Here
|
467 |
} |
467 |
} |
468 |
|
468 |
|
469 |
|
469 |
|
470 |
bool oprof_start::is_selectable_event(QListViewItem * item) |
470 |
bool oprof_start::is_selectable_event(Q3ListViewItem * item) |
471 |
{ |
471 |
{ |
472 |
if (item->isSelected()) |
472 |
if (item->isSelected()) |
473 |
return true; |
473 |
return true; |
Lines 486-492
Link Here
|
486 |
|
486 |
|
487 |
void oprof_start::draw_event_list() |
487 |
void oprof_start::draw_event_list() |
488 |
{ |
488 |
{ |
489 |
QListViewItem * cur; |
489 |
Q3ListViewItem * cur; |
490 |
for (cur = events_list->firstChild(); cur; cur = cur->nextSibling()) { |
490 |
for (cur = events_list->firstChild(); cur; cur = cur->nextSibling()) { |
491 |
if (is_selectable_event(cur)) |
491 |
if (is_selectable_event(cur)) |
492 |
cur->setPixmap(0, *green_pixmap); |
492 |
cur->setPixmap(0, *green_pixmap); |
Lines 500-506
Link Here
|
500 |
{ |
500 |
{ |
501 |
vector<op_event const *> events; |
501 |
vector<op_event const *> events; |
502 |
|
502 |
|
503 |
set<QListViewItem *>::const_iterator it; |
503 |
set<Q3ListViewItem *>::const_iterator it; |
504 |
for (it = selected_events.begin(); it != selected_events.end(); ++it) |
504 |
for (it = selected_events.begin(); it != selected_events.end(); ++it) |
505 |
events.push_back(find_event_by_name((*it)->text(0).latin1(),0,0)); |
505 |
events.push_back(find_event_by_name((*it)->text(0).latin1(),0,0)); |
506 |
|
506 |
|
Lines 520-543
Link Here
|
520 |
// (de)selected item so we record a set of selected items and diff |
520 |
// (de)selected item so we record a set of selected items and diff |
521 |
// it in the appropriate way with the previous list of selected items. |
521 |
// it in the appropriate way with the previous list of selected items. |
522 |
|
522 |
|
523 |
set<QListViewItem *> current_selection; |
523 |
set<Q3ListViewItem *> current_selection; |
524 |
QListViewItem * cur; |
524 |
Q3ListViewItem * cur; |
525 |
for (cur = events_list->firstChild(); cur; cur = cur->nextSibling()) { |
525 |
for (cur = events_list->firstChild(); cur; cur = cur->nextSibling()) { |
526 |
if (cur->isSelected()) |
526 |
if (cur->isSelected()) |
527 |
current_selection.insert(cur); |
527 |
current_selection.insert(cur); |
528 |
} |
528 |
} |
529 |
|
529 |
|
530 |
// First remove the deselected item. |
530 |
// First remove the deselected item. |
531 |
vector<QListViewItem *> new_deselected; |
531 |
vector<Q3ListViewItem *> new_deselected; |
532 |
set_difference(selected_events.begin(), selected_events.end(), |
532 |
set_difference(selected_events.begin(), selected_events.end(), |
533 |
current_selection.begin(), current_selection.end(), |
533 |
current_selection.begin(), current_selection.end(), |
534 |
back_inserter(new_deselected)); |
534 |
back_inserter(new_deselected)); |
535 |
vector<QListViewItem *>::const_iterator it; |
535 |
vector<Q3ListViewItem *>::const_iterator it; |
536 |
for (it = new_deselected.begin(); it != new_deselected.end(); ++it) |
536 |
for (it = new_deselected.begin(); it != new_deselected.end(); ++it) |
537 |
selected_events.erase(*it); |
537 |
selected_events.erase(*it); |
538 |
|
538 |
|
539 |
// Now try to add the newly selected item if enough HW resource exists |
539 |
// Now try to add the newly selected item if enough HW resource exists |
540 |
vector<QListViewItem *> new_selected; |
540 |
vector<Q3ListViewItem *> new_selected; |
541 |
set_difference(current_selection.begin(), current_selection.end(), |
541 |
set_difference(current_selection.begin(), current_selection.end(), |
542 |
selected_events.begin(), selected_events.end(), |
542 |
selected_events.begin(), selected_events.end(), |
543 |
back_inserter(new_selected)); |
543 |
back_inserter(new_selected)); |
Lines 558-564
Link Here
|
558 |
} |
558 |
} |
559 |
|
559 |
|
560 |
|
560 |
|
561 |
void oprof_start::event_over(QListViewItem * item) |
561 |
void oprof_start::event_over(Q3ListViewItem * item) |
562 |
{ |
562 |
{ |
563 |
op_event_descr const & descr = locate_event(item->text(0).latin1()); |
563 |
op_event_descr const & descr = locate_event(item->text(0).latin1()); |
564 |
|
564 |
|
Lines 566-575
Link Here
|
566 |
if (!is_selectable_event(item)) { |
566 |
if (!is_selectable_event(item)) { |
567 |
help_str += " conflicts with:"; |
567 |
help_str += " conflicts with:"; |
568 |
|
568 |
|
569 |
set<QListViewItem *>::const_iterator it; |
569 |
set<Q3ListViewItem *>::const_iterator it; |
570 |
for (it = selected_events.begin(); |
570 |
for (it = selected_events.begin(); |
571 |
it != selected_events.end(); ) { |
571 |
it != selected_events.end(); ) { |
572 |
QListViewItem * temp = *it; |
572 |
Q3ListViewItem * temp = *it; |
573 |
selected_events.erase(it++); |
573 |
selected_events.erase(it++); |
574 |
if (is_selectable_event(item)) { |
574 |
if (is_selectable_event(item)) { |
575 |
help_str += " "; |
575 |
help_str += " "; |
Lines 844-850
Link Here
|
844 |
|
844 |
|
845 |
bool one_enable = false; |
845 |
bool one_enable = false; |
846 |
|
846 |
|
847 |
QListViewItem * cur; |
847 |
Q3ListViewItem * cur; |
848 |
for (cur = events_list->firstChild(); cur; cur = cur->nextSibling()) { |
848 |
for (cur = events_list->firstChild(); cur; cur = cur->nextSibling()) { |
849 |
if (!cur->isSelected()) |
849 |
if (!cur->isSelected()) |
850 |
continue; |
850 |
continue; |
Lines 946-952
Link Here
|
946 |
vector<string> tmpargs; |
946 |
vector<string> tmpargs; |
947 |
tmpargs.push_back("--setup"); |
947 |
tmpargs.push_back("--setup"); |
948 |
|
948 |
|
949 |
QListViewItem * cur; |
949 |
Q3ListViewItem * cur; |
950 |
for (cur = events_list->firstChild(); cur; cur = cur->nextSibling()) { |
950 |
for (cur = events_list->firstChild(); cur; cur = cur->nextSibling()) { |
951 |
if (!cur->isSelected()) |
951 |
if (!cur->isSelected()) |
952 |
continue; |
952 |
continue; |