Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
dev:help_with_config_page [2009/02/12 22:53]
127.0.0.1 external edit
dev:help_with_config_page [2009/03/08 04:12]
michael removed
Line 1: Line 1:
-This is the heart of the whole thing, and until we solve this, everything else is completely irrelevant. ​ I have a decent roadmap to follow rearranging the GUI, thanks to Luis Garrido, but it seems completely pointless to me to fix the GUI while the whole configuration dialog itself remains broken.  ​One way or another, this problem needs to be solved up front. +Chris Fryer fixed it.  ​W00T!
- +
-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: +
-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*>​]’ +
- +
-======  +
-m_configurationPages is a std::​vector<​ConfigurationPage*>​ +
- +
-and page is used as a pointer to GeneralConfigurationPage,​ MIDIConfigurationPage,​ etc... which are TabbedConfigurationPage  +
- +
-and TabbedConfigurationPage is a ConfigurationPage. +
- +
-So replacing the new declaration +
-    QWidget* page = 0; +
-with the old one +
-    ConfigurationPage* page = 0; +
-should fix the issue. +
- +
-That said, at first glance, I don't think  +
-    page->​setPageIndex(pageIndex(pageWidget));​ +
-will compile as pageIndex() doesn'​t seem to be a member of ConfigureDialog. +
- +
-(--yg) ====== +
- +
- +
- +
- +
-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.+
 
 
dev/help_with_config_page.txt · Last modified: 2018/02/07 17:07 (external edit)
Recent changes RSS feed Creative Commons License Valid XHTML 1.0 Valid CSS Driven by DokuWiki