summaryrefslogtreecommitdiffstats
path: root/source/d/oprofile
diff options
context:
space:
mode:
Diffstat (limited to 'source/d/oprofile')
-rwxr-xr-xsource/d/oprofile/oprofile.SlackBuild55
-rw-r--r--source/d/oprofile/oprofile.qt4.diff3194
2 files changed, 3241 insertions, 8 deletions
diff --git a/source/d/oprofile/oprofile.SlackBuild b/source/d/oprofile/oprofile.SlackBuild
index 28feae4ab..8a9d2bef5 100755
--- a/source/d/oprofile/oprofile.SlackBuild
+++ b/source/d/oprofile/oprofile.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2005-2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,12 +21,21 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=0.9.4
-ARCH=${ARCH:-x86_64}
+VERSION=${VERSION:-$(echo oprofile-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j7 "}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
@@ -52,8 +61,13 @@ rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP || exit 1
rm -rf oprofile-$VERSION
-tar xvf $CWD/oprofile-$VERSION.tar.bz2 || exit 1
+tar xvf $CWD/oprofile-$VERSION.tar.?z* || exit 1
cd oprofile-$VERSION
+
+zcat $CWD/oprofile.qt4.diff.gz | patch -p1 --verbose || exit 1
+
+./autogen.sh
+
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -72,21 +86,46 @@ CXXFLAGS="$SLKCFLAGS" \
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG
+# Strip binaries:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
# This seems misplaced, and isn't referenced by any binaries or other files.
# I'm tempted to think it shouldn't have been installed, but will just move it:
if [ -r $PKG/usr/share/mangled-name ]; then
mv $PKG/usr/share/mangled-name $PKG/usr/share/oprofile/mangled-name
fi
-( cd $PKG/usr/bin
- strip --strip-unneeded *
-)
+
mv $PKG/usr/share/doc $PKG/usr
mv $PKG/usr/doc/oprofile $PKG/usr/doc/oprofile-$VERSION
cp -a \
COPYING README TODO \
$PKG/usr/doc/oprofile-$VERSION
-gzip -9 $PKG/usr/man/man?/*
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/d/oprofile/oprofile.qt4.diff b/source/d/oprofile/oprofile.qt4.diff
new file mode 100644
index 000000000..e5506a82e
--- /dev/null
+++ b/source/d/oprofile/oprofile.qt4.diff
@@ -0,0 +1,3194 @@
+commit 4513fe62e4517057374091092073e0940584ebe2
+Author: Tobias Doerffel <tobias.doerffel@gmail.com>
+Date: Mon Jun 29 12:05:49 2009 +0200
+
+ Port GUI to Qt4
+
+diff --git a/configure.in b/configure.in
+index 6f684a0..883a7ad 100644
+--- a/configure.in
++++ b/configure.in
+@@ -131,7 +131,7 @@ ORIG_X_SAVE_LIBS="$LIBS"
+ LIBS="$X_PRE_LIBS $LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
+ X_LIBS="$LIBS"
+ AC_SUBST(X_LIBS)
+-QT_DO_IT_ALL
++QT4_DO_IT_ALL
+ LIBS="$ORIG_X_SAVE_LIBS"
+
+ dnl enable pch for c++
+@@ -155,7 +155,7 @@ AC_SUBST(POPT_LIBS)
+
+ # do NOT put tests here, they will fail in the case X is not installed !
+
+-AM_CONDITIONAL(have_qt, test -n "$QT_LIB")
++AM_CONDITIONAL(have_qt, test -n "$QT4_LIB")
+
+ AX_CFLAGS_OPTION(OP_CFLAGS,[-W])
+ AX_CXXFLAGS_OPTION(OP_CXXFLAGS,[-W])
+@@ -258,7 +258,6 @@ AC_OUTPUT(Makefile \
+ opjitconv/Makefile \
+ pp/Makefile \
+ gui/Makefile \
+- gui/ui/Makefile \
+ module/Makefile \
+ module/x86/Makefile \
+ module/ia64/Makefile \
+@@ -268,8 +267,8 @@ AC_OUTPUT(Makefile \
+
+ AX_COPY_IF_CHANGE(doc/xsl/catalog-1.xml, doc/xsl/catalog.xml)
+
+-if test -z "$QT_LIB"; then
+- echo "Warning: a working Qt not found; no GUI will be built"
++if test -z "$QT4_LIB"; then
++ echo "Warning: a working Qt4 not found; no GUI will be built"
+ fi
+
+ if test "`getent passwd oprofile 2>/dev/null`" == "" || \
+diff --git a/gui/Makefile.am b/gui/Makefile.am
+index ba5e27c..69e01dd 100644
+--- a/gui/Makefile.am
++++ b/gui/Makefile.am
+@@ -1,5 +1,3 @@
+-SUBDIRS = ui
+-
+ dist_sources = \
+ oprof_start.cpp \
+ oprof_start_config.cpp \
+@@ -14,7 +12,7 @@ EXTRA_DIST = $(dist_sources)
+ if have_qt
+
+ AM_CPPFLAGS = \
+- @QT_INCLUDES@ \
++ @QT4_INCLUDES@ \
+ -I ${top_srcdir}/libop \
+ -I ${top_srcdir}/libutil++ \
+ -I ${top_srcdir}/libutil
+@@ -25,19 +23,22 @@ bin_PROGRAMS = oprof_start
+
+ oprof_start_SOURCES = $(dist_sources)
+ nodist_oprof_start_SOURCES = oprof_start.moc.cpp
++BUILT_SOURCES = ui_oprof_start.base.h
+ oprof_start_LDADD = \
+ ../libutil++/libutil++.a \
+ ../libop/libop.a \
+ ../libutil/libutil.a \
+- ui/liboprof_start.a \
+- @QT_LDFLAGS@ \
+- @QT_LIB@ \
++ @QT4_LDFLAGS@ \
++ @QT4_LIB@ -lQt3Support \
+ @X_LIBS@
+
+ oprof_start.moc.cpp: ${top_srcdir}/gui/oprof_start.h
+- $(MOC) -o $@ ${top_srcdir}/gui/oprof_start.h
++ $(MOC4) -o $@ ${top_srcdir}/gui/oprof_start.h
++
++ui_oprof_start.base.h: ${top_srcdir}/gui/ui/oprof_start.base.ui
++ $(UIC4) -o $@ $<
+
+ clean-local:
+- rm -f oprof_start.moc.cpp
++ rm -f oprof_start.moc.cpp ui_oprof_start.base.h
+
+ endif
+diff --git a/gui/oprof_start.cpp b/gui/oprof_start.cpp
+index 0387136..615c8d7 100644
+--- a/gui/oprof_start.cpp
++++ b/gui/oprof_start.cpp
+@@ -23,7 +23,6 @@
+ #include <qlineedit.h>
+ #include <qlistview.h>
+ #include <qcombobox.h>
+-#include <qlistbox.h>
+ #include <qfiledialog.h>
+ #include <qbuttongroup.h>
+ #include <qcheckbox.h>
+@@ -32,7 +31,8 @@
+ #include <qvalidator.h>
+ #include <qlabel.h>
+ #include <qpushbutton.h>
+-#include <qheader.h>
++#include <Qt3Support/Q3ListBox>
++#include <Qt3Support/Q3Header>
+
+ #include "config.h"
+ #include "oprof_start.h"
+@@ -106,12 +106,15 @@ op_event_descr::op_event_descr()
+
+ oprof_start::oprof_start()
+ :
+- oprof_start_base(0, 0, false, 0),
++ QDialog(0),
++ oprof_start_base(),
+ event_count_validator(new QIntValidator(event_count_edit)),
+ current_event(0),
+ cpu_speed(op_cpu_frequency()),
+ total_nr_interrupts(0)
+ {
++ setupUi( this );
++
+ green_pixmap = new QPixmap(green_xpm);
+ red_pixmap = new QPixmap(red_xpm);
+ vector<string> args;
+@@ -124,7 +127,7 @@ oprof_start::oprof_start()
+ op_nr_counters = op_get_nr_counters(cpu_type);
+
+ if (cpu_type == CPU_TIMER_INT) {
+- setup_config_tab->removePage(counter_setup_page);
++ setup_config_tab->removeTab(setup_config_tab->indexOf(counter_setup_page));
+ } else {
+ fill_events();
+ }
+@@ -268,12 +271,12 @@ void oprof_start::fill_events()
+ namespace {
+
+ /// find the first item with the given text in column 0 or return NULL
+-QListViewItem * findItem(QListView * view, char const * name)
++Q3ListViewItem * findItem(Q3ListView * view, char const * name)
+ {
+- // Qt 2.3.1 does not have QListView::findItem()
+- QListViewItem * item = view->firstChild();
++ // Qt 2.3.1 does not have Q3ListView::findItem()
++ Q3ListViewItem * item = view->firstChild();
+
+- while (item && strcmp(item->text(0).latin1(), name))
++ while (item && strcmp(item->text(0).toLatin1().constData(), name))
+ item = item->nextSibling();
+
+ return item;
+@@ -292,7 +295,7 @@ void oprof_start::setup_default_event()
+ event_cfgs[descr.name].user_ring_count = 1;
+ event_cfgs[descr.name].os_ring_count = 1;
+
+- QListViewItem * item = findItem(events_list, descr.name);
++ Q3ListViewItem * item = findItem(events_list, descr.name);
+ if (item)
+ item->setSelected(true);
+ }
+@@ -349,7 +352,7 @@ void oprof_start::read_set_events()
+ event_cfgs[ev_name].os_ring_count = 1;
+ }
+
+- QListViewItem * item = findItem(events_list, ev_name.c_str());
++ Q3ListViewItem * item = findItem(events_list, ev_name.c_str());
+ if (item)
+ item->setSelected(true);
+ }
+@@ -436,7 +439,7 @@ void oprof_start::fill_events_listbox()
+
+ for (vector<op_event_descr>::reverse_iterator cit = v_events.rbegin();
+ cit != v_events.rend(); ++cit) {
+- new QListViewItem(events_list, cit->name.c_str());
++ new Q3ListViewItem(events_list, cit->name.c_str());
+ }
+
+ setUpdatesEnabled(true);
+@@ -467,7 +470,7 @@ void oprof_start::display_event(op_event_descr const & descr)
+ }
+
+
+-bool oprof_start::is_selectable_event(QListViewItem * item)
++bool oprof_start::is_selectable_event(Q3ListViewItem * item)
+ {
+ if (item->isSelected())
+ return true;
+@@ -486,7 +489,7 @@ bool oprof_start::is_selectable_event(QListViewItem * item)
+
+ void oprof_start::draw_event_list()
+ {
+- QListViewItem * cur;
++ Q3ListViewItem * cur;
+ for (cur = events_list->firstChild(); cur; cur = cur->nextSibling()) {
+ if (is_selectable_event(cur))
+ cur->setPixmap(0, *green_pixmap);
+@@ -500,9 +503,9 @@ bool oprof_start::alloc_selected_events() const
+ {
+ vector<op_event const *> events;
+
+- set<QListViewItem *>::const_iterator it;
++ set<Q3ListViewItem *>::const_iterator it;
+ for (it = selected_events.begin(); it != selected_events.end(); ++it)
+- events.push_back(find_event_by_name((*it)->text(0).latin1(),0,0));
++ events.push_back(find_event_by_name((*it)->text(0).toLatin1().constData(),0,0));
+
+ size_t * map =
+ map_event_to_counter(&events[0], events.size(), cpu_type);
+@@ -520,24 +523,24 @@ void oprof_start::event_selected()
+ // (de)selected item so we record a set of selected items and diff
+ // it in the appropriate way with the previous list of selected items.
+
+- set<QListViewItem *> current_selection;
+- QListViewItem * cur;
++ set<Q3ListViewItem *> current_selection;
++ Q3ListViewItem * cur;
+ for (cur = events_list->firstChild(); cur; cur = cur->nextSibling()) {
+ if (cur->isSelected())
+ current_selection.insert(cur);
+ }
+
+ // First remove the deselected item.
+- vector<QListViewItem *> new_deselected;
++ vector<Q3ListViewItem *> new_deselected;
+ set_difference(selected_events.begin(), selected_events.end(),
+ current_selection.begin(), current_selection.end(),
+ back_inserter(new_deselected));
+- vector<QListViewItem *>::const_iterator it;
++ vector<Q3ListViewItem *>::const_iterator it;
+ for (it = new_deselected.begin(); it != new_deselected.end(); ++it)
+ selected_events.erase(*it);
+
+ // Now try to add the newly selected item if enough HW resource exists
+- vector<QListViewItem *> new_selected;
++ vector<Q3ListViewItem *> new_selected;
+ set_difference(current_selection.begin(), current_selection.end(),
+ selected_events.begin(), selected_events.end(),
+ back_inserter(new_selected));
+@@ -554,26 +557,26 @@ void oprof_start::event_selected()
+ draw_event_list();
+
+ if (current_event)
+- display_event(locate_event(current_event->text(0).latin1()));
++ display_event(locate_event(current_event->text(0).toLatin1().constData()));
+ }
+
+
+-void oprof_start::event_over(QListViewItem * item)
++void oprof_start::event_over(Q3ListViewItem * item)
+ {
+- op_event_descr const & descr = locate_event(item->text(0).latin1());
++ op_event_descr const & descr = locate_event(item->text(0).toLatin1().constData());
+
+ string help_str = descr.help_str.c_str();
+ if (!is_selectable_event(item)) {
+ help_str += " conflicts with:";
+
+- set<QListViewItem *>::const_iterator it;
++ set<Q3ListViewItem *>::const_iterator it;
+ for (it = selected_events.begin();
+ it != selected_events.end(); ) {
+- QListViewItem * temp = *it;
++ Q3ListViewItem * temp = *it;
+ selected_events.erase(it++);
+ if (is_selectable_event(item)) {
+ help_str += " ";
+- help_str += temp->text(0).latin1();
++ help_str += temp->text(0).toLatin1().constData();
+ }
+ selected_events.insert(temp);
+ }
+@@ -586,7 +589,7 @@ void oprof_start::event_over(QListViewItem * item)
+ /// select the kernel image filename
+ void oprof_start::choose_kernel_filename()
+ {
+- string name = kernel_filename_edit->text().latin1();
++ string name = kernel_filename_edit->text().toLatin1().constData();
+ string result = do_open_file_or_dir(name, false);
+
+ if (!result.empty())
+@@ -601,7 +604,7 @@ void oprof_start::record_selected_event_config()
+ if (!current_event)
+ return;
+
+- string name(current_event->text(0).latin1());
++ string name(current_event->text(0).toLatin1().constData());
+
+ event_setting & cfg = event_cfgs[name];
+ op_event_descr const & curr = locate_event(name);
+@@ -617,7 +620,7 @@ void oprof_start::record_selected_event_config()
+ // are not sufficient to do the validation)
+ bool oprof_start::record_config()
+ {
+- config.kernel_filename = kernel_filename_edit->text().latin1();
++ config.kernel_filename = kernel_filename_edit->text().toLatin1().constData();
+ config.no_kernel = no_vmlinux->isChecked();
+
+ uint temp = buffer_size_edit->text().toUInt();
+@@ -824,7 +827,7 @@ uint oprof_start::max_perf_count() const
+ }
+
+
+-void oprof_start::on_flush_profiler_data()
++void oprof_start::flush_profiler_data()
+ {
+ vector<string> args;
+ args.push_back("--dump");
+@@ -837,14 +840,14 @@ void oprof_start::on_flush_profiler_data()
+
+
+ // user is happy of its setting.
+-void oprof_start::on_start_profiler()
++void oprof_start::start_profiler()
+ {
+ // save the current settings
+ record_selected_event_config();
+
+ bool one_enable = false;
+
+- QListViewItem * cur;
++ Q3ListViewItem * cur;
+ for (cur = events_list->firstChild(); cur; cur = cur->nextSibling()) {
+ if (!cur->isSelected())
+ continue;
+@@ -852,9 +855,9 @@ void oprof_start::on_start_profiler()
+ // the missing reference is intended: gcc 2.91.66 can compile
+ // "op_event_descr const & descr = ..." w/o a warning
+ op_event_descr const descr =
+- locate_event(cur->text(0).latin1());
++ locate_event(cur->text(0).toLatin1().constData());
+
+- event_setting & cfg = event_cfgs[cur->text(0).latin1()];
++ event_setting & cfg = event_cfgs[cur->text(0).toLatin1().constData()];
+
+ one_enable = true;
+
+@@ -909,7 +912,7 @@ void oprof_start::on_start_profiler()
+ return;
+
+ // this flush profiler data also.
+- on_stop_profiler();
++ stop_profiler();
+ }
+
+ vector<string> args;
+@@ -946,15 +949,15 @@ bool oprof_start::save_config()
+ vector<string> tmpargs;
+ tmpargs.push_back("--setup");
+
+- QListViewItem * cur;
++ Q3ListViewItem * cur;
+ for (cur = events_list->firstChild(); cur; cur = cur->nextSibling()) {
+ if (!cur->isSelected())
+ continue;
+
+- event_setting & cfg = event_cfgs[cur->text(0).latin1()];
++ event_setting & cfg = event_cfgs[cur->text(0).toLatin1().constData()];
+
+ op_event_descr const & descr =
+- locate_event(cur->text(0).latin1());
++ locate_event(cur->text(0).toLatin1().constData());
+
+ one_enabled = true;
+
+@@ -1016,7 +1019,7 @@ bool oprof_start::save_config()
+
+
+ // flush and stop the profiler if it was started.
+-void oprof_start::on_stop_profiler()
++void oprof_start::stop_profiler()
+ {
+ vector<string> args;
+ args.push_back("--shutdown");
+@@ -1030,13 +1033,13 @@ void oprof_start::on_stop_profiler()
+ }
+
+
+-void oprof_start::on_separate_kernel_cb_changed(int state)
++void oprof_start::separate_kernel_cb_changed(int state)
+ {
+ if (state == 2)
+ separate_lib_cb->setChecked(true);
+ }
+
+-void oprof_start::on_reset_sample_files()
++void oprof_start::reset_sample_files()
+ {
+ int ret = QMessageBox::warning(this, 0, "Are you sure you want to "
+ "reset your last profile session ?", "Yes", "No", 0, 0, 1);
+diff --git a/gui/oprof_start.h b/gui/oprof_start.h
+index c2910ee..a2c5eb5 100644
+--- a/gui/oprof_start.h
++++ b/gui/oprof_start.h
+@@ -16,13 +16,16 @@
+ #include <map>
+ #include <set>
+
+-#include "ui/oprof_start.base.h"
++#include <QtGui/QDialog>
++class QColorGroup;
++
++#include "ui_oprof_start.base.h"
+ #include "oprof_start_config.h"
+
+ #include "op_events.h"
+
+ class QIntValidator;
+-class QListViewItem;
++class Q3ListViewItem;
+ class QTimerEvent;
+
+ /// a struct describing a particular event type
+@@ -43,7 +46,7 @@ struct op_event_descr {
+ uint min_count;
+ };
+
+-class oprof_start : public oprof_start_base
++class oprof_start : public QDialog, public Ui::oprof_start_base
+ {
+ Q_OBJECT
+
+@@ -54,19 +57,19 @@ protected slots:
+ /// select the kernel image filename
+ void choose_kernel_filename();
+ /// flush profiler
+- void on_flush_profiler_data();
++ void flush_profiler_data();
+ /// start profiler
+- void on_start_profiler();
++ void start_profiler();
+ /// stop profiler
+- void on_stop_profiler();
++ void stop_profiler();
+ /// events selection change
+ void event_selected();
+ /// the mouse is over an event
+- void event_over(QListViewItem *);
++ void event_over(Q3ListViewItem *);
+ /// state of separate_kernel_cb changed
+- void on_separate_kernel_cb_changed(int);
++ void separate_kernel_cb_changed(int);
+ /// reset sample files
+- void on_reset_sample_files();
++ void reset_sample_files();
+
+ /// close the dialog
+ void accept();
+@@ -121,7 +124,7 @@ private:
+ void draw_event_list();
+
+ /// return true if item is selectable or already selected
+- bool is_selectable_event(QListViewItem * item);
++ bool is_selectable_event(Q3ListViewItem * item);
+
+ /// try to alloc counters for the selected_events
+ bool alloc_selected_events() const;
+@@ -139,8 +142,8 @@ private:
+ /// The currently selected events. We must track this because
+ /// with multiple selection listbox QT doesn't allow to know
+ /// what is the last selected item. events_selected() update it
+- std::set<QListViewItem *> selected_events;
+- QListViewItem * current_event;
++ std::set<Q3ListViewItem *> selected_events;
++ Q3ListViewItem * current_event;
+
+ /// current config
+ config_setting config;
+diff --git a/gui/oprof_start_main.cpp b/gui/oprof_start_main.cpp
+index 44da5de..4930d9a 100644
+--- a/gui/oprof_start_main.cpp
++++ b/gui/oprof_start_main.cpp
+@@ -19,7 +19,7 @@ int main(int argc, char* argv[])
+
+ oprof_start* dlg = new oprof_start();
+
+- a.setMainWidget(dlg);
++ a.setActiveWindow(dlg);
+
+ dlg->show();
+
+diff --git a/gui/oprof_start_util.cpp b/gui/oprof_start_util.cpp
+index d293431..17359ae 100644
+--- a/gui/oprof_start_util.cpp
++++ b/gui/oprof_start_util.cpp
+@@ -293,17 +293,16 @@ string const do_open_file_or_dir(string const & base_dir, bool dir_only)
+ QString result;
+
+ if (dir_only) {
+- result = QFileDialog::getExistingDirectory(base_dir.c_str(), 0,
+- "open_file_or_dir", "Get directory name", true);
++ result = QFileDialog::getExistingDirectory(NULL, "Get directory name",
++ base_dir.c_str(), QFileDialog::ShowDirsOnly);
+ } else {
+- result = QFileDialog::getOpenFileName(base_dir.c_str(), 0, 0,
+- "open_file_or_dir", "Get filename");
++ result = QFileDialog::getOpenFileName(NULL, "Get filename", base_dir.c_str());
+ }
+
+ if (result.isNull())
+ return string();
+ else
+- return result.latin1();
++ return result.toLatin1().constData();
+ }
+
+ /**
+diff --git a/gui/ui/oprof_start.base.ui b/gui/ui/oprof_start.base.ui
+index 4fcc43f..b882656 100644
+--- a/gui/ui/oprof_start.base.ui
++++ b/gui/ui/oprof_start.base.ui
+@@ -1,1190 +1,1055 @@
+-<!DOCTYPE UI><UI>
+-<class>oprof_start_base</class>
+-<widget>
+- <class>QDialog</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>oprof_start_base</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>0</x>
+- <y>0</y>
+- <width>625</width>
+- <height>735</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>caption</name>
+- <string>Start profiler</string>
+- </property>
+- <property stdset="1">
+- <name>sizeGripEnabled</name>
+- <bool>true</bool>
+- </property>
+- <vbox>
+- <property stdset="1">
+- <name>margin</name>
+- <number>11</number>
+- </property>
+- <property stdset="1">
+- <name>spacing</name>
+- <number>6</number>
+- </property>
+- <widget>
+- <class>QTabWidget</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>setup_config_tab</cstring>
++<?xml version="1.0" encoding="UTF-8"?>
++<ui version="4.0">
++ <class>oprof_start_base</class>
++ <widget class="QDialog" name="oprof_start_base">
++ <property name="geometry">
++ <rect>
++ <x>0</x>
++ <y>0</y>
++ <width>625</width>
++ <height>735</height>
++ </rect>
++ </property>
++ <property name="windowTitle">
++ <string>Start profiler</string>
++ </property>
++ <property name="sizeGripEnabled">
++ <bool>true</bool>
++ </property>
++ <layout class="QVBoxLayout">
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <property name="margin">
++ <number>11</number>
++ </property>
++ <item>
++ <widget class="QTabWidget" name="setup_config_tab">
++ <widget class="QWidget" name="counter_setup_page">
++ <attribute name="title">
++ <string>&amp;Setup</string>
++ </attribute>
++ <layout class="QVBoxLayout">
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <property name="margin">
++ <number>11</number>
++ </property>
++ <item>
++ <widget class="Q3GroupBox" name="counter_group">
++ <property name="title">
++ <string>Events</string>
++ </property>
++ <layout class="QVBoxLayout">
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <property name="margin">
++ <number>11</number>
++ </property>
++ <item>
++ <layout class="QHBoxLayout">
++ <property name="spacing">
++ <number>6</number>
+ </property>
+- <widget>
+- <class>QWidget</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>counter_setup_page</cstring>
++ <property name="margin">
++ <number>0</number>
++ </property>
++ <item>
++ <widget class="Q3ListView" name="events_list">
++ <property name="minimumSize">
++ <size>
++ <width>250</width>
++ <height>0</height>
++ </size>
++ </property>
++ <property name="toolTip">
++ <string>Available events</string>
++ </property>
++ <property name="selectionMode">
++ <enum>Q3ListView::Multi</enum>
++ </property>
++ <column>
++ <property name="text">
++ <string>Removedincode</string>
++ </property>
++ <property name="clickable">
++ <bool>false</bool>
++ </property>
++ <property name="resizable">
++ <bool>true</bool>
++ </property>
++ </column>
++ </widget>
++ </item>
++ <item>
++ <layout class="QVBoxLayout">
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <property name="margin">
++ <number>0</number>
++ </property>
++ <item>
++ <widget class="QCheckBox" name="os_ring_count_cb">
++ <property name="toolTip">
++ <string>Profile kernel code</string>
+ </property>
+- <attribute>
+- <name>title</name>
+- <string>&amp;Setup</string>
+- </attribute>
+- <vbox>
+- <property stdset="1">
+- <name>margin</name>
+- <number>11</number>
+- </property>
+- <property stdset="1">
+- <name>spacing</name>
+- <number>6</number>
+- </property>
+- <widget>
+- <class>QGroupBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>counter_group</cstring>
+- </property>
+- <property stdset="1">
+- <name>title</name>
+- <string>Events</string>
+- </property>
+- <vbox>
+- <property stdset="1">
+- <name>margin</name>
+- <number>11</number>
+- </property>
+- <property stdset="1">
+- <name>spacing</name>
+- <number>6</number>
+- </property>
+- <widget>
+- <class>QLayoutWidget</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>Layout10</cstring>
+- </property>
+- <hbox>
+- <property stdset="1">
+- <name>margin</name>
+- <number>0</number>
+- </property>
+- <property stdset="1">
+- <name>spacing</name>
+- <number>6</number>
+- </property>
+- <widget>
+- <class>QListView</class>
+- <column>
+- <property>
+- <name>text</name>
+- <string>Removedincode</string>
+- </property>
+- <property>
+- <name>clickable</name>
+- <bool>false</bool>
+- </property>
+- <property>
+- <name>resizeable</name>
+- <bool>true</bool>
+- </property>
+- </column>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>events_list</cstring>
+- </property>
+- <property stdset="1">
+- <name>minimumSize</name>
+- <size>
+- <width>250</width>
+- <height>0</height>
+- </size>
+- </property>
+- <property stdset="1">
+- <name>selectionMode</name>
+- <enum>Multi</enum>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>Available events</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QLayoutWidget</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>Layout9</cstring>
+- </property>
+- <vbox>
+- <property stdset="1">
+- <name>margin</name>
+- <number>0</number>
+- </property>
+- <property stdset="1">
+- <name>spacing</name>
+- <number>6</number>
+- </property>
+- <widget>
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>os_ring_count_cb</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>Profile &amp;kernel</string>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>Profile kernel code</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>user_ring_count_cb</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>Profile &amp;user binaries</string>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>Profile user libraries and applications</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QLayoutWidget</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>Layout16</cstring>
+- </property>
+- <hbox>
+- <property stdset="1">
+- <name>margin</name>
+- <number>0</number>
+- </property>
+- <property stdset="1">
+- <name>spacing</name>
+- <number>6</number>
+- </property>
+- <widget>
+- <class>QLabel</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>TextLabel1_2</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>C&amp;ount</string>
+- </property>
+- <property>
+- <name>buddy</name>
+- <cstring>event_count_edit</cstring>
+- </property>
+- </widget>
+- <widget>
+- <class>QLineEdit</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>event_count_edit</cstring>
+- </property>
+- <property stdset="1">
+- <name>sizePolicy</name>
+- <sizepolicy>
+- <hsizetype>1</hsizetype>
+- <vsizetype>0</vsizetype>
+- </sizepolicy>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>Set the count value</string>
+- </property>
+- </widget>
+- <spacer>
+- <property>
+- <name>name</name>
+- <cstring>Spacer13_2</cstring>
+- </property>
+- <property stdset="1">
+- <name>orientation</name>
+- <enum>Horizontal</enum>
+- </property>
+- <property stdset="1">
+- <name>sizeType</name>
+- <enum>Expanding</enum>
+- </property>
+- <property>
+- <name>sizeHint</name>
+- <size>
+- <width>20</width>
+- <height>20</height>
+- </size>
+- </property>
+- </spacer>
+- </hbox>
+- </widget>
+- <widget>
+- <class>QButtonGroup</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>unit_mask_group</cstring>
+- </property>
+- <property stdset="1">
+- <name>sizePolicy</name>
+- <sizepolicy>
+- <hsizetype>1</hsizetype>
+- <vsizetype>5</vsizetype>
+- </sizepolicy>
+- </property>
+- <property stdset="1">
+- <name>title</name>
+- <string>Unit mask</string>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>Unit mask settings for this event</string>
+- </property>
+- <grid>
+- <property stdset="1">
+- <name>margin</name>
+- <number>11</number>
+- </property>
+- <property stdset="1">
+- <name>spacing</name>
+- <number>6</number>
+- </property>
+- <widget row="0" column="0" >
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>check0</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>check0</string>
+- </property>
+- </widget>
+- <widget row="1" column="0" rowspan="2" colspan="2" >
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>check1</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>check1</string>
+- </property>
+- </widget>
+- <widget row="3" column="0" rowspan="2" colspan="2" >
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>check2</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>check2</string>
+- </property>
+- </widget>
+- <widget row="5" column="0" >
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>check3</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>check3</string>
+- </property>
+- </widget>
+- <widget row="6" column="0" >
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>check4</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>check4</string>
+- </property>
+- </widget>
+- <widget row="7" column="0" >
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>check5</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>check5</string>
+- </property>
+- </widget>
+- <widget row="8" column="0" rowspan="2" colspan="2" >
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>check6</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>check6</string>
+- </property>
+- </widget>
+- <widget row="10" column="0" >
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>check7</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>check7</string>
+- </property>
+- </widget>
+- <spacer row="11" column="1" >
+- <property>
+- <name>name</name>
+- <cstring>Spacer14</cstring>
+- </property>
+- <property stdset="1">
+- <name>orientation</name>
+- <enum>Vertical</enum>
+- </property>
+- <property stdset="1">
+- <name>sizeType</name>
+- <enum>Expanding</enum>
+- </property>
+- <property>
+- <name>sizeHint</name>
+- <size>
+- <width>20</width>
+- <height>20</height>
+- </size>
+- </property>
+- </spacer>
+- <widget row="5" column="1" >
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>check11</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>check11</string>
+- </property>
+- </widget>
+- <widget row="7" column="1" >
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>check13</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>check13</string>
+- </property>
+- </widget>
+- <widget row="10" column="1" >
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>check15</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>check15</string>
+- </property>
+- </widget>
+- <widget row="4" column="1" >
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>check10</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>check10</string>
+- </property>
+- </widget>
+- <widget row="9" column="1" >
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>check14</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>check14</string>
+- </property>
+- </widget>
+- <widget row="2" column="1" >
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>check9</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>check9</string>
+- </property>
+- </widget>
+- <widget row="0" column="1" >
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>check8</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>check8</string>
+- </property>
+- </widget>
+- <widget row="6" column="1" >
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>check12</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>check12</string>
+- </property>
+- </widget>
+- </grid>
+- </widget>
+- </vbox>
+- </widget>
+- </hbox>
+- </widget>
+- <widget>
+- <class>QLabel</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>event_help_label</cstring>
+- </property>
+- <property stdset="1">
+- <name>enabled</name>
+- <bool>true</bool>
+- </property>
+- <property stdset="1">
+- <name>sizePolicy</name>
+- <sizepolicy>
+- <hsizetype>1</hsizetype>
+- <vsizetype>1</vsizetype>
+- </sizepolicy>
+- </property>
+- <property stdset="1">
+- <name>frameShape</name>
+- <enum>WinPanel</enum>
+- </property>
+- <property stdset="1">
+- <name>frameShadow</name>
+- <enum>Sunken</enum>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string></string>
+- </property>
+- </widget>
+- </vbox>
+- </widget>
+- </vbox>
+- </widget>
+- <widget>
+- <class>QWidget</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>configuration_page</cstring>
++ <property name="text">
++ <string>Profile &amp;kernel</string>
+ </property>
+- <attribute>
+- <name>title</name>
+- <string>&amp;Configuration</string>
+- </attribute>
+- <vbox>
+- <property stdset="1">
+- <name>margin</name>
+- <number>11</number>
+- </property>
+- <property stdset="1">
+- <name>spacing</name>
+- <number>6</number>
+- </property>
+- <widget>
+- <class>QLayoutWidget</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>Layout11</cstring>
+- </property>
+- <hbox>
+- <property stdset="1">
+- <name>margin</name>
+- <number>0</number>
+- </property>
+- <property stdset="1">
+- <name>spacing</name>
+- <number>6</number>
+- </property>
+- <widget>
+- <class>QLabel</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>TextLabel1</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>&amp;Kernel image file</string>
+- </property>
+- <property>
+- <name>buddy</name>
+- <cstring>kernel_filename_edit</cstring>
+- </property>
+- </widget>
+- <widget>
+- <class>QLineEdit</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>kernel_filename_edit</cstring>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>The vmlinux file of the running kernel</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QToolButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>kernel_filename_tb</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>...</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>no_vmlinux</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>No kernel image</string>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>No kernel image available. Disables kernel profiling.</string>
+- </property>
+- </widget>
+- </hbox>
+- </widget>
+- <widget>
+- <class>QLayoutWidget</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>Layout12</cstring>
+- </property>
+- <hbox>
+- <property stdset="1">
+- <name>margin</name>
+- <number>0</number>
+- </property>
+- <property stdset="1">
+- <name>spacing</name>
+- <number>6</number>
+- </property>
+- <widget>
+- <class>QLayoutWidget</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>Layout11</cstring>
+- </property>
+- <grid>
+- <property stdset="1">
+- <name>margin</name>
+- <number>0</number>
+- </property>
+- <property stdset="1">
+- <name>spacing</name>
+- <number>6</number>
+- </property>
+- <widget row="0" column="1" >
+- <class>QLineEdit</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>buffer_size_edit</cstring>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>The size of the profiler's buffers</string>
+- </property>
+- </widget>
+- <widget row="1" column="1" >
+- <class>QLineEdit</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>note_table_size_edit</cstring>
+- </property>
+- </widget>
+- <widget row="3" column="0" >
+- <class>QLabel</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>cpu_buffer_size_label</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>Cpu buffer size</string>
+- </property>
+- <property>
+- <name>buddy</name>
+- <cstring>cpu_buffer_size_edit</cstring>
+- </property>
+- </widget>
+- <widget row="3" column="1" >
+- <class>QLineEdit</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>cpu_buffer_size_edit</cstring>
+- </property>
+- </widget>
+- <widget row="0" column="0" >
+- <class>QLabel</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>buffer_size_label</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>&amp;Buffer size</string>
+- </property>
+- <property>
+- <name>buddy</name>
+- <cstring>buffer_size_edit</cstring>
+- </property>
+- </widget>
+- <widget row="1" column="0" >
+- <class>QLabel</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>note_table_size_label</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>Note Size</string>
+- </property>
+- <property>
+- <name>buddy</name>
+- <cstring>note_table_size_edit</cstring>
+- </property>
+- </widget>
+- <widget row="2" column="1" >
+- <class>QLineEdit</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>buffer_watershed_edit</cstring>
+- </property>
+- </widget>
+- <widget row="2" column="0" >
+- <class>QLabel</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>buffer_watershed_label</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>Buffer watershed</string>
+- </property>
+- <property>
+- <name>buddy</name>
+- <cstring>buffer_watershed_edit</cstring>
+- </property>
+- </widget>
+- </grid>
+- </widget>
+- <spacer>
+- <property>
+- <name>name</name>
+- <cstring>Spacer11</cstring>
+- </property>
+- <property stdset="1">
+- <name>orientation</name>
+- <enum>Horizontal</enum>
+- </property>
+- <property stdset="1">
+- <name>sizeType</name>
+- <enum>Expanding</enum>
+- </property>
+- <property>
+- <name>sizeHint</name>
+- <size>
+- <width>20</width>
+- <height>20</height>
+- </size>
+- </property>
+- </spacer>
+- </hbox>
+- </widget>
+- <widget>
+- <class>QLayoutWidget</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>Layout36</cstring>
+- </property>
+- <grid>
+- <property stdset="1">
+- <name>margin</name>
+- <number>0</number>
+- </property>
+- <property stdset="1">
+- <name>spacing</name>
+- <number>6</number>
+- </property>
+- <widget row="0" column="0" >
+- <class>QLayoutWidget</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>Layout34</cstring>
+- </property>
+- <vbox>
+- <property stdset="1">
+- <name>margin</name>
+- <number>0</number>
+- </property>
+- <property stdset="1">
+- <name>spacing</name>
+- <number>6</number>
+- </property>
+- <widget>
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>verbose</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>&amp;Verbose</string>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>Very verbose output in log file</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>separate_lib_cb</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>Per-application profiles</string>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>Separate samples for each shared library. This increases the time and space overhead of OProfile.</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>separate_kernel_cb</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>Per-application profiles, including kernel</string>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>Separate samples for each shared library and kernel samples. This increases the time and space overhead of OProfile.</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>separate_cpu_cb</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>Per-CPU profiles</string>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>Separate samples for each shared library and kernel samples. This increases the time and space overhead of OProfile.</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QCheckBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>separate_thread_cb</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>Per-thread/task profiles</string>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>Separate samples for each shared library and kernel samples. This increases the time and space overhead of OProfile.</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QLayoutWidget</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>Layout33</cstring>
+- </property>
+- <hbox>
+- <property stdset="1">
+- <name>margin</name>
+- <number>0</number>
+- </property>
+- <property stdset="1">
+- <name>spacing</name>
+- <number>6</number>
+- </property>
+- <widget>
+- <class>QLabel</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>callgraph_depth_label</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>callgraph depth, zero to disable</string>
+- </property>
+- <property>
+- <name>buddy</name>
+- <cstring>callgraph_depth_edit</cstring>
+- </property>
+- </widget>
+- <widget>
+- <class>QLineEdit</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>callgraph_depth_edit</cstring>
+- </property>
+- </widget>
+- </hbox>
+- </widget>
+- </vbox>
+- </widget>
+- <spacer row="0" column="1" >
+- <property>
+- <name>name</name>
+- <cstring>Spacer12</cstring>
+- </property>
+- <property stdset="1">
+- <name>orientation</name>
+- <enum>Horizontal</enum>
+- </property>
+- <property stdset="1">
+- <name>sizeType</name>
+- <enum>Expanding</enum>
+- </property>
+- <property>
+- <name>sizeHint</name>
+- <size>
+- <width>20</width>
+- <height>20</height>
+- </size>
+- </property>
+- </spacer>
+- </grid>
+- </widget>
+- <spacer>
+- <property>
+- <name>name</name>
+- <cstring>Spacer9</cstring>
+- </property>
+- <property stdset="1">
+- <name>orientation</name>
+- <enum>Vertical</enum>
+- </property>
+- <property stdset="1">
+- <name>sizeType</name>
+- <enum>Expanding</enum>
+- </property>
+- <property>
+- <name>sizeHint</name>
+- <size>
+- <width>20</width>
+- <height>20</height>
+- </size>
+- </property>
+- </spacer>
+- </vbox>
+- </widget>
+- </widget>
+- <widget>
+- <class>QLabel</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>daemon_label</cstring>
++ </widget>
++ </item>
++ <item>
++ <widget class="QCheckBox" name="user_ring_count_cb">
++ <property name="toolTip">
++ <string>Profile user libraries and applications</string>
++ </property>
++ <property name="text">
++ <string>Profile &amp;user binaries</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <layout class="QHBoxLayout">
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <property name="margin">
++ <number>0</number>
++ </property>
++ <item>
++ <widget class="QLabel" name="TextLabel1_2">
++ <property name="text">
++ <string>C&amp;ount</string>
++ </property>
++ <property name="wordWrap">
++ <bool>false</bool>
++ </property>
++ <property name="buddy">
++ <cstring>event_count_edit</cstring>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QLineEdit" name="event_count_edit">
++ <property name="sizePolicy">
++ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
++ </property>
++ <property name="toolTip">
++ <string>Set the count value</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <spacer name="Spacer13_2">
++ <property name="orientation">
++ <enum>Qt::Horizontal</enum>
++ </property>
++ <property name="sizeType">
++ <enum>QSizePolicy::Expanding</enum>
++ </property>
++ <property name="sizeHint" stdset="0">
++ <size>
++ <width>20</width>
++ <height>20</height>
++ </size>
++ </property>
++ </spacer>
++ </item>
++ </layout>
++ </item>
++ <item>
++ <widget class="Q3ButtonGroup" name="unit_mask_group">
++ <property name="sizePolicy">
++ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
++ </property>
++ <property name="toolTip">
++ <string>Unit mask settings for this event</string>
++ </property>
++ <property name="title">
++ <string>Unit mask</string>
++ </property>
++ <layout class="QGridLayout">
++ <property name="margin">
++ <number>11</number>
++ </property>
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <item row="0" column="0">
++ <widget class="QCheckBox" name="check0">
++ <property name="text">
++ <string>check0</string>
++ </property>
++ <attribute name="buttonGroup">
++ <string/>
++ </attribute>
++ </widget>
++ </item>
++ <item row="1" column="0" rowspan="2" colspan="2">
++ <widget class="QCheckBox" name="check1">
++ <property name="text">
++ <string>check1</string>
++ </property>
++ <attribute name="buttonGroup">
++ <string/>
++ </attribute>
++ </widget>
++ </item>
++ <item row="3" column="0" rowspan="2" colspan="2">
++ <widget class="QCheckBox" name="check2">
++ <property name="text">
++ <string>check2</string>
++ </property>
++ <attribute name="buttonGroup">
++ <string/>
++ </attribute>
++ </widget>
++ </item>
++ <item row="5" column="0">
++ <widget class="QCheckBox" name="check3">
++ <property name="text">
++ <string>check3</string>
++ </property>
++ <attribute name="buttonGroup">
++ <string/>
++ </attribute>
++ </widget>
++ </item>
++ <item row="6" column="0">
++ <widget class="QCheckBox" name="check4">
++ <property name="text">
++ <string>check4</string>
++ </property>
++ <attribute name="buttonGroup">
++ <string/>
++ </attribute>
++ </widget>
++ </item>
++ <item row="7" column="0">
++ <widget class="QCheckBox" name="check5">
++ <property name="text">
++ <string>check5</string>
++ </property>
++ <attribute name="buttonGroup">
++ <string/>
++ </attribute>
++ </widget>
++ </item>
++ <item row="8" column="0" rowspan="2" colspan="2">
++ <widget class="QCheckBox" name="check6">
++ <property name="text">
++ <string>check6</string>
++ </property>
++ <attribute name="buttonGroup">
++ <string/>
++ </attribute>
++ </widget>
++ </item>
++ <item row="10" column="0">
++ <widget class="QCheckBox" name="check7">
++ <property name="text">
++ <string>check7</string>
++ </property>
++ <attribute name="buttonGroup">
++ <string/>
++ </attribute>
++ </widget>
++ </item>
++ <item row="11" column="1">
++ <spacer name="Spacer14">
++ <property name="orientation">
++ <enum>Qt::Vertical</enum>
++ </property>
++ <property name="sizeType">
++ <enum>QSizePolicy::Expanding</enum>
++ </property>
++ <property name="sizeHint" stdset="0">
++ <size>
++ <width>20</width>
++ <height>20</height>
++ </size>
++ </property>
++ </spacer>
++ </item>
++ <item row="5" column="1">
++ <widget class="QCheckBox" name="check11">
++ <property name="text">
++ <string>check11</string>
++ </property>
++ <attribute name="buttonGroup">
++ <string/>
++ </attribute>
++ </widget>
++ </item>
++ <item row="7" column="1">
++ <widget class="QCheckBox" name="check13">
++ <property name="text">
++ <string>check13</string>
++ </property>
++ <attribute name="buttonGroup">
++ <string/>
++ </attribute>
++ </widget>
++ </item>
++ <item row="10" column="1">
++ <widget class="QCheckBox" name="check15">
++ <property name="text">
++ <string>check15</string>
++ </property>
++ <attribute name="buttonGroup">
++ <string/>
++ </attribute>
++ </widget>
++ </item>
++ <item row="4" column="1">
++ <widget class="QCheckBox" name="check10">
++ <property name="text">
++ <string>check10</string>
++ </property>
++ <attribute name="buttonGroup">
++ <string/>
++ </attribute>
++ </widget>
++ </item>
++ <item row="9" column="1">
++ <widget class="QCheckBox" name="check14">
++ <property name="text">
++ <string>check14</string>
++ </property>
++ <attribute name="buttonGroup">
++ <string/>
++ </attribute>
++ </widget>
++ </item>
++ <item row="2" column="1">
++ <widget class="QCheckBox" name="check9">
++ <property name="text">
++ <string>check9</string>
++ </property>
++ <attribute name="buttonGroup">
++ <string/>
++ </attribute>
++ </widget>
++ </item>
++ <item row="0" column="1">
++ <widget class="QCheckBox" name="check8">
++ <property name="text">
++ <string>check8</string>
++ </property>
++ <attribute name="buttonGroup">
++ <string/>
++ </attribute>
++ </widget>
++ </item>
++ <item row="6" column="1">
++ <widget class="QCheckBox" name="check12">
++ <property name="text">
++ <string>check12</string>
++ </property>
++ <attribute name="buttonGroup">
++ <string/>
++ </attribute>
++ </widget>
++ </item>
++ </layout>
++ </widget>
++ </item>
++ </layout>
++ </item>
++ </layout>
++ </item>
++ <item>
++ <widget class="QLabel" name="event_help_label">
++ <property name="enabled">
++ <bool>true</bool>
+ </property>
+- <property stdset="1">
+- <name>frameShape</name>
+- <enum>Panel</enum>
++ <property name="sizePolicy">
++ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
+ </property>
+- <property stdset="1">
+- <name>frameShadow</name>
+- <enum>Sunken</enum>
++ <property name="frameShape">
++ <enum>QFrame::Panel</enum>
+ </property>
+- <property stdset="1">
+- <name>text</name>
+- <string></string>
++ <property name="frameShadow">
++ <enum>QFrame::Sunken</enum>
+ </property>
+- <property>
+- <name>toolTip</name>
+- <string>Current daemon status</string>
++ <property name="text">
++ <string/>
+ </property>
+- </widget>
+- <widget>
+- <class>QLayoutWidget</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>Layout37</cstring>
++ <property name="wordWrap">
++ <bool>false</bool>
+ </property>
+- <hbox>
+- <property stdset="1">
+- <name>margin</name>
+- <number>0</number>
+- </property>
+- <property stdset="1">
+- <name>spacing</name>
+- <number>6</number>
+- </property>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>start_profiler_btn</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>St&amp;art</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>flush_profiler_data_btn</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>&amp;Flush</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>stop_profiler_btn</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>Stop</string>
+- </property>
+- </widget>
+- <spacer>
+- <property>
+- <name>name</name>
+- <cstring>Spacer5</cstring>
+- </property>
+- <property stdset="1">
+- <name>orientation</name>
+- <enum>Horizontal</enum>
+- </property>
+- <property stdset="1">
+- <name>sizeType</name>
+- <enum>Expanding</enum>
+- </property>
+- <property>
+- <name>sizeHint</name>
+- <size>
+- <width>20</width>
+- <height>20</height>
+- </size>
+- </property>
+- </spacer>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>reset_sample_files_btn</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>Reset sample files</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>quit_and_save_btn</cstring>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>Save and &amp;quit</string>
+- </property>
+- <property stdset="1">
+- <name>autoDefault</name>
+- <bool>true</bool>
+- </property>
+- </widget>
+- </hbox>
++ </widget>
++ </item>
++ </layout>
+ </widget>
+- </vbox>
+-</widget>
+-<connections>
+- <connection>
+- <sender>start_profiler_btn</sender>
+- <signal>clicked()</signal>
+- <receiver>oprof_start_base</receiver>
+- <slot>on_start_profiler()</slot>
+- </connection>
+- <connection>
+- <sender>stop_profiler_btn</sender>
+- <signal>clicked()</signal>
+- <receiver>oprof_start_base</receiver>
+- <slot>on_stop_profiler()</slot>
+- </connection>
+- <connection>
+- <sender>flush_profiler_data_btn</sender>
+- <signal>clicked()</signal>
+- <receiver>oprof_start_base</receiver>
+- <slot>on_flush_profiler_data()</slot>
+- </connection>
+- <connection>
+- <sender>quit_and_save_btn</sender>
+- <signal>clicked()</signal>
+- <receiver>oprof_start_base</receiver>
+- <slot>accept()</slot>
+- </connection>
+- <connection>
+- <sender>kernel_filename_tb</sender>
+- <signal>clicked()</signal>
+- <receiver>oprof_start_base</receiver>
+- <slot>choose_kernel_filename()</slot>
+- </connection>
+- <connection>
+- <sender>no_vmlinux</sender>
+- <signal>toggled(bool)</signal>
+- <receiver>kernel_filename_tb</receiver>
+- <slot>setDisabled(bool)</slot>
+- </connection>
+- <connection>
+- <sender>no_vmlinux</sender>
+- <signal>toggled(bool)</signal>
+- <receiver>kernel_filename_edit</receiver>
+- <slot>setDisabled(bool)</slot>
+- </connection>
+- <connection>
+- <sender>no_vmlinux</sender>
+- <signal>toggled(bool)</signal>
+- <receiver>TextLabel1</receiver>
+- <slot>setDisabled(bool)</slot>
+- </connection>
+- <connection>
+- <sender>separate_kernel_cb</sender>
+- <signal>stateChanged(int)</signal>
+- <receiver>oprof_start_base</receiver>
+- <slot>on_separate_kernel_cb_changed(int)</slot>
+- </connection>
+- <connection>
+- <sender>reset_sample_files_btn</sender>
+- <signal>clicked()</signal>
+- <receiver>oprof_start_base</receiver>
+- <slot>on_reset_sample_files()</slot>
+- </connection>
+- <connection>
+- <sender>events_list</sender>
+- <signal>selectionChanged()</signal>
+- <receiver>oprof_start_base</receiver>
+- <slot>event_selected()</slot>
+- </connection>
+- <connection>
+- <sender>events_list</sender>
+- <signal>currentChanged(QListViewItem*)</signal>
+- <receiver>oprof_start_base</receiver>
+- <slot>event_over(QListViewItem *)</slot>
+- </connection>
+- <connection>
+- <sender>events_list</sender>
+- <signal>onItem(QListViewItem*)</signal>
+- <receiver>oprof_start_base</receiver>
+- <slot>event_over(QListViewItem *)</slot>
+- </connection>
+- <slot access="protected">choose_kernel_filename()</slot>
+- <slot access="protected">event_over(QListViewItem *)</slot>
+- <slot access="protected">event_selected()</slot>
+- <slot access="protected">on_reset_sample_files()</slot>
+- <slot access="protected">on_flush_profiler_data()</slot>
+- <slot access="protected">on_separate_kernel_cb_changed(int)</slot>
+- <slot access="protected">on_start_profiler()</slot>
+- <slot access="protected">on_stop_profiler()</slot>
+-</connections>
+-<tabstops>
+- <tabstop>setup_config_tab</tabstop>
+- <tabstop>events_list</tabstop>
+- <tabstop>os_ring_count_cb</tabstop>
+- <tabstop>user_ring_count_cb</tabstop>
+- <tabstop>event_count_edit</tabstop>
+- <tabstop>check0</tabstop>
+- <tabstop>check1</tabstop>
+- <tabstop>check2</tabstop>
+- <tabstop>check3</tabstop>
+- <tabstop>check4</tabstop>
+- <tabstop>check5</tabstop>
+- <tabstop>check6</tabstop>
+- <tabstop>check7</tabstop>
+- <tabstop>check8</tabstop>
+- <tabstop>check9</tabstop>
+- <tabstop>check10</tabstop>
+- <tabstop>check11</tabstop>
+- <tabstop>check12</tabstop>
+- <tabstop>check13</tabstop>
+- <tabstop>check14</tabstop>
+- <tabstop>check15</tabstop>
+- <tabstop>start_profiler_btn</tabstop>
+- <tabstop>flush_profiler_data_btn</tabstop>
+- <tabstop>stop_profiler_btn</tabstop>
+- <tabstop>reset_sample_files_btn</tabstop>
+- <tabstop>quit_and_save_btn</tabstop>
+- <tabstop>kernel_filename_edit</tabstop>
+- <tabstop>no_vmlinux</tabstop>
+- <tabstop>buffer_size_edit</tabstop>
+- <tabstop>note_table_size_edit</tabstop>
+- <tabstop>buffer_watershed_edit</tabstop>
+- <tabstop>verbose</tabstop>
+- <tabstop>separate_lib_cb</tabstop>
+- <tabstop>separate_kernel_cb</tabstop>
+- <tabstop>separate_cpu_cb</tabstop>
+- <tabstop>separate_thread_cb</tabstop>
+- <tabstop>callgraph_depth_edit</tabstop>
+-</tabstops>
+-</UI>
++ </item>
++ </layout>
++ </widget>
++ <widget class="QWidget" name="configuration_page">
++ <attribute name="title">
++ <string>&amp;Configuration</string>
++ </attribute>
++ <layout class="QVBoxLayout">
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <property name="margin">
++ <number>11</number>
++ </property>
++ <item>
++ <layout class="QHBoxLayout">
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <property name="margin">
++ <number>0</number>
++ </property>
++ <item>
++ <widget class="QLabel" name="TextLabel1">
++ <property name="text">
++ <string>&amp;Kernel image file</string>
++ </property>
++ <property name="wordWrap">
++ <bool>false</bool>
++ </property>
++ <property name="buddy">
++ <cstring>kernel_filename_edit</cstring>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QLineEdit" name="kernel_filename_edit">
++ <property name="toolTip">
++ <string>The vmlinux file of the running kernel</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QToolButton" name="kernel_filename_tb">
++ <property name="text">
++ <string>...</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QCheckBox" name="no_vmlinux">
++ <property name="toolTip">
++ <string>No kernel image available. Disables kernel profiling.</string>
++ </property>
++ <property name="text">
++ <string>No kernel image</string>
++ </property>
++ </widget>
++ </item>
++ </layout>
++ </item>
++ <item>
++ <layout class="QHBoxLayout">
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <property name="margin">
++ <number>0</number>
++ </property>
++ <item>
++ <layout class="QGridLayout">
++ <property name="margin">
++ <number>0</number>
++ </property>
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <item row="0" column="1">
++ <widget class="QLineEdit" name="buffer_size_edit">
++ <property name="toolTip">
++ <string>The size of the profiler's buffers</string>
++ </property>
++ </widget>
++ </item>
++ <item row="1" column="1">
++ <widget class="QLineEdit" name="note_table_size_edit"/>
++ </item>
++ <item row="3" column="0">
++ <widget class="QLabel" name="cpu_buffer_size_label">
++ <property name="text">
++ <string>Cpu buffer size</string>
++ </property>
++ <property name="wordWrap">
++ <bool>false</bool>
++ </property>
++ <property name="buddy">
++ <cstring>cpu_buffer_size_edit</cstring>
++ </property>
++ </widget>
++ </item>
++ <item row="3" column="1">
++ <widget class="QLineEdit" name="cpu_buffer_size_edit"/>
++ </item>
++ <item row="0" column="0">
++ <widget class="QLabel" name="buffer_size_label">
++ <property name="text">
++ <string>&amp;Buffer size</string>
++ </property>
++ <property name="wordWrap">
++ <bool>false</bool>
++ </property>
++ <property name="buddy">
++ <cstring>buffer_size_edit</cstring>
++ </property>
++ </widget>
++ </item>
++ <item row="1" column="0">
++ <widget class="QLabel" name="note_table_size_label">
++ <property name="text">
++ <string>Note Size</string>
++ </property>
++ <property name="wordWrap">
++ <bool>false</bool>
++ </property>
++ <property name="buddy">
++ <cstring>note_table_size_edit</cstring>
++ </property>
++ </widget>
++ </item>
++ <item row="2" column="1">
++ <widget class="QLineEdit" name="buffer_watershed_edit"/>
++ </item>
++ <item row="2" column="0">
++ <widget class="QLabel" name="buffer_watershed_label">
++ <property name="text">
++ <string>Buffer watershed</string>
++ </property>
++ <property name="wordWrap">
++ <bool>false</bool>
++ </property>
++ <property name="buddy">
++ <cstring>buffer_watershed_edit</cstring>
++ </property>
++ </widget>
++ </item>
++ </layout>
++ </item>
++ <item>
++ <spacer name="Spacer11">
++ <property name="orientation">
++ <enum>Qt::Horizontal</enum>
++ </property>
++ <property name="sizeType">
++ <enum>QSizePolicy::Expanding</enum>
++ </property>
++ <property name="sizeHint" stdset="0">
++ <size>
++ <width>20</width>
++ <height>20</height>
++ </size>
++ </property>
++ </spacer>
++ </item>
++ </layout>
++ </item>
++ <item>
++ <layout class="QGridLayout">
++ <property name="margin">
++ <number>0</number>
++ </property>
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <item row="0" column="0">
++ <layout class="QVBoxLayout">
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <property name="margin">
++ <number>0</number>
++ </property>
++ <item>
++ <widget class="QCheckBox" name="verbose">
++ <property name="toolTip">
++ <string>Very verbose output in log file</string>
++ </property>
++ <property name="text">
++ <string>&amp;Verbose</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QCheckBox" name="separate_lib_cb">
++ <property name="toolTip">
++ <string>Separate samples for each shared library. This increases the time and space overhead of OProfile.</string>
++ </property>
++ <property name="text">
++ <string>Per-application profiles</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QCheckBox" name="separate_kernel_cb">
++ <property name="toolTip">
++ <string>Separate samples for each shared library and kernel samples. This increases the time and space overhead of OProfile.</string>
++ </property>
++ <property name="text">
++ <string>Per-application profiles, including kernel</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QCheckBox" name="separate_cpu_cb">
++ <property name="toolTip">
++ <string>Separate samples for each shared library and kernel samples. This increases the time and space overhead of OProfile.</string>
++ </property>
++ <property name="text">
++ <string>Per-CPU profiles</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QCheckBox" name="separate_thread_cb">
++ <property name="toolTip">
++ <string>Separate samples for each shared library and kernel samples. This increases the time and space overhead of OProfile.</string>
++ </property>
++ <property name="text">
++ <string>Per-thread/task profiles</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <layout class="QHBoxLayout">
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <property name="margin">
++ <number>0</number>
++ </property>
++ <item>
++ <widget class="QLabel" name="callgraph_depth_label">
++ <property name="text">
++ <string>callgraph depth, zero to disable</string>
++ </property>
++ <property name="wordWrap">
++ <bool>false</bool>
++ </property>
++ <property name="buddy">
++ <cstring>callgraph_depth_edit</cstring>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QLineEdit" name="callgraph_depth_edit"/>
++ </item>
++ </layout>
++ </item>
++ </layout>
++ </item>
++ <item row="0" column="1">
++ <spacer name="Spacer12">
++ <property name="orientation">
++ <enum>Qt::Horizontal</enum>
++ </property>
++ <property name="sizeType">
++ <enum>QSizePolicy::Expanding</enum>
++ </property>
++ <property name="sizeHint" stdset="0">
++ <size>
++ <width>20</width>
++ <height>20</height>
++ </size>
++ </property>
++ </spacer>
++ </item>
++ </layout>
++ </item>
++ <item>
++ <spacer name="Spacer9">
++ <property name="orientation">
++ <enum>Qt::Vertical</enum>
++ </property>
++ <property name="sizeType">
++ <enum>QSizePolicy::Expanding</enum>
++ </property>
++ <property name="sizeHint" stdset="0">
++ <size>
++ <width>20</width>
++ <height>20</height>
++ </size>
++ </property>
++ </spacer>
++ </item>
++ </layout>
++ </widget>
++ </widget>
++ </item>
++ <item>
++ <widget class="QLabel" name="daemon_label">
++ <property name="toolTip">
++ <string>Current daemon status</string>
++ </property>
++ <property name="frameShape">
++ <enum>QFrame::Panel</enum>
++ </property>
++ <property name="frameShadow">
++ <enum>QFrame::Sunken</enum>
++ </property>
++ <property name="text">
++ <string/>
++ </property>
++ <property name="wordWrap">
++ <bool>false</bool>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <layout class="QHBoxLayout">
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <property name="margin">
++ <number>0</number>
++ </property>
++ <item>
++ <widget class="QPushButton" name="start_profiler_btn">
++ <property name="text">
++ <string>St&amp;art</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QPushButton" name="flush_profiler_data_btn">
++ <property name="text">
++ <string>&amp;Flush</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QPushButton" name="stop_profiler_btn">
++ <property name="text">
++ <string>Stop</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <spacer name="Spacer5">
++ <property name="orientation">
++ <enum>Qt::Horizontal</enum>
++ </property>
++ <property name="sizeType">
++ <enum>QSizePolicy::Expanding</enum>
++ </property>
++ <property name="sizeHint" stdset="0">
++ <size>
++ <width>20</width>
++ <height>20</height>
++ </size>
++ </property>
++ </spacer>
++ </item>
++ <item>
++ <widget class="QPushButton" name="reset_sample_files_btn">
++ <property name="text">
++ <string>Reset sample files</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QPushButton" name="quit_and_save_btn">
++ <property name="text">
++ <string>Save and &amp;quit</string>
++ </property>
++ <property name="autoDefault">
++ <bool>true</bool>
++ </property>
++ </widget>
++ </item>
++ </layout>
++ </item>
++ </layout>
++ </widget>
++ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
++ <customwidgets>
++ <customwidget>
++ <class>Q3GroupBox</class>
++ <extends>QGroupBox</extends>
++ <header>Qt3Support/Q3GroupBox</header>
++ <container>1</container>
++ </customwidget>
++ <customwidget>
++ <class>Q3Frame</class>
++ <extends>QFrame</extends>
++ <header>Qt3Support/Q3Frame</header>
++ <container>1</container>
++ </customwidget>
++ <customwidget>
++ <class>Q3ButtonGroup</class>
++ <extends>Q3GroupBox</extends>
++ <header>Qt3Support/Q3ButtonGroup</header>
++ <container>1</container>
++ </customwidget>
++ <customwidget>
++ <class>Q3ListView</class>
++ <extends>Q3Frame</extends>
++ <header>q3listview.h</header>
++ </customwidget>
++ </customwidgets>
++ <tabstops>
++ <tabstop>setup_config_tab</tabstop>
++ <tabstop>events_list</tabstop>
++ <tabstop>os_ring_count_cb</tabstop>
++ <tabstop>user_ring_count_cb</tabstop>
++ <tabstop>event_count_edit</tabstop>
++ <tabstop>check0</tabstop>
++ <tabstop>check1</tabstop>
++ <tabstop>check2</tabstop>
++ <tabstop>check3</tabstop>
++ <tabstop>check4</tabstop>
++ <tabstop>check5</tabstop>
++ <tabstop>check6</tabstop>
++ <tabstop>check7</tabstop>
++ <tabstop>check8</tabstop>
++ <tabstop>check9</tabstop>
++ <tabstop>check10</tabstop>
++ <tabstop>check11</tabstop>
++ <tabstop>check12</tabstop>
++ <tabstop>check13</tabstop>
++ <tabstop>check14</tabstop>
++ <tabstop>check15</tabstop>
++ <tabstop>start_profiler_btn</tabstop>
++ <tabstop>flush_profiler_data_btn</tabstop>
++ <tabstop>stop_profiler_btn</tabstop>
++ <tabstop>reset_sample_files_btn</tabstop>
++ <tabstop>quit_and_save_btn</tabstop>
++ <tabstop>kernel_filename_edit</tabstop>
++ <tabstop>no_vmlinux</tabstop>
++ <tabstop>buffer_size_edit</tabstop>
++ <tabstop>note_table_size_edit</tabstop>
++ <tabstop>buffer_watershed_edit</tabstop>
++ <tabstop>verbose</tabstop>
++ <tabstop>separate_lib_cb</tabstop>
++ <tabstop>separate_kernel_cb</tabstop>
++ <tabstop>separate_cpu_cb</tabstop>
++ <tabstop>separate_thread_cb</tabstop>
++ <tabstop>callgraph_depth_edit</tabstop>
++ </tabstops>
++ <resources/>
++ <connections>
++ <connection>
++ <sender>start_profiler_btn</sender>
++ <signal>clicked(bool)</signal>
++ <receiver>oprof_start_base</receiver>
++ <slot>start_profiler()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>stop_profiler_btn</sender>
++ <signal>clicked(bool)</signal>
++ <receiver>oprof_start_base</receiver>
++ <slot>stop_profiler()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>flush_profiler_data_btn</sender>
++ <signal>clicked(bool)</signal>
++ <receiver>oprof_start_base</receiver>
++ <slot>flush_profiler_data()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>quit_and_save_btn</sender>
++ <signal>clicked(bool)</signal>
++ <receiver>oprof_start_base</receiver>
++ <slot>accept()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>kernel_filename_tb</sender>
++ <signal>clicked(bool)</signal>
++ <receiver>oprof_start_base</receiver>
++ <slot>choose_kernel_filename()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>no_vmlinux</sender>
++ <signal>toggled(bool)</signal>
++ <receiver>kernel_filename_tb</receiver>
++ <slot>setDisabled(bool)</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>no_vmlinux</sender>
++ <signal>toggled(bool)</signal>
++ <receiver>kernel_filename_edit</receiver>
++ <slot>setDisabled(bool)</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>no_vmlinux</sender>
++ <signal>toggled(bool)</signal>
++ <receiver>TextLabel1</receiver>
++ <slot>setDisabled(bool)</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>separate_kernel_cb</sender>
++ <signal>stateChanged(int)</signal>
++ <receiver>oprof_start_base</receiver>
++ <slot>separate_kernel_cb_changed(int)</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>reset_sample_files_btn</sender>
++ <signal>clicked(bool)</signal>
++ <receiver>oprof_start_base</receiver>
++ <slot>reset_sample_files()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>events_list</sender>
++ <signal>selectionChanged()</signal>
++ <receiver>oprof_start_base</receiver>
++ <slot>event_selected()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>events_list</sender>
++ <signal>currentChanged(Q3ListViewItem*)</signal>
++ <receiver>oprof_start_base</receiver>
++ <slot>event_over(Q3ListViewItem*)</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>events_list</sender>
++ <signal>onItem(Q3ListViewItem*)</signal>
++ <receiver>oprof_start_base</receiver>
++ <slot>event_over(Q3ListViewItem*)</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ </connections>
++</ui>
+diff --git a/m4/qt.m4 b/m4/qt.m4
+deleted file mode 100644
+index b0e30ef..0000000
+--- a/m4/qt.m4
++++ /dev/null
+@@ -1,217 +0,0 @@
+-dnl find a binary in the path
+-AC_DEFUN([QT_FIND_PATH],
+-[
+- AC_MSG_CHECKING([for $1])
+- AC_CACHE_VAL(qt_cv_path_$1,
+- [
+- qt_cv_path_$1="NONE"
+- if test -n "$$2"; then
+- qt_cv_path_$1="$$2";
+- else
+- dirs="$3"
+- qt_save_IFS=$IFS
+- IFS=':'
+- for dir in $PATH; do
+- dirs="$dirs $dir"
+- done
+- IFS=$qt_save_IFS
+-
+- for dir in $dirs; do
+- if test -x "$dir/$1"; then
+- if test -n "$5"; then
+- evalstr="$dir/$1 $5 2>&1 "
+- if eval $evalstr; then
+- qt_cv_path_$1="$dir/$1"
+- break
+- fi
+- else
+- qt_cv_path_$1="$dir/$1"
+- break
+- fi
+- fi
+- done
+- fi
+- ])
+-
+- if test -z "$qt_cv_path_$1" || test "$qt_cv_path_$1" = "NONE"; then
+- AC_MSG_RESULT(not found)
+- $4
+- else
+- AC_MSG_RESULT($qt_cv_path_$1)
+- $2=$qt_cv_path_$1
+- fi
+-])
+-
+-dnl Find the uic compiler on the path or in qt_cv_dir
+-AC_DEFUN([QT_FIND_UIC],
+-[
+- QT_FIND_PATH(uic, ac_uic, $qt_cv_dir/bin)
+- if test -z "$ac_uic" -a "$FATAL" = 1; then
+- AC_MSG_ERROR([uic binary not found in \$PATH or $qt_cv_dir/bin !])
+- fi
+-])
+-
+-dnl Find the right moc in path/qt_cv_dir
+-AC_DEFUN([QT_FIND_MOC],
+-[
+- QT_FIND_PATH(moc2, ac_moc2, $qt_cv_dir/bin)
+- QT_FIND_PATH(moc, ac_moc1, $qt_cv_dir/bin)
+-
+- if test -n "$ac_moc1" -a -n "$ac_moc2"; then
+- dnl found both. Prefer Qt3's if it exists else moc2
+- $ac_moc1 -v 2>&1 | grep "Qt 3" >/dev/null
+- if test "$?" = 0; then
+- ac_moc=$ac_moc1;
+- else
+- ac_moc=$ac_moc2;
+- fi
+- else
+- if test -n "$ac_moc1"; then
+- ac_moc=$ac_moc1;
+- else
+- ac_moc=$ac_moc2;
+- fi
+- fi
+-
+- if test -z "$ac_moc" -a "$FATAL" = 1; then
+- AC_MSG_ERROR([moc binary not found in \$PATH or $qt_cv_dir/bin !])
+- fi
+-])
+-
+-dnl check a particular libname
+-AC_DEFUN([QT_TRY_LINK],
+-[
+- SAVE_LIBS="$LIBS"
+- LIBS="$LIBS $1"
+- AC_TRY_LINK([
+- #include <qglobal.h>
+- #include <qstring.h>
+- ],
+- [
+- QString s("mangle_failure");
+- #if (QT_VERSION < 221)
+- break_me_(\\\);
+- #endif
+- ],
+- qt_cv_libname=$1,
+- )
+- LIBS="$SAVE_LIBS"
+-])
+-
+-dnl check we can do a compile
+-AC_DEFUN([QT_CHECK_COMPILE],
+-[
+- AC_MSG_CHECKING([for Qt library name])
+-
+- AC_CACHE_VAL(qt_cv_libname,
+- [
+- AC_LANG_CPLUSPLUS
+- SAVE_CXXFLAGS=$CXXFLAGS
+- CXXFLAGS="$CXXFLAGS $QT_INCLUDES $QT_LDFLAGS"
+-
+- for libname in -lqt-mt -lqt3 -lqt2 -lqt;
+- do
+- QT_TRY_LINK($libname)
+- if test -n "$qt_cv_libname"; then
+- break;
+- fi
+- done
+-
+- CXXFLAGS=$SAVE_CXXFLAGS
+- ])
+-
+- if test -z "$qt_cv_libname"; then
+- AC_MSG_RESULT([failed])
+- if test "$FATAL" = 1 ; then
+- AC_MSG_ERROR([Cannot compile a simple Qt executable. Check you have the right \$QTDIR !])
+- fi
+- else
+- AC_MSG_RESULT([$qt_cv_libname])
+- fi
+-])
+-
+-dnl get Qt version we're using
+-AC_DEFUN([QT_GET_VERSION],
+-[
+- AC_CACHE_CHECK([Qt version],lyx_cv_qtversion,
+- [
+- AC_LANG_CPLUSPLUS
+- SAVE_CPPFLAGS=$CPPFLAGS
+- CPPFLAGS="$CPPFLAGS $QT_INCLUDES"
+-
+- cat > conftest.$ac_ext <<EOF
+-#line __oline__ "configure"
+-#include "confdefs.h"
+-#include <qglobal.h>
+-"%%%"QT_VERSION_STR"%%%"
+-EOF
+- lyx_cv_qtversion=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
+- grep '^"%%%"' 2>/dev/null | \
+- sed -e 's/"%%%"//g' -e 's/"//g'`
+- rm -f conftest.$ac_ext
+- CPPFLAGS=$SAVE_CPPFLAGS
+- ])
+-
+- QT_VERSION=$lyx_cv_qtversion
+- AC_SUBST(QT_VERSION)
+-])
+-
+-dnl start here
+-AC_DEFUN([QT_DO_IT_ALL],
+-[
+- dnl Please leave this alone. I use this file in
+- dnl oprofile.
+- FATAL=0
+-
+- AC_ARG_WITH(qt-dir, [ --with-qt-dir where the root of Qt is installed ],
+- [ qt_cv_dir=`eval echo "$withval"/` ])
+-
+- AC_ARG_WITH(qt-includes, [ --with-qt-includes where the Qt includes are. ],
+- [ qt_cv_includes=`eval echo "$withval"` ])
+-
+- AC_ARG_WITH(qt-libraries, [ --with-qt-libraries where the Qt library is installed.],
+- [ qt_cv_libraries=`eval echo "$withval"` ])
+-
+- dnl pay attention to $QTDIR unless overridden
+- if test -z "$qt_cv_dir"; then
+- qt_cv_dir=$QTDIR
+- fi
+-
+- dnl derive inc/lib if needed
+- if test -n "$qt_cv_dir"; then
+- if test -z "$qt_cv_includes"; then
+- qt_cv_includes=$qt_cv_dir/include
+- fi
+- if test -z "$qt_cv_libraries"; then
+- qt_cv_libraries=$qt_cv_dir/lib
+- fi
+- fi
+-
+- dnl flags for compilation
+- QT_INCLUDES=
+- QT_LDFLAGS=
+- if test -n "$qt_cv_includes"; then
+- QT_INCLUDES="-isystem $qt_cv_includes"
+- fi
+- if test -n "$qt_cv_libraries"; then
+- QT_LDFLAGS="-L$qt_cv_libraries"
+- fi
+- AC_SUBST(QT_INCLUDES)
+- AC_SUBST(QT_LDFLAGS)
+-
+- QT_FIND_MOC
+- MOC=$ac_moc
+- AC_SUBST(MOC)
+- QT_FIND_UIC
+- UIC=$ac_uic
+- AC_SUBST(UIC)
+-
+- QT_CHECK_COMPILE
+-
+- QT_LIB=$qt_cv_libname;
+- AC_SUBST(QT_LIB)
+-
+- if test -n "$qt_cv_libname"; then
+- QT_GET_VERSION
+- fi
+-])
+diff --git a/m4/qt4.m4 b/m4/qt4.m4
+new file mode 100644
+index 0000000..0df96f7
+--- /dev/null
++++ b/m4/qt4.m4
+@@ -0,0 +1,211 @@
++dnl check a particular libname
++AC_DEFUN([QT4_TRY_LINK],
++[
++ SAVE_LIBS="$LIBS"
++ LIBS="$LIBS $1"
++ AC_TRY_LINK([
++ #include <qglobal.h>
++ #include <qstring.h>
++ ],
++ [
++ QString s("mangle_failure");
++ #if (QT_VERSION < 400)
++ break_me_(\\\);
++ #endif
++ ],
++ qt4_cv_libname=$1,
++ )
++ LIBS="$SAVE_LIBS"
++])
++
++dnl check we can do a compile
++AC_DEFUN([QT4_CHECK_COMPILE],
++[
++ AC_MSG_CHECKING([for Qt 4 library name])
++
++ AC_CACHE_VAL(qt4_cv_libname,
++ [
++ AC_LANG_CPLUSPLUS
++ SAVE_CXXFLAGS=$CXXFLAGS
++ CXXFLAGS="$CXXFLAGS $QT4_INCLUDES $QT4_LDFLAGS"
++ for libname in -lQtCore -lQtCore4
++ do
++ QT4_TRY_LINK($libname)
++ if test -n "$qt4_cv_libname"; then
++ QT4_CORE_LIB="$qt4_cv_libname"
++ break;
++ fi
++ done
++ qt4_cv_libname=
++ for libname in '-lQtCore -lQtGui' \
++ '-lQtCore4 -lQtGui4'
++ do
++ QT4_TRY_LINK($libname)
++ if test -n "$qt4_cv_libname"; then
++ break;
++ fi
++ done
++ CXXFLAGS=$SAVE_CXXFLAGS
++ ])
++
++ if test -z "$qt4_cv_libname"; then
++ AC_MSG_RESULT([failed])
++ if test "$FATAL" = 1 ; then
++ AC_MSG_ERROR([Cannot compile a simple Qt 4 executable. Check you have the right \$QT4DIR !])
++ fi
++ else
++ AC_MSG_RESULT([$qt4_cv_libname])
++ fi
++])
++
++dnl get Qt version we're using
++AC_DEFUN([QT4_GET_VERSION],
++[
++ AC_CACHE_CHECK([Qt 4 version],lyx_cv_qt4version,
++ [
++ AC_LANG_CPLUSPLUS
++ SAVE_CPPFLAGS=$CPPFLAGS
++ CPPFLAGS="$CPPFLAGS $QT4_INCLUDES"
++
++ cat > conftest.$ac_ext <<EOF
++#line __oline__ "configure"
++#include "confdefs.h"
++#include <qglobal.h>
++"%%%"QT_VERSION_STR"%%%"
++EOF
++ lyx_cv_qt4version=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
++ grep '^"%%%"' 2>/dev/null | \
++ sed -e 's/"%%%"//g' -e 's/"//g'`
++ rm -f conftest.$ac_ext
++ CPPFLAGS=$SAVE_CPPFLAGS
++ ])
++
++ QT4_VERSION=$lyx_cv_qt4version
++ AC_SUBST(QT4_VERSION)
++])
++
++dnl start here
++AC_DEFUN([QT4_DO_IT_ALL],
++[
++ dnl this variable is precious
++ AC_ARG_VAR(QT4DIR, [the place where the Qt 4 files are, e.g. /usr/lib/qt4])
++
++ dnl Please leave this alone. I use this file in
++ dnl oprofile.
++ FATAL=0
++
++ AC_ARG_WITH(qt4-dir, [ --with-qt4-dir where the root of Qt 4 is installed ],
++ [ qt4_cv_dir=`eval echo "$withval"/` ])
++
++ AC_ARG_WITH(qt4-includes, [ --with-qt4-includes where the Qt 4 includes are. ],
++ [ qt4_cv_includes=`eval echo "$withval"` ])
++
++ AC_ARG_WITH(qt4-libraries, [ --with-qt4-libraries where the Qt 4 library is installed.],
++ [ qt4_cv_libraries=`eval echo "$withval"` ])
++
++ dnl pay attention to $QT4DIR unless overridden
++ if test -z "$qt4_cv_dir"; then
++ qt4_cv_dir=$QT4DIR
++ fi
++
++ dnl derive inc/lib if needed
++ if test -n "$qt4_cv_dir"; then
++ if test -z "$qt4_cv_includes"; then
++ qt4_cv_includes=$qt4_cv_dir/include
++ fi
++ if test -z "$qt4_cv_libraries"; then
++ qt4_cv_libraries=$qt4_cv_dir/lib
++ fi
++ fi
++
++ dnl compute the binary dir too
++ if test -n "$qt4_cv_dir"; then
++ qt4_cv_bin=$qt4_cv_dir/bin
++ fi
++
++ dnl Preprocessor flags
++ QT4_CPPFLAGS="-DQT_NO_STL -DQT_NO_KEYWORDS"
++ case ${host} in
++ *mingw*) QT4_CPPFLAGS="-DQT_DLL $QT4_CPPFLAGS";;
++ esac
++ AC_SUBST(QT4_CPPFLAGS)
++
++ dnl Check if it possible to do a pkg-config
++ PKG_PROG_PKG_CONFIG
++ if test -n "$PKG_CONFIG" ; then
++ QT4_DO_PKG_CONFIG
++ fi
++ if test "$pkg_failed" != "no" ; then
++ QT4_DO_MANUAL_CONFIG
++ fi
++ AC_PATH_PROGS(MOC4, [moc-qt4 moc],[],$qt4_cv_bin:$PATH)
++ AC_PATH_PROGS(UIC4, [uic-qt4 uic],[],$qt4_cv_bin:$PATH)
++ AC_PATH_PROGS(RCC4, [rcc-qt4 rcc],[],$qt4_cv_bin:$PATH)
++])
++
++AC_DEFUN([QT4_DO_PKG_CONFIG],
++[
++ dnl tell pkg-config to look also in $qt4_cv_dir/lib.
++ save_PKG_CONFIG_PATH=$PKG_CONFIG_PATH
++ if test -n "$qt4_cv_dir" ; then
++ PKG_CONFIG_PATH=$qt4_cv_dir/lib:$qt4_cv_dir/lib/pkgconfig:$PKG_CONFIG_PATH
++ export PKG_CONFIG_PATH
++ fi
++ PKG_CHECK_MODULES(QT4_CORE, QtCore,,[:])
++ if test "$pkg_failed" = "no" ; then
++ QT4_CORE_INCLUDES=$QT4_CORE_CFLAGS
++ AC_SUBST(QT4_CORE_INCLUDES)
++ QT4_CORE_LDFLAGS=`$PKG_CONFIG --libs-only-L QtCore`
++ AC_SUBST(QT4_CORE_LDFLAGS)
++ QT4_CORE_LIB=`$PKG_CONFIG --libs-only-l QtCore`
++ AC_SUBST(QT4_CORE_LIB)
++ fi
++ PKG_CHECK_MODULES(QT4_FRONTEND, QtCore QtGui,,[:])
++ if test "$pkg_failed" = "no" ; then
++ QT4_INCLUDES=$QT4_FRONTEND_CFLAGS
++ dnl QT4_LDFLAGS=$QT4_FRONTEND_LIBS
++ QT4_LDFLAGS=`$PKG_CONFIG --libs-only-L QtCore QtGui`
++ AC_SUBST(QT4_INCLUDES)
++ AC_SUBST(QT4_LDFLAGS)
++ QT4_VERSION=`$PKG_CONFIG --modversion QtCore`
++ AC_SUBST(QT4_VERSION)
++ QT4_LIB=`$PKG_CONFIG --libs-only-l QtCore QtGui`
++ AC_SUBST(QT4_LIB)
++ LIBS="$LIBS `$PKG_CONFIG --libs-only-other QtCore QtGui`"
++ fi
++ PKG_CONFIG_PATH=$save_PKG_CONFIG_PATH
++])
++
++AC_DEFUN([QT4_DO_MANUAL_CONFIG],
++[
++ dnl flags for compilation
++ QT4_INCLUDES=
++ QT4_LDFLAGS=
++ QT4_CORE_INCLUDES=
++ QT4_CORE_LDFLAGS=
++ if test -n "$qt4_cv_includes"; then
++ QT4_INCLUDES="-I$qt4_cv_includes"
++ for i in Qt QtCore QtGui; do
++ QT4_INCLUDES="$QT4_INCLUDES -I$qt4_cv_includes/$i"
++ done
++ QT4_CORE_INCLUDES="-I$qt4_cv_includes -I$qt4_cv_includes/QtCore"
++ fi
++ if test -n "$qt4_cv_libraries"; then
++ QT4_LDFLAGS="-L$qt4_cv_libraries"
++ QT4_CORE_LDFLAGS="-L$qt4_cv_libraries"
++ fi
++ AC_SUBST(QT4_INCLUDES)
++ AC_SUBST(QT4_CORE_INCLUDES)
++ AC_SUBST(QT4_LDFLAGS)
++ AC_SUBST(QT4_CORE_LDFLAGS)
++
++ QT4_CHECK_COMPILE
++
++ QT4_LIB=$qt4_cv_libname;
++ AC_SUBST(QT4_LIB)
++ AC_SUBST(QT4_CORE_LIB)
++
++ if test -n "$qt4_cv_libname"; then
++ QT4_GET_VERSION
++ fi
++])