Exemplo n.º 1
0
void SettingsTransportView::setInterfaceController()
{
    connect(boxTransports,SIGNAL(currentIndexChanged(QString)),controller,SLOT(showTransports()));
    connect(pushNew,SIGNAL(clicked()),controller,SLOT(addTransport()));
    connect(pushEdit,SIGNAL(clicked()),controller,SLOT(editTransport()));
    connect(pushDelete,SIGNAL(clicked()),controller,SLOT(deleteTransport()));
    connect(pushSave,SIGNAL(clicked()),controller,SLOT(saveTransport()));
}
Exemplo n.º 2
0
bool ContactListProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex& sourceParent) const
{
	QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent);
	if (!index.isValid())
		return false;

	ContactListItemProxy* itemProxy = static_cast<ContactListItemProxy*>(index.internalPointer());
	ContactListItem* item = itemProxy ? itemProxy->item() : 0;
	if (!item) {
		Q_ASSERT(false);
		return false;
	}

	if (item->editing()) {
		return true;
	}

	switch (ContactListModel::indexType(index)) {
	case ContactListModel::ContactType: {
		PsiContact* psiContact = dynamic_cast<PsiContact*>(item);

		if (psiContact->isHidden()) {
			return false;
		}

		if (psiContact->isSelf()) {
			return showSelf();
		}
		else if (psiContact->isAgent()) {
			return showTransports();
		}

		if (!showOffline()) {
			return psiContact->isOnline();
		}
		else {
			return true;
		}
	}
	case ContactListModel::GroupType:
		{
			ContactListGroup::SpecialType specialGroupType = static_cast<ContactListGroup::SpecialType>(index.data(ContactListModel::SpecialGroupTypeRole).toInt());
			if (specialGroupType != ContactListGroup::SpecialType_None) {
				if (specialGroupType == ContactListGroup::SpecialType_Transports)
					return showTransports();
			}

			if (!showOffline()) {
				ContactListGroup* group = dynamic_cast<ContactListGroup*>(item);
				return group->haveOnlineContacts();
			}
			else {
				return true;
			}
		}
	case ContactListModel::AccountType:
		return true;
	case ContactListModel::InvalidType:
		return true;
	default:
		Q_ASSERT(false);
	}

	return true;
}