~ubuntu-branches/ubuntu/vivid/muon/vivid-proposed

« back to all changes in this revision

Viewing changes to installer/AvailableView.cpp

  • Committer: Package Import Robot
  • Author(s): Scarlett Clark
  • Date: 2015-03-24 07:36:31 UTC
  • mto: This revision was merged to the branch mainline in revision 86.
  • Revision ID: package-import@ubuntu.com-20150324073631-7nmay5episnfkdlt
Tags: upstream-5.2.2
Import upstream version 5.2.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/***************************************************************************
2
 
 *   Copyright © 2010-2011 Jonathan Thomas <echidnaman@kubuntu.org>        *
3
 
 *                                                                         *
4
 
 *   This program is free software; you can redistribute it and/or         *
5
 
 *   modify it under the terms of the GNU General Public License as        *
6
 
 *   published by the Free Software Foundation; either version 2 of        *
7
 
 *   the License or (at your option) version 3 or any later version        *
8
 
 *   accepted by the membership of KDE e.V. (or its successor approved     *
9
 
 *   by the membership of KDE e.V.), which shall act as a proxy            *
10
 
 *   defined in Section 14 of version 3 of the license.                    *
11
 
 *                                                                         *
12
 
 *   This program is distributed in the hope that it will be useful,       *
13
 
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
14
 
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
15
 
 *   GNU General Public License for more details.                          *
16
 
 *                                                                         *
17
 
 *   You should have received a copy of the GNU General Public License     *
18
 
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
19
 
 ***************************************************************************/
20
 
 
21
 
#include "AvailableView.h"
22
 
 
23
 
// Qt includes
24
 
#include <QtWidgets/QStackedWidget>
25
 
 
26
 
// KDE includes
27
 
#include <KCategorizedSortFilterProxyModel>
28
 
#include <KLocalizedString>
29
 
 
30
 
// Own includes
31
 
#include <Category/Category.h>
32
 
#include <resources/ResourcesModel.h>
33
 
#include "BreadcrumbWidget/BreadcrumbWidget.h"
34
 
#include "CategoryView/CategoryViewWidget.h"
35
 
#include "ResourceDetailsView/ResourceDetailsView.h"
36
 
 
37
 
AvailableView::AvailableView(QWidget *parent)
38
 
        : AbstractViewContainer(parent)
39
 
{
40
 
 
41
 
    m_categoryViewWidget = new CategoryViewWidget(m_viewStack);
42
 
 
43
 
    m_categoryViewWidget->setDisplayedCategory(nullptr);
44
 
    m_breadcrumbWidget->setRootItem(m_categoryViewWidget->breadcrumbItem());
45
 
 
46
 
    m_viewStack->addWidget(m_categoryViewWidget);
47
 
    m_viewStack->setCurrentWidget(m_categoryViewWidget);
48
 
 
49
 
    ResourcesModel *resourcesModel = ResourcesModel::global();
50
 
    connect(resourcesModel, SIGNAL(searchInvalidated()),
51
 
            m_breadcrumbWidget, SLOT(startSearch()));
52
 
    connect(m_categoryViewWidget, SIGNAL(registerNewSubView(AbstractViewBase*)),
53
 
            this, SLOT(registerNewSubView(AbstractViewBase*)));
54
 
    connect(m_categoryViewWidget, SIGNAL(switchToSubView(AbstractViewBase*)),
55
 
            this, SLOT(switchToSubView(AbstractViewBase*)));
56
 
}
57
 
 
58
 
void AvailableView::setResource(AbstractResource *res)
59
 
{
60
 
    // Check to see if a view for this app already exists
61
 
    if (m_currentPair.second == res) {
62
 
        QMetaObject::invokeMethod(this, "switchToSubView", Q_ARG(AbstractViewBase*, m_currentPair.first));
63
 
        return;
64
 
    }
65
 
 
66
 
    // Create one if not
67
 
    m_detailsView = new ResourceDetailsView(this);
68
 
    m_detailsView->setResource(res);
69
 
    m_currentPair.first = m_detailsView;
70
 
 
71
 
    connect(m_detailsView, SIGNAL(destroyed(QObject*)),
72
 
            this, SLOT(onSubViewDestroyed()));
73
 
 
74
 
    // Tell our parent that we can exist, so that they can forward it
75
 
    QMetaObject::invokeMethod(this, "registerNewSubView", Q_ARG(AbstractViewBase*, m_detailsView));
76
 
}