IssuesWidget::IssuesWidget(QWidget *parent) : QWidget(parent) , _ui(new Ui::IssuesWidget) { _ui->setupUi(this); connect(ProgressDispatcher::instance(), &ProgressDispatcher::progressInfo, this, &IssuesWidget::slotProgressInfo); connect(ProgressDispatcher::instance(), &ProgressDispatcher::itemCompleted, this, &IssuesWidget::slotItemCompleted); connect(ProgressDispatcher::instance(), &ProgressDispatcher::syncError, this, &IssuesWidget::addError); connect(_ui->_treeWidget, &QTreeWidget::itemActivated, this, &IssuesWidget::slotOpenFile); connect(_ui->copyIssuesButton, &QAbstractButton::clicked, this, &IssuesWidget::copyToClipboard); _ui->_treeWidget->setContextMenuPolicy(Qt::CustomContextMenu); connect(_ui->_treeWidget, &QTreeWidget::customContextMenuRequested, this, &IssuesWidget::slotItemContextMenu); connect(_ui->showIgnores, &QAbstractButton::toggled, this, &IssuesWidget::slotRefreshIssues); connect(_ui->showWarnings, &QAbstractButton::toggled, this, &IssuesWidget::slotRefreshIssues); connect(_ui->filterAccount, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &IssuesWidget::slotRefreshIssues); connect(_ui->filterAccount, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &IssuesWidget::slotUpdateFolderFilters); connect(_ui->filterFolder, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &IssuesWidget::slotRefreshIssues); for (auto account : AccountManager::instance()->accounts()) { slotAccountAdded(account.data()); } connect(AccountManager::instance(), &AccountManager::accountAdded, this, &IssuesWidget::slotAccountAdded); connect(AccountManager::instance(), &AccountManager::accountRemoved, this, &IssuesWidget::slotAccountRemoved); connect(FolderMan::instance(), &FolderMan::folderListChanged, this, &IssuesWidget::slotUpdateFolderFilters); // Adjust copyToClipboard() when making changes here! QStringList header; header << tr("Time"); header << tr("File"); header << tr("Folder"); header << tr("Issue"); int timestampColumnExtra = 0; #ifdef Q_OS_WIN timestampColumnExtra = 20; // font metrics are broken on Windows, see #4721 #endif _ui->_treeWidget->setHeaderLabels(header); int timestampColumnWidth = ActivityItemDelegate::rowHeight() // icon + _ui->_treeWidget->fontMetrics().width(ProtocolItem::timeString(QDateTime::currentDateTime())) + timestampColumnExtra; _ui->_treeWidget->setColumnWidth(0, timestampColumnWidth); _ui->_treeWidget->setColumnWidth(1, 180); _ui->_treeWidget->setColumnCount(4); _ui->_treeWidget->setRootIsDecorated(false); _ui->_treeWidget->setTextElideMode(Qt::ElideMiddle); _ui->_treeWidget->header()->setObjectName("ActivityErrorListHeader"); #if defined(Q_OS_MAC) _ui->_treeWidget->setMinimumWidth(400); #endif _reenableSorting.setInterval(5000); connect(&_reenableSorting, &QTimer::timeout, this, [this]() { _ui->_treeWidget->setSortingEnabled(true); }); _ui->_tooManyIssuesWarning->hide(); connect(this, &IssuesWidget::issueCountUpdated, this, [this](int count) { _ui->_tooManyIssuesWarning->setVisible(count >= maxIssueCount); }); }
AccountStateManager::AccountStateManager() : _accountState(0) { connect(AccountManager::instance(), SIGNAL(accountAdded(AccountPtr)), SLOT(slotAccountAdded(AccountPtr))); }