[Scummvm-cvs-logs] SF.net SVN: scummvm:[51155] scummvm/branches/gsoc2010-testbed/engines/ testbed
sud03r at users.sourceforge.net
sud03r at users.sourceforge.net
Thu Jul 22 20:00:00 CEST 2010
Revision: 51155
http://scummvm.svn.sourceforge.net/scummvm/?rev=51155&view=rev
Author: sud03r
Date: 2010-07-22 17:59:59 +0000 (Thu, 22 Jul 2010)
Log Message:
-----------
TESTBED: added deselect capabilty in GUI, removed redundant code, testsuites now all enabled by default
Modified Paths:
--------------
scummvm/branches/gsoc2010-testbed/engines/testbed/config.cpp
scummvm/branches/gsoc2010-testbed/engines/testbed/config.h
scummvm/branches/gsoc2010-testbed/engines/testbed/testsuite.cpp
Modified: scummvm/branches/gsoc2010-testbed/engines/testbed/config.cpp
===================================================================
--- scummvm/branches/gsoc2010-testbed/engines/testbed/config.cpp 2010-07-22 17:53:32 UTC (rev 51154)
+++ scummvm/branches/gsoc2010-testbed/engines/testbed/config.cpp 2010-07-22 17:59:59 UTC (rev 51155)
@@ -29,30 +29,34 @@
TestbedOptionsDialog::TestbedOptionsDialog(Common::Array<Testsuite *> &tsList, TestbedConfigManager *tsConfMan) : GUI::Dialog("Browser") {
- _testbedConfMan = tsConfMan;
-
new GUI::StaticTextWidget(this, "Browser.Headline", "Select Testsuites to Execute");
new GUI::StaticTextWidget(this, "Browser.Path", "Use Double click to select / deselect");
// Construct a String Array
Common::Array<Testsuite *>::const_iterator iter;
+ Common::String description;
for (iter = tsList.begin(); iter != tsList.end(); iter++) {
- _testSuiteArray.push_back((*iter)->getName());
- _testSuiteDescArray.push_back((*iter)->getDescription());
- _colors.push_back(GUI::ThemeEngine::kFontColorAlternate);
+ _testSuiteArray.push_back(*iter);
+ description = (*iter)->getDescription();
+ if ((*iter)->isEnabled()) {
+ _testSuiteDescArray.push_back(description + "(selected)");
+ _colors.push_back(GUI::ThemeEngine::kFontColorNormal);
+ } else {
+ _testSuiteDescArray.push_back(description);
+ _colors.push_back(GUI::ThemeEngine::kFontColorAlternate);
+ }
}
- _testListDisplay = new TestbedListWidget(this, "Browser.List", _testSuiteDescArray);
+ _testListDisplay = new TestbedListWidget(this, "Browser.List", _testSuiteArray);
_testListDisplay->setNumberingMode(GUI::kListNumberingOff);
_testListDisplay->setList(_testSuiteDescArray, &_colors);
// This list shouldn't be editable
_testListDisplay->setEditable(false);
- new GUI::ButtonWidget(this, "Browser.Up", "Select All", kTestbedSelectAll, 0);
+ _selectButton = new GUI::ButtonWidget(this, "Browser.Up", "Deselect All", kTestbedDeselectAll, 0);
new GUI::ButtonWidget(this, "Browser.Cancel", "Continue", GUI::kCloseCmd);
- // XXX: Add more commands for this
new GUI::ButtonWidget(this, "Browser.Choose", "Exit Testbed", kTestbedQuitCmd);
}
@@ -62,56 +66,54 @@
Testsuite *ts;
switch (cmd) {
case GUI::kListItemDoubleClickedCmd:
- ts = _testbedConfMan->getTestsuiteByName(_testSuiteArray[_testListDisplay->getSelected()]);
+ ts = _testSuiteArray[_testListDisplay->getSelected()];
if (ts) {
+ if (ts->isEnabled()) {
+ ts->enable(false);
+ _testListDisplay->markAsDeselected(_testListDisplay->getSelected());
+ } else {
+ ts->enable(true);
+ _testListDisplay->markAsSelected(_testListDisplay->getSelected());
+ }
ts->enable(!ts->isEnabled());
- _testListDisplay->changeColor();
}
break;
+
case kTestbedQuitCmd:
Engine::quitGame();
close();
break;
+
+ case kTestbedDeselectAll:
+ _selectButton->setLabel("Select All");
+ _selectButton->setCmd(kTestbedSelectAll);
+ for (uint i = 0; i < _testSuiteArray.size(); i++) {
+ _testListDisplay->markAsDeselected(i);
+ ts = _testSuiteArray[i];
+ if (ts) {
+ ts->enable(false);
+ }
+ }
+ break;
+
case kTestbedSelectAll:
+ _selectButton->setLabel("Deselect All");
+ _selectButton->setCmd(kTestbedDeselectAll);
for (uint i = 0; i < _testSuiteArray.size(); i++) {
- ts = _testbedConfMan->getTestsuiteByName(_testSuiteArray[i]);
+ _testListDisplay->markAsSelected(i);
+ ts = _testSuiteArray[i];
if (ts) {
ts->enable(true);
}
}
- _testListDisplay->setColorAll(GUI::ThemeEngine::kFontColorNormal);
break;
+
default:
GUI::Dialog::handleCommand(sender, cmd, data);
+
}
}
-bool TestbedConfigManager::isEnabled(const Common::String &tsName) {
- Testsuite *ts = getTestsuiteByName(tsName);
- return ts ? ts->isEnabled() : false;
-}
-
-
-void TestbedConfigManager::enableTestsuite(const Common::String &name, bool enable) {
- Testsuite *ts = getTestsuiteByName(name);
- if (ts) {
- ts->enable(enable);
- } else {
- warning("No matches found for %s\n", name.c_str());
- }
-}
-
-Testsuite *TestbedConfigManager::getTestsuiteByName(const Common::String &name) {
- Common::Array<Testsuite *>::const_iterator iter;
-
- for (iter = _testsuiteList.begin(); iter != _testsuiteList.end(); iter++) {
- if (name.equalsIgnoreCase((*iter)->getName())) {
- return *iter;
- }
- }
- return 0;
-}
-
void TestbedConfigManager::selectTestsuites() {
Modified: scummvm/branches/gsoc2010-testbed/engines/testbed/config.h
===================================================================
--- scummvm/branches/gsoc2010-testbed/engines/testbed/config.h 2010-07-22 17:53:32 UTC (rev 51154)
+++ scummvm/branches/gsoc2010-testbed/engines/testbed/config.h 2010-07-22 17:59:59 UTC (rev 51155)
@@ -40,7 +40,8 @@
enum {
kTestbedQuitCmd = 'Quit',
- kTestbedSelectAll = 'sAll'
+ kTestbedSelectAll = 'sAll',
+ kTestbedDeselectAll = 'dAll'
};
class TestbedConfigManager {
@@ -48,46 +49,29 @@
TestbedConfigManager(Common::Array<Testsuite *> &tList) : _testsuiteList(tList) {}
~TestbedConfigManager() {}
void selectTestsuites();
- Testsuite *getTestsuiteByName(const Common::String &name);
- bool isEnabled(const Common::String &tsName);
private:
Common::Array<Testsuite *> &_testsuiteList;
- void enableTestsuite(const Common::String &name, bool enable);
void parseConfigFile() {}
};
class TestbedListWidget : public GUI::ListWidget {
public:
- TestbedListWidget(GUI::Dialog *boss, const Common::String &name, Common::StringArray &tsDescArr) : GUI::ListWidget(boss, name), _testSuiteDescArray(tsDescArr) {}
+ TestbedListWidget(GUI::Dialog *boss, const Common::String &name, Common::Array<Testsuite *> tsArray) : GUI::ListWidget(boss, name), _testSuiteArray(tsArray) {}
- void changeColor() {
- // Using Font Color Mechanism to highlight selected entries.
- // Might not be detectable with some themes
- if (_listColors.size() >= 2) {
- if (GUI::ThemeEngine::kFontColorNormal == _listColors[_selectedItem]) {
- _listColors[_selectedItem] = GUI::ThemeEngine::kFontColorAlternate;
- } else if (GUI::ThemeEngine::kFontColorAlternate == _listColors[_selectedItem]) {
- _listColors[_selectedItem] = GUI::ThemeEngine::kFontColorNormal;
- }
+ void markAsSelected(int i) {
+ if (!_list[i].contains("selected")) {
+ _list[i] += " (selected)";
}
-
- // Also append (selected) to each selected entry
- if (_list[_selectedItem].contains("selected")) {
- _list[_selectedItem] = _testSuiteDescArray[_selectedItem];
- } else {
- _list[_selectedItem] += " (selected)";
- }
+ _listColors[i] = GUI::ThemeEngine::kFontColorNormal;
draw();
}
-
- void setColorAll(GUI::ThemeEngine::FontColor color) {
- for (uint i = 0; i < _listColors.size(); i++) {
- if (!_list[i].contains("selected")) {
- _listColors[i] = color;
- _list[i] += " (selected)";
- }
+
+ void markAsDeselected(int i) {
+ if (_list[i].contains("selected")) {
+ _list[i] = _testSuiteArray[i]->getDescription();
}
- draw();;
+ _listColors[i] = GUI::ThemeEngine::kFontColorAlternate;
+ draw();
}
void setColor(uint32 indx, GUI::ThemeEngine::FontColor color) {
@@ -97,7 +81,7 @@
}
private:
- const Common::StringArray _testSuiteDescArray;
+ Common::Array<Testsuite *> _testSuiteArray;
};
class TestbedOptionsDialog : public GUI::Dialog {
@@ -108,10 +92,10 @@
private:
GUI::ListWidget::ColorList _colors;
- Common::StringArray _testSuiteArray;
+ GUI::ButtonWidget *_selectButton;
+ Common::Array<Testsuite *> _testSuiteArray;
Common::StringArray _testSuiteDescArray;
TestbedListWidget *_testListDisplay;
- TestbedConfigManager *_testbedConfMan;
};
} // End of namespace Testbed
Modified: scummvm/branches/gsoc2010-testbed/engines/testbed/testsuite.cpp
===================================================================
--- scummvm/branches/gsoc2010-testbed/engines/testbed/testsuite.cpp 2010-07-22 17:53:32 UTC (rev 51154)
+++ scummvm/branches/gsoc2010-testbed/engines/testbed/testsuite.cpp 2010-07-22 17:59:59 UTC (rev 51155)
@@ -117,8 +117,8 @@
Testsuite::Testsuite() {
_numTestsPassed = 0;
_numTestsExecuted = 0;
- // Initially all testsuites are disabled, enable them by calling enableTestSuite(name, true)
- _isTsEnabled = false;
+ // Initially all testsuites are enabled, disable them by calling enableTestSuite(name, false)
+ _isTsEnabled = true;
}
Testsuite::~Testsuite() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list