[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdevplatform/veritas
From: Manuel Breugelmans <mbr.nxi () gmail ! com>
Date: 2008-12-13 19:45:44
Message-ID: 1229197544.546909.10515.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 896549 by mbreugel:
- add to-source toggle. this allows plugins to attach source file(s) to a testcase and jump to it
- dont use stylesheets for the progressbar
M +1 -0 CMakeLists.txt
M +1 -1 internal/overlaymanager.cpp
M +5 -0 internal/overlaytoggle.cpp
M +4 -1 internal/overlaytoggle.h
M +52 -36 internal/runnerwindow.cpp
M +17 -3 internal/runnerwindow.h
M +12 -3 internal/runnerwindow.ui
M +2 -13 internal/selectiontoggle.cpp
M +1 -2 internal/selectiontoggle.h
M +1 -1 internal/test_p.h
A internal/tosourcetoggle.cpp [License: GPL (v2+)]
A internal/tosourcetoggle.h [License: GPL (v2+)]
M +4 -16 internal/verbosetoggle.cpp
M +1 -2 internal/verbosetoggle.h
M +1 -0 itestrunner.cpp
M +16 -0 test.cpp
M +6 -0 test.h
M +10 -0 testexecutableinfo.cpp
M +4 -0 testexecutableinfo.h
M +2 -1 tests/CMakeLists.txt
M +1 -0 tests/runnerwindowtest.cpp
--- trunk/KDE/kdevplatform/veritas/CMakeLists.txt #896548:896549
@@ -29,6 +29,7 @@
internal/overlaytoggle.cpp
internal/resultswidget.cpp
internal/itestframework_p.cpp
+ internal/tosourcetoggle.cpp
internal/test_p.cpp
tests/runnertesthelper.cpp # Actual tests of concrete frameworks use these.
tests/testutils.cpp) # eg QTestRunnerTest, CppUnitRunnerTest
--- trunk/KDE/kdevplatform/veritas/internal/overlaymanager.cpp #896548:896549
@@ -105,7 +105,7 @@
Test* t = index2Test(index);
if (!m_toggle->shouldShow(t)) return;
const QRect rect = m_view->visualRect(index);
- const int x = rect.right() - m_toggle->offset();
+ const int x = rect.right() - m_toggle->offset(t);
const int y = rect.top();
m_toggle->move(QPoint(x, y));
m_toggle->show();
--- trunk/KDE/kdevplatform/veritas/internal/overlaytoggle.cpp #896548:896549
@@ -50,7 +50,12 @@
hide();
}
+QSize OverlayButton::sizeHint() const
+{
+ return QSize(16, 16);
+}
+
void OverlayButton::setVisible(bool visible)
{
QAbstractButton::setVisible(visible);
--- trunk/KDE/kdevplatform/veritas/internal/overlaytoggle.h #896548:896549
@@ -42,10 +42,13 @@
* visually invisible for at least one second after it is shown again. */
virtual void reset();
- virtual int offset() = 0;
+ /*! Distance between the icon and right border */
+ virtual int offset(Test*) = 0;
+
virtual QModelIndex index();
virtual void setIndex(const QModelIndex&);
virtual bool shouldShow(Test*) = 0;
+ virtual QSize sizeHint() const;
public slots:
void setVisible(bool visible);
--- trunk/KDE/kdevplatform/veritas/internal/runnerwindow.cpp #896548:896549
@@ -32,6 +32,7 @@
#include "selectionmanager.h"
#include "verbosetoggle.h"
#include "selectiontoggle.h"
+#include "tosourcetoggle.h"
#include "testexecutor.h"
#include <ktexteditor/cursor.h>
@@ -75,12 +76,39 @@
using Veritas::ResultsProxyModel;
using Veritas::TestExecutor;
using Veritas::Test;
+using Veritas::TestBar;
const Ui::RunnerWindow* RunnerWindow::ui() const
{
return m_ui;
}
+TestBar::TestBar(QWidget* parent) : QProgressBar(parent)
+{
+ turnGreen();
+}
+
+TestBar::~TestBar()
+{
+}
+
+void TestBar::turnGreen()
+{
+ QPalette pal = palette();
+ QBrush brush(QColor("green"));
+ pal.setBrush( QPalette::Highlight, brush );
+ setPalette(pal);
+}
+
+void TestBar::turnRed()
+{
+ QPalette pal = palette();
+ QBrush brush(QColor("red"));
+ pal.setBrush( QPalette::Highlight, brush );
+ setPalette(pal);
+}
+
+
RunnerWindow::RunnerWindow(ResultsModel* rmodel, QWidget* parent, Qt::WFlags flags)
: QWidget(parent, flags), m_executor(0), m_isRunning(false)
{
@@ -92,7 +120,6 @@
runnerView()->setUniformRowHeights(true);
connectFocusStuff();
- setGreenBar();
progressBar()->setTextVisible(false);
progressBar()->show();
addProjectMenu();
@@ -114,14 +141,20 @@
m_selection = new SelectionManager(runnerView());
SelectionToggle* selectionToggle = new SelectionToggle(runnerView()->viewport());
m_selection->setButton(selectionToggle);
+
m_verbose = new OverlayManager(runnerView());
m_verboseToggle = new VerboseToggle(runnerView()->viewport());
connect(m_verboseToggle, SIGNAL(clicked(bool)),SLOT(showVerboseTestOutput()));
m_verbose->setButton(m_verboseToggle);
+ m_toSource = new OverlayManager(runnerView());
+ m_toSourceToggle = new ToSourceToggle(runnerView()->viewport());
+ connect(m_toSourceToggle, SIGNAL(clicked(bool)), SLOT(openTestSource()));
+ m_toSource->setButton(m_toSourceToggle);
+
QPixmap refresh = KIconLoader::global()->loadIcon("view-refresh", KIconLoader::Small);
m_ui->actionReload->setIcon(refresh);
- QPixmap run = KIconLoader::global()->loadIcon("system-run", KIconLoader::Small);
+ QPixmap run = KIconLoader::global()->loadIcon("arrow-right", KIconLoader::Small);
m_ui->actionStart->setIcon(run);
QPixmap stop = KIconLoader::global()->loadIcon("window-close", KIconLoader::Small);
m_ui->actionStop->setIcon(stop);
@@ -159,6 +192,14 @@
}
}
+void RunnerWindow::openTestSource()
+{
+ const QModelIndex index = m_toSourceToggle->index();
+ if (index.isValid()) {
+ m_toSource->index2Test(index)->toSource();
+ }
+}
+
// helper for RunnerWindow(...)
void RunnerWindow::addProjectMenu()
{
@@ -178,6 +219,7 @@
KUrl projectRoot = action->data().value<KUrl>();
Q_ASSERT(m_project2action.contains(projectRoot));
m_currentProject = projectRoot;
+ emit requestReload();
}
void RunnerWindow::addProjectToPopup(IProject* proj)
@@ -332,6 +374,7 @@
prevModel->disconnect();
delete prevModel;
}
+ m_isRunning = false;
}
// helper for setModel(RunnerModel*)
@@ -407,6 +450,7 @@
enableTestSync(true);
m_verbose->makeConnections();
m_selection->makeConnections();
+ m_toSource->makeConnections();
runnerView()->resizeColumnToContents(0);
}
@@ -446,52 +490,24 @@
updateRunText();
}
-void RunnerWindow::setGreenBar() const
-{
- progressBar()->setStyleSheet(
- QString("QProgressBar {"
- "border: 1px solid grey;"
- "border-radius: 2px;"
- "text-align: center;"
- "}"
- "QProgressBar::chunk {"
- "background-color: #009700;"
- "width: 5px;"
- "}"));
-}
-
-void RunnerWindow::setRedBar() const
-{
- progressBar()->setStyleSheet(
- QString("QProgressBar {"
- "border: 1px solid grey;"
- "border-radius: 2px;"
- "text-align: center;"
- "}"
- "QProgressBar::chunk {"
- "background-color: #DF1313;"
- "width: 5px;"
- "}"));
-}
-
void RunnerWindow::displayNumErrors(int numItems) const
{
- if (numItems > 0) setRedBar();
+ if (numItems > 0) progressBar()->turnRed();
}
-QProgressBar* RunnerWindow::progressBar() const
+TestBar* RunnerWindow::progressBar() const
{
- return ui()->progressRun;
+ return static_cast<TestBar*>(ui()->progressRun);
}
void RunnerWindow::displayNumFatals(int numItems) const
{
- if (numItems > 0) setRedBar();
+ if (numItems > 0) progressBar()->turnRed();
}
void RunnerWindow::displayNumExceptions(int numItems) const
{
- if (numItems > 0) setRedBar();
+ if (numItems > 0) progressBar()->turnRed();
}
namespace
@@ -611,7 +627,7 @@
m_isRunning = true;
m_stopWatch = QTime();
- setGreenBar();
+ progressBar()->turnGreen();
displayNumCompleted(0);
m_stopWatch.start();
--- trunk/KDE/kdevplatform/veritas/internal/runnerwindow.h #896548:896549
@@ -26,6 +26,7 @@
#include <QTreeView>
#include <QList>
#include <QTime>
+#include <QProgressBar>
#include <KUrl>
#include "../veritasexport.h"
@@ -46,10 +47,12 @@
class ResultsProxyModel;
class SelectionManager;
class VerboseToggle;
+class ToSourceToggle;
class ResultsWidget;
class OverlayManager;
class TestExecutor;
class Test;
+class TestBar;
/*!
* \brief The RunnerWindow class defines the Veritas main toolwindow
@@ -99,12 +102,14 @@
Q_SIGNALS:
void runCompleted() const;
+ void requestReload() const;
public Q_SLOTS:
void showVerboseTestOutput();
void addProjectToPopup(KDevelop::IProject*);
void rmProjectFromPopup(KDevelop::IProject*);
+ void openTestSource();
private Q_SLOTS:
@@ -194,10 +199,8 @@
RunnerWindow(const RunnerWindow&);
RunnerWindow& operator=(const RunnerWindow&);
void updateRunText() const;
- void setRedBar() const;
- void setGreenBar() const;
- QProgressBar* progressBar() const;
+ TestBar* progressBar() const;
private:
Ui::RunnerWindow *m_ui; // QtDesigner main object
@@ -210,10 +213,21 @@
TestExecutor* m_executor;
mutable bool m_isRunning;
VerboseToggle* m_verboseToggle;
+ ToSourceToggle* m_toSourceToggle;
+ OverlayManager* m_toSource;
KUrl m_currentProject;
int m_numItemsCompleted;
};
+class TestBar : public QProgressBar
+{
+public:
+ TestBar(QWidget* parent);
+ virtual ~TestBar();
+ void turnGreen();
+ void turnRed();
+};
+
} // namespace
#endif // VERITAS_RUNNERWINDOW_H
--- trunk/KDE/kdevplatform/veritas/internal/runnerwindow.ui #896548:896549
@@ -5,8 +5,10 @@
<rect>
<x>0</x>
<y>0</y>
- <width>574</width>
- <height>581</height>
+ <!--<width>574</width>
+ <height>581</height> -->
+ <width>0</width>
+ <height>0</height>
</rect>
</property>
<property name="windowTitle" >
@@ -69,7 +71,7 @@
</property>
<layout class="QHBoxLayout" name="horizontalLayout_4" >
<item>
- <widget class="QProgressBar" name="progressRun" >
+ <widget class="Veritas::TestBar" name="progressRun" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
<horstretch>1</horstretch>
@@ -212,6 +214,13 @@
</action>
</widget>
<layoutdefault spacing="6" margin="6" />
+ <customwidgets>
+ <customwidget>
+ <class>Veritas::TestBar</class>
+ <extends>QProgressBar</extends>
+ <header>internal/runnerwindow.h</header>
+ </customwidget>
+ </customwidgets>
<resources>
<include location="../resources/qxrunner.qrc" />
</resources>
--- trunk/KDE/kdevplatform/veritas/internal/selectiontoggle.cpp #896548:896549
@@ -19,20 +19,15 @@
***************************************************************************/
#include "selectiontoggle.h"
+#include "veritas/test.h"
-#include <QPainter>
-#include <QPaintEvent>
-#include <QRect>
-#include <QTimer>
+#include <QEvent>
#include <QTimeLine>
#include <KDebug>
#include <KGlobalSettings>
-#include <KIcon>
#include <KIconLoader>
-#include <KIconEffect>
#include <KLocale>
-#include "veritas/test.h"
using Veritas::SelectionToggle;
using Veritas::OverlayButton;
@@ -60,12 +55,6 @@
{
}
-QSize SelectionToggle::sizeHint() const
-{
- return QSize(16, 16);
-}
-
-
bool SelectionToggle::eventFilter(QObject* obj, QEvent* event)
{
if ((obj == parent()) && (event->type() == QEvent::Leave)) {
--- trunk/KDE/kdevplatform/veritas/internal/selectiontoggle.h #896548:896549
@@ -45,9 +45,8 @@
public:
explicit SelectionToggle(QWidget* parent);
virtual ~SelectionToggle();
- virtual QSize sizeHint() const;
- virtual int offset() { return 16; }
+ virtual int offset(Test*) { return 17; }
bool shouldShow(Test*);
protected:
--- trunk/KDE/kdevplatform/veritas/internal/test_p.h #896548:896549
@@ -71,7 +71,7 @@
bool needVerboseToggle;
bool needSelectionToggle;
bool m_isRunning;
-
+ bool supportsToSource;
static const int columnCount;
};
--- trunk/KDE/kdevplatform/veritas/internal/verbosetoggle.cpp #896548:896549
@@ -19,21 +19,16 @@
***************************************************************************/
#include "verbosetoggle.h"
+#include "veritas/test.h"
-#include <QPainter>
-#include <QPaintEvent>
-#include <QRect>
-#include <QTimer>
+#include <QEvent>
#include <QTimeLine>
-
#include <KDebug>
#include <KGlobalSettings>
-#include <KIcon>
#include <KIconLoader>
-#include <KIconEffect>
#include <KLocale>
-#include "veritas/test.h"
+
using Veritas::Test;
using Veritas::VerboseToggle;
using Veritas::OverlayButton;
@@ -45,8 +40,6 @@
parent->installEventFilter(this);
resize(sizeHint());
setIconOverlay();
- connect(this, SIGNAL(toggled(bool)),
- this, SLOT(setIconOverlay()));
connect(KGlobalSettings::self(), SIGNAL(iconChanged(int)),
this, SLOT(refreshIcon()));
setToolTip(i18nc("@info:tooltip", "Verbose Output"));
@@ -56,11 +49,6 @@
{
}
-QSize VerboseToggle::sizeHint() const
-{
- return QSize(16, 16);
-}
-
bool VerboseToggle::eventFilter(QObject* obj, QEvent* event)
{
if ((obj == parent()) && (event->type() == QEvent::Leave)) {
@@ -91,7 +79,7 @@
void VerboseToggle::setIconOverlay()
{
m_icon = KIconLoader::global()->loadIcon(
- "document-open",
+ "go-next-page",
KIconLoader::NoGroup,
KIconLoader::SizeSmall);
update();
--- trunk/KDE/kdevplatform/veritas/internal/verbosetoggle.h #896548:896549
@@ -46,10 +46,9 @@
public:
explicit VerboseToggle(QWidget* parent);
virtual ~VerboseToggle();
- virtual QSize sizeHint() const;
virtual bool shouldShow(Test*);
- virtual int offset() { return 32; }
+ virtual int offset(Test*) { return 34; }
protected:
virtual bool eventFilter(QObject* obj, QEvent* event);
--- trunk/KDE/kdevplatform/veritas/itestrunner.cpp #896548:896549
@@ -167,6 +167,7 @@
connect(d->window->ui()->actionReload, SIGNAL(triggered(bool)),
this, SLOT(reload()));
+ connect(d->window, SIGNAL(requestReload()), SLOT(reload()));
reload();
return d->window;
--- trunk/KDE/kdevplatform/veritas/test.cpp #896548:896549
@@ -67,8 +67,13 @@
d->check();
d->needVerboseToggle = false;
d->needSelectionToggle = false;
+ d->supportsToSource = false;
}
+void Test::toSource() const
+{
+}
+
QString Test::name() const
{
return d->name;
@@ -77,6 +82,17 @@
void Test::kill()
{}
+bool Test::supportsToSource() const
+{
+ return d->supportsToSource;
+}
+
+void Test::setSupportsToSource(bool value)
+{
+ d->supportsToSource = value;
+}
+
+
KJob* Test::createVerboseOutputJob()
{
return 0;
--- trunk/KDE/kdevplatform/veritas/test.h #896548:896549
@@ -66,6 +66,7 @@
Q_OBJECT
Q_PROPERTY(bool verboseToggle READ needVerboseToggle WRITE setVerboseToggle)
Q_PROPERTY(bool selectionToggle READ needSelectionToggle WRITE setSelectionToggle)
+Q_PROPERTY(bool toSource READ supportsToSource WRITE setSupportsToSource)
public Q_SLOTS:
@@ -78,7 +79,12 @@
void setVerboseToggle(bool);
bool needSelectionToggle() const;
void setSelectionToggle(bool);
+ bool supportsToSource() const;
+ void setSupportsToSource(bool);
+ /*! Open sourcelocation, to be implemented by concrete tests */
+ virtual void toSource() const;
+
/*! Factory method that constructs a blank root test. Always use
* this method to construct test-tree roots. */
static Test* createRoot();
--- trunk/KDE/kdevplatform/veritas/testexecutableinfo.cpp #896548:896549
@@ -89,3 +89,13 @@
m_workingDirectory = dir;
}
+void TestExecutableInfo::setSource(const KUrl& source)
+{
+ m_source = source;
+}
+
+KUrl TestExecutableInfo::source() const
+{
+ return m_source;
+}
+
--- trunk/KDE/kdevplatform/veritas/testexecutableinfo.h #896548:896549
@@ -51,12 +51,16 @@
bool hasProperty(const QString& key) const;
QVariant property(const QString& key) const;
+ void setSource(const KUrl& url);
+ KUrl source() const;
+
private:
QString m_command;
QMap<QString, QVariant> m_properties;
QStringList m_arguments;
KUrl m_workingDirectory;
QString m_name;
+ KUrl m_source;
};
} // Veritas
--- trunk/KDE/kdevplatform/veritas/tests/CMakeLists.txt #896548:896549
@@ -1,4 +1,5 @@
set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
+include_directories(..)
macro(kdev_add_test test_EXEC)
set(test_SRCS ${ARGN})
@@ -6,7 +7,7 @@
kde4_add_unit_test(veritas-${test_EXEC} ${test_SRCS})
target_link_libraries(veritas-${test_EXEC}
${QT_QTTEST_LIBRARY}
- ${QT_QTGUI_LIBRARY}
+ ${QT_QTGUI_LIBRARY}
${KDE4_KDECORE_LIBS}
kdevplatformveritas)
endmacro(kdev_add_test)
--- trunk/KDE/kdevplatform/veritas/tests/runnerwindowtest.cpp #896548:896549
@@ -164,6 +164,7 @@
void RunnerWindowTest::startItems()
{
runAllTests();
+ window->show();
// check they got indeed executed
// the rows of items that got executed are stored
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic