WelcomeScreen: implemented project loading functionality
It's now possible to load projects by clicking them in one of the two lists (recent projects, recent community resources).
This commit is contained in:
@@ -25,11 +25,13 @@
|
||||
#ifndef _WELCOME_SCREEN_H
|
||||
#define _WELCOME_SCREEN_H
|
||||
|
||||
#include <QtCore/QModelIndex>
|
||||
#include <QtGui/QWidget>
|
||||
|
||||
|
||||
namespace Ui { class WelcomeScreen; }
|
||||
class QListWidgetItem;
|
||||
class RecentResourceListModel;
|
||||
|
||||
|
||||
class WelcomeScreen : public QWidget
|
||||
@@ -45,11 +47,17 @@ private slots:
|
||||
void importProject();
|
||||
void openTutorial();
|
||||
void instantMidiAction();
|
||||
void openRecentProject( const QModelIndex & );
|
||||
void openCommunityResource( const QModelIndex & );
|
||||
void openOnlineResource( QListWidgetItem * _item );
|
||||
|
||||
|
||||
private:
|
||||
void switchView();
|
||||
|
||||
Ui::WelcomeScreen * ui;
|
||||
RecentResourceListModel * m_recentProjectsModel;
|
||||
RecentResourceListModel * m_communityResourcesModel;
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#include "WelcomeScreen.h"
|
||||
#include "RecentResourceListModel.h"
|
||||
#include "MainWindow.h"
|
||||
#include "ResourceAction.h"
|
||||
#include "engine.h"
|
||||
#include "embed.h"
|
||||
|
||||
@@ -68,16 +69,24 @@ WelcomeScreen::WelcomeScreen( QWidget * _parent ) :
|
||||
this, SLOT( instantMidiAction() ) );
|
||||
|
||||
// setup recent projects list view
|
||||
RecentResourceListModel * recentProjectsModel =
|
||||
m_recentProjectsModel =
|
||||
new RecentResourceListModel( engine::workingDirResourceDB(), -1, this );
|
||||
recentProjectsModel->resourceListModel()->
|
||||
m_recentProjectsModel->resourceListModel()->
|
||||
setTypeFilter( ResourceItem::TypeProject );
|
||||
ui->recentProjectsListView->setModel( recentProjectsModel );
|
||||
ui->recentProjectsListView->setModel( m_recentProjectsModel );
|
||||
|
||||
connect( ui->recentProjectsListView,
|
||||
SIGNAL( clicked( const QModelIndex & ) ),
|
||||
this, SLOT( openRecentProject( const QModelIndex & ) ) );
|
||||
|
||||
// setup recent community resources list view
|
||||
RecentResourceListModel * recentCommunityResourcesModel =
|
||||
m_communityResourcesModel =
|
||||
new RecentResourceListModel( engine::webResourceDB(), 100, this );
|
||||
ui->communityResourcesListView->setModel( recentCommunityResourcesModel );
|
||||
ui->communityResourcesListView->setModel( m_communityResourcesModel );
|
||||
|
||||
connect( ui->communityResourcesListView,
|
||||
SIGNAL( clicked( const QModelIndex & ) ),
|
||||
this, SLOT( openCommunityResource( const QModelIndex & ) ) );
|
||||
|
||||
// setup online resources list widget
|
||||
for( int i = 0; i < ui->onlineResourcesListWidget->count(); ++i )
|
||||
@@ -103,7 +112,7 @@ WelcomeScreen::~WelcomeScreen()
|
||||
|
||||
void WelcomeScreen::createNewProject()
|
||||
{
|
||||
engine::mainWindow()->setMainWidgetVisible( true );
|
||||
switchView();
|
||||
}
|
||||
|
||||
|
||||
@@ -130,6 +139,34 @@ void WelcomeScreen::instantMidiAction()
|
||||
|
||||
|
||||
|
||||
void WelcomeScreen::openRecentProject( const QModelIndex & _idx )
|
||||
{
|
||||
switchView();
|
||||
ResourceAction( m_recentProjectsModel->item( _idx ) ).loadProject();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void WelcomeScreen::openCommunityResource( const QModelIndex & _idx )
|
||||
{
|
||||
ResourceItem * item = m_communityResourcesModel->item( _idx );
|
||||
ResourceAction action( item );
|
||||
|
||||
switch( item->type() )
|
||||
{
|
||||
case ResourceItem::TypeProject:
|
||||
switchView();
|
||||
action.loadProject();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void WelcomeScreen::openOnlineResource( QListWidgetItem * _item )
|
||||
{
|
||||
// the URL to be opened is encoded in status tip (no other
|
||||
@@ -138,5 +175,13 @@ void WelcomeScreen::openOnlineResource( QListWidgetItem * _item )
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void WelcomeScreen::switchView()
|
||||
{
|
||||
engine::mainWindow()->setMainWidgetVisible( true );
|
||||
}
|
||||
|
||||
|
||||
#include "moc_WelcomeScreen.cxx"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user