void MainWindow::initGUI() { QWidget *centralWidget = new QWidget(this); QVBoxLayout *centralLayout = new QVBoxLayout(centralWidget); centralLayout->setSpacing(0); centralLayout->setMargin(0); m_stack = new QStackedWidget(centralWidget); m_stack->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Expanding); centralLayout->addWidget(m_stack); setCentralWidget(centralWidget); m_managerWidget = new ManagerWidget(m_stack); connect(this, SIGNAL(backendReady(QApt::Backend*)), m_managerWidget, SLOT(setBackend(QApt::Backend*))); connect(m_managerWidget, SIGNAL(packageChanged()), this, SLOT(setActionsEnabled())); m_mainWidget = new QSplitter(this); m_mainWidget->setOrientation(Qt::Horizontal); connect(m_mainWidget, SIGNAL(splitterMoved(int,int)), this, SLOT(saveSplitterSizes())); m_transWidget = new TransactionWidget(this); m_filterBox = new FilterWidget(m_stack); connect(this, SIGNAL(backendReady(QApt::Backend*)), m_filterBox, SLOT(setBackend(QApt::Backend*))); connect(m_filterBox, SIGNAL(filterByGroup(QString)), m_managerWidget, SLOT(filterByGroup(QString))); connect(m_filterBox, SIGNAL(filterByStatus(QApt::Package::State)), m_managerWidget, SLOT(filterByStatus(QApt::Package::State))); connect(m_filterBox, SIGNAL(filterByOrigin(QString)), m_managerWidget, SLOT(filterByOrigin(QString))); connect(m_filterBox, SIGNAL(filterByArchitecture(QString)), m_managerWidget, SLOT(filterByArchitecture(QString))); m_mainWidget->addWidget(m_filterBox); m_mainWidget->addWidget(m_managerWidget); loadSplitterSizes(); m_stack->addWidget(m_transWidget); m_stack->addWidget(m_mainWidget); m_stack->setCurrentWidget(m_mainWidget); m_backend = new QApt::Backend(this); QApt::FrontendCaps caps = (QApt::FrontendCaps)(QApt::DebconfCap | QApt::MediumPromptCap | QApt::ConfigPromptCap | QApt::UntrustedPromptCap); m_backend->setFrontendCaps(caps); QAptActions* actions = QAptActions::self(); actions->setMainWindow(this); connect(actions, SIGNAL(changesReverted()), this, SLOT(revertChanges())); setupActions(); m_statusWidget = new StatusWidget(centralWidget); connect(this, SIGNAL(backendReady(QApt::Backend*)), m_statusWidget, SLOT(setBackend(QApt::Backend*))); centralLayout->addWidget(m_statusWidget); }
bool QgsPluginSortFilterProxyModel::filterAcceptsRow( int sourceRow, const QModelIndex &sourceParent ) const { QModelIndex inx = sourceModel()->index( sourceRow, 0, sourceParent ); if ( ! sourceModel()->data( inx, SPACER_ROLE ).toString().isEmpty() ) { // it's a status spacer. // TODO: the condition below is only suitable for status spacers return ( filterByStatus( inx ) && mAcceptedStatuses.count() > 2 && sourceModel()->data( inx, SPACER_ROLE ).toString() == mAcceptedSpacers ); } return ( filterByStatus( inx ) && filterByPhrase( inx ) ); }
int QgsPluginSortFilterProxyModel::countWithCurrentStatus() { int result = 0; for ( int i = 0; i < sourceModel()->rowCount(); ++i ) { QModelIndex idx = sourceModel()->index( i, 0 ); if ( filterByStatus( idx ) && sourceModel()->data( idx, SPACER_ROLE ).toString().isEmpty() ) { result++; } } return result; }
int QgsPluginSortFilterProxyModel::countWithCurrentStatus( ) { int result = 0; for ( int i = 0; i < sourceModel()->rowCount(); ++i ) { QModelIndex idx = sourceModel()->index( i, 0 ); if ( filterByStatus( idx ) ) { result++ ; } } return result; }