[vlmc-devel] [PATCH] ProjectWizard: Don't fake RecentProjects when a project is supposed to be opend
yikei lu
luyikei.qmltu at gmail.com
Mon Apr 11 10:35:44 CEST 2016
Removing the loadProject() method means the project wizard will lose
the feature of opening a project. Is that ok?
2016-04-11 17:31 GMT+09:00 Hugo Beauzée-Luyssen <hugo at beauzee.fr>:
> On 04/10/2016 05:18 PM, Yikai Lu wrote:
>>
>> ---
>> src/Gui/wizard/WelcomePage.cpp | 45
>> +++++++++++++++++++-----------------------
>> src/Gui/wizard/WelcomePage.h | 1 +
>> 2 files changed, 21 insertions(+), 25 deletions(-)
>>
>> diff --git a/src/Gui/wizard/WelcomePage.cpp
>> b/src/Gui/wizard/WelcomePage.cpp
>> index 6e44cb8..dfe9fea 100644
>> --- a/src/Gui/wizard/WelcomePage.cpp
>> +++ b/src/Gui/wizard/WelcomePage.cpp
>> @@ -50,6 +50,7 @@ WelcomePage::WelcomePage( QWidget* parent )
>> this, SLOT( selectOpenRadio() ) );
>> connect( m_ui.projectsListWidget, SIGNAL(
>> itemDoubleClicked(QListWidgetItem*) ),
>> this, SLOT( projectDoubleClicked(QListWidgetItem*) ) );
>> + connect( m_ui.projectsListWidget, &QListWidget::itemSelectionChanged,
>> this, &WelcomePage::itemSelectionChanged);
>>
>> registerField( "loadProject", m_ui.projectsListWidget );
>> m_projectPath = new QString();
>> @@ -94,15 +95,13 @@ WelcomePage::validatePage()
>> {
>> if ( m_ui.openRadioButton->isChecked() )
>> {
>> - if ( m_ui.projectsListWidget->selectedItems().count() == 0 )
>> + if ( m_projectPath->isEmpty() == true )
>> {
>> QMessageBox::information( this, tr( "Sorry" ),
>> tr( "You first need to select a
>> project from "
>> "the list.\nThen click next to
>> continue..." ) );
>> return false;
>> }
>> - QList<QListWidgetItem*> selected =
>> m_ui.projectsListWidget->selectedItems();
>> - setProjectPath( selected.at( 0 )->data( FilePath ).toString() );
>> return true;
>> }
>> return true;
>> @@ -132,6 +131,7 @@ WelcomePage::loadRecentsProjects()
>> void
>> WelcomePage::loadProject()
>> {
>> + m_ui.openRadioButton->setChecked( true );
>> QString projectPath =
>> QFileDialog::getOpenFileName( nullptr, tr( "Select a project
>> file" ),
>> VLMC_GET_STRING(
>> "vlmc/WorkspaceLocation" ),
>> @@ -145,29 +145,12 @@ WelcomePage::loadProject()
>> tr("Please use an existing project
>> file."));
>> return;
>> }
>> + m_ui.projectsListWidget->clearSelection();
>> + m_ui.projectsListWidget->clearFocus();
>>
>> - // Search if the item is already in the list
>> - QListWidgetItem* item = nullptr;
>> - for ( int i = 0; i < m_ui.projectsListWidget->count(); ++i )
>> - {
>> - item = m_ui.projectsListWidget->item( i );
>> - if ( item->data( FilePath ).toString().contains( projectPath ) )
>> - break;
>> - item = nullptr;
>> - }
>> -
>> - // Item not in list, insert it temporarily
>> - if ( !item )
>> - {
>> - QFileInfo fi( projectPath );
>> - item = new QListWidgetItem( fi.fileName() );
>> - item->setData( FilePath, fi.absoluteFilePath() );
>> -
>> - m_ui.projectsListWidget->addItem( item );
>> - }
>> -
>> - item->setSelected( true );
>> - selectOpenRadio();
>> + setProjectPath( projectPath );
>> + if ( wizard() )
>> + wizard()->next();
>> }
>>
>> void
>> @@ -193,6 +176,18 @@ WelcomePage::selectOpenRadio()
>> }
>>
>> void
>> +WelcomePage::itemSelectionChanged()
>> +{
>> + if ( m_ui.projectsListWidget->selectedItems().count() == 0 )
>> + setProjectPath( "" );
>> + else
>> + {
>> + QList<QListWidgetItem*> selected =
>> m_ui.projectsListWidget->selectedItems();
>> + setProjectPath( selected.at( 0 )->data( FilePath ).toString() );
>> + }
>> +}
>> +
>> +void
>> WelcomePage::projectDoubleClicked( QListWidgetItem* item )
>> {
>> Q_UNUSED( item );
>> diff --git a/src/Gui/wizard/WelcomePage.h b/src/Gui/wizard/WelcomePage.h
>> index 470b9c3..341edcf 100644
>> --- a/src/Gui/wizard/WelcomePage.h
>> +++ b/src/Gui/wizard/WelcomePage.h
>> @@ -54,6 +54,7 @@ class WelcomePage : public QWizardPage
>> void loadRecentsProjects();
>> void projectDoubleClicked( QListWidgetItem* item );
>> void selectOpenRadio();
>> + void itemSelectionChanged();
>>
>> private:
>> Ui::WelcomePage m_ui;
>>
> I would have expected this patch to simply remove code from the
> loadProject() method, is the rest of the changes required? Or can it be
> split in a separate patch?
>
> Regards,
> _______________________________________________
> Vlmc-devel mailing list
> Vlmc-devel at videolan.org
> https://mailman.videolan.org/listinfo/vlmc-devel
More information about the Vlmc-devel
mailing list