The configuration pages aren't working because their individual apply()
methods are never called by:
src/gui/dialogs/ConfigureDialogBase.cpp
void
ConfigureDialogBase::slotApply()
{
for (configurationpages::iterator i = m_configurationPages.begin();
i != m_configurationPages.end(); ++i)
(*i)->apply();
}
configurationpages is:
src/gui/dialogs/ConfigureDialogBase.h
typedef std::vector<ConfigurationPage*> configurationpages;
ConfigurationPage is:
src/gui/configuration/ConfigurationPage.h
class ConfigurationPage : public QWidget
{
Q_OBJECT
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:
src/gui/dialogs/ConfigureDialog.cpp
pageWidget = addPage(GeneralConfigurationPage::iconLabel(),
GeneralConfigurationPage::title(),
il.load( GeneralConfigurationPage::iconName()) );
vlay = new QVBoxLayout(pageWidget); //, 0, spacingHint());
page = new GeneralConfigurationPage(doc, pageWidget);
vlay->addWidget(page);
//page->setPageIndex(pageIndex(pageWidget));
m_tabWidget->setCurrentIndex( m_tabWidget->indexOf(pageWidget) );
//m_configurationPages.push_back(page);
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 =
std::allocator<Rosegarden::ConfigurationPage*>]’
This is where a completely fruitless evening ends. Somebody commented all of
those out because they broke, but I don't understand why they broke, or how
to fix them, or what any of the setPageIndex crap was all about either.
One thing is certain though, and that is whether we have an Apply button or
not, this whole thing is still pretty heavily busted. The rewrite attempt
was a good try, but from here I don't think I could ever sort this out
without starting over from scratch writing a totally new implementation
without the old KDE whatever we used to depend on even factoring into the
architecture of the thing.
Of course I'd have no idea what widgets to use in so doing, so it is
definitely time for this retired truck driving tire changer to admit defeat
and find some other amusement.
Ciao.
--
D. Michael McIntyre
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel