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

Reply via email to