FileSystemWidget::FileSystemWidget(QWidget *parent) : QWidget(parent), ui(new Ui::FileSystemWidget) { ui->setupUi(this); m_delegate = new FileSystemItemDelegate(this); ui->listView->setItemDelegate(m_delegate); initModel(); ui->listView->setModel(m_sortModel); connect(ui->listView, SIGNAL(open(QModelIndex)),m_model, SLOT(cd(QModelIndex))); connect(ui->listView, SIGNAL(up()), m_model, SLOT(cdUp())); connect(ui->listView, SIGNAL(play(QStringList,bool,bool)), this, SLOT(play(QStringList,bool,bool))); initSearch(); ui->progressPanel->hide(); connect(ui->upButton, SIGNAL(clicked()), m_model, SLOT(cdUp())); connect(m_model, SIGNAL(upChanged(bool)),ui->upButton, SLOT(setEnabled(bool))); connect(m_model, SIGNAL(pathChanged()), this, SLOT(onPathChanged())); connect(ui->selectButton, SIGNAL(clicked()), this, SLOT(selectFolder())); connect(ui->playAllButton, SIGNAL(clicked()), this, SLOT(playAll())); connect(ui->playRootButton, SIGNAL(clicked()), this, SLOT(playRoot())); connect(ui->addAllButton, SIGNAL(clicked()), this, SLOT(addAll())); connect(ui->addRootButton, SIGNAL(clicked()), this, SLOT(addRoot())); m_scanDialog = new ScanProgressDialog(this); connect(m_scanDialog, SIGNAL(cancelled()), Player::instance()->folder(), SLOT(cancel())); connect(Player::instance()->folder(), SIGNAL(cancelled()), m_scanDialog, SLOT(onScanCancelled())); connect(Player::instance()->folder(), SIGNAL(scanPathChanged(QString)), m_scanDialog, SLOT(setScanPath(QString))); connect(Player::instance()->folder(), SIGNAL(finished(int)), m_scanDialog, SLOT(onScanFinished(int))); m_scanDialogTimer.setSingleShot(true); connect(&m_scanDialogTimer, SIGNAL(timeout()), this, SLOT(showScanDialog())); connect(Player::instance()->folder(), SIGNAL(finished(int)), &m_scanDialogTimer, SLOT(stop())); }
MediaListsManager::MediaListsManager(MainWindow* parent) : QObject(parent) { m_application = (BangarangApplication*)KApplication::kApplication(); Ui::MainWindowClass* ui = m_application->mainWindow()->ui; //Set up Audio lists view MediaListProperties audioListsProperties; audioListsProperties.lri = "medialists://audio"; m_audioListsModel = new MediaItemModel(this); m_audioListsModel->setMediaListProperties(audioListsProperties); QListView* audioLists = m_application->mainWindow()->audioListsStack()->ui->audioLists; audioLists->setModel(m_audioListsModel); connect(audioLists->selectionModel(), SIGNAL(selectionChanged(const QItemSelection, const QItemSelection)), this, SLOT(audioListsSelectionChanged(const QItemSelection, const QItemSelection))); connect(m_audioListsModel, SIGNAL(mediaListChanged()), this, SLOT(audioListsChanged())); m_audioListsModel->load(); QToolButton* audioListSelect = m_application->mainWindow()->ui->audioListSelect; connect(audioListSelect, SIGNAL(clicked()), this, SLOT(selectAudioList())); //Set up Video lists view MediaListProperties videoListsProperties; videoListsProperties.lri = "medialists://video"; m_videoListsModel = new MediaItemModel(this); m_videoListsModel->setMediaListProperties(videoListsProperties); QListView* videoLists = m_application->mainWindow()->videoListsStack()->ui->videoLists; videoLists->setModel(m_videoListsModel); connect(videoLists->selectionModel(), SIGNAL(selectionChanged(const QItemSelection, const QItemSelection)), this, SLOT(videoListsSelectionChanged(const QItemSelection, const QItemSelection))); connect(m_videoListsModel, SIGNAL(mediaListChanged()), this, SLOT(videoListsChanged())); m_videoListsModel->load(); QToolButton* videoListSelect = m_application->mainWindow()->ui->videoListSelect; connect(videoListSelect, SIGNAL(clicked()), this, SLOT(selectVideoList())); //Set up media list view m_loadingProgress = 0; MediaView* mediaView = ui->mediaView; mediaView->setMainWindow(m_application->mainWindow()); mediaView->setSourceModel(m_application->browsingModel()); connect(m_application->browsingModel(), SIGNAL(mediaListChanged()), this, SLOT(mediaListChanged())); connect(m_application->browsingModel(), SIGNAL(mediaListPropertiesChanged()), this, SLOT(mediaListPropertiesChanged())); connect(m_application->browsingModel(), SIGNAL(loading()), this, SLOT(mediaListLoading())); connect(m_application->browsingModel(), SIGNAL(loadingStateChanged(bool)), this, SLOT(mediaListLoadingStateChanged(bool))); connect(m_application->browsingModel(), SIGNAL(propertiesChanged()), this, SLOT(updateListHeader())); connect((MediaItemDelegate *)mediaView->itemDelegate(), SIGNAL(categoryActivated(QModelIndex)), this, SLOT(mediaListCategoryActivated(QModelIndex))); connect((MediaItemDelegate *)mediaView->itemDelegate(), SIGNAL(actionActivated(QModelIndex)), this, SLOT(mediaListActionActivated(QModelIndex))); connect(mediaView->selectionModel(), SIGNAL(selectionChanged(const QItemSelection, const QItemSelection)), this, SLOT(mediaSelectionChanged(const QItemSelection, const QItemSelection))); connect(ui->previous, SIGNAL(clicked()), this, SLOT(loadPreviousList())); connect(m_application->playlist()->nowPlayingModel(), SIGNAL(mediaListChanged()), this, SLOT(nowPlayingChanged())); connect(m_application->mainWindow(), SIGNAL(switchedMainWidget(MainWindow::MainWidget)), this, SLOT(defaultListLoad(MainWindow::MainWidget))); //Setup media list filter ui->mediaListFilterProxyLine->lineEdit()->setClickMessage(QString()); ui->mediaListFilterProxyLine->setProxy(ui->mediaView->filterProxyModel()); ui->mediaListFilter->setVisible(false); connect(ui->closeMediaListFilter, SIGNAL(clicked()), this, SLOT(closeMediaListFilter())); //Set up play select/all buttons connect(ui->playAll, SIGNAL(clicked()), this, SLOT(playAll())); connect(ui->playSelected, SIGNAL(clicked()), this, SLOT(playSelected())); //Setup browsing model status notifications connect(m_application->browsingModel(), SIGNAL(statusUpdated()), this, SLOT(browsingModelStatusUpdated())); //Set up search KLineEdit* searchField = m_application->mainWindow()->ui->Filter; connect(searchField, SIGNAL(returnPressed()), this, SLOT(loadSearch())); //Set up device notifier connect(DeviceManager::instance(), SIGNAL(deviceListChanged(DeviceManager::RelatedType)), this, SLOT(updateDeviceList(DeviceManager::RelatedType))); //Set default media list selection showMediaList(AudioList); }