From: D. Michael McIntyre <rosegarden.trumpeter@gm...> - 2009-01-24 23:11:01
I thought I'd send this again, in case it got lost in all the other noise I
was making about this dialog. This is the heart of the whole thing, and
until we solve this, everything else is completely irrelevant.
I'm completely stuck, and have no idea how to make further progress from here.
The configuration pages aren't working because their individual apply()
methods are never called by:
for (configurationpages::iterator i = m_configurationPages.begin();
i != m_configurationPages.end(); ++i)
typedef std::vector<ConfigurationPage*> configurationpages;
class ConfigurationPage : public QWidget
So the std::vector is supposed to contain a list of pointers to
ConfigurationPage objects, and this code in slotApply() is supposed to
iterate through that list and call each object's apply() method.
The list is empty, because all the code is broken with comments:
pageWidget = addPage(GeneralConfigurationPage::iconLabel(),
il.load( GeneralConfigurationPage::iconName()) );
vlay = new QVBoxLayout(pageWidget); //, 0, spacingHint());
page = new GeneralConfigurationPage(doc, pageWidget);
m_tabWidget->setCurrentIndex( m_tabWidget->indexOf(pageWidget) );
I'm not sure what page->setPageIndex(blah); used to do, but the new
m_tabWidget->setCurrentIndex(blah) only serves to make sure the configuration
dialog always opens on the Notation tab, as far as I can tell. No matter. I
only mention that in passing.
The real problem is the m_configurationPages.push_back(page) has been
commented out, because it fails with:
src/gui/dialogs/ConfigureDialog.cpp:75: error: invalid conversion
from ‘QWidget*’ to ‘Rosegarden::ConfigurationPage*’
src/gui/dialogs/ConfigureDialog.cpp:75: error: initializing argument 1
of ‘void std::vector<_Tp, _Alloc>::push_back(const _Tp&) [with _Tp =
Rosegarden::ConfigurationPage*, _Alloc =
This is where a completely fruitless evening ends. I can make no further
progress until someone who understands this problem explains what I have to
do to fix it.
D. Michael McIntyre