File indexing completed on 2024-05-19 05:55:46

0001 /*
0002     SPDX-FileCopyrightText: 2013 Valentin Rusu <kde@rusu.info>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "connectedapplicationstable.h"
0008 #include "disconnectappbutton.h"
0009 #include "connectedappmodel.h"
0010 
0011 #include <KLocalizedString>
0012 #include <QPushButton>
0013 
0014 ConnectedApplicationsTable::ConnectedApplicationsTable(QWidget *parent):
0015     QTableView(parent)
0016 {
0017 }
0018 
0019 void ConnectedApplicationsTable::setWallet(KWallet::Wallet *wallet)
0020 {
0021     _wallet = wallet;
0022 }
0023 
0024 void ConnectedApplicationsTable::setModel(QAbstractItemModel *model)
0025 {
0026     Q_ASSERT(_wallet != nullptr);
0027 
0028     auto appModel = qobject_cast<ConnectedAppModel *>(model);
0029     Q_ASSERT(appModel != nullptr);
0030 
0031     QTableView::setModel(model);
0032     const int numberRow(model->rowCount());
0033     for (int row = 0; row < numberRow; row++) {
0034         auto btn = new DisconnectAppButton(model->index(row, 0).data().toString(), _wallet);
0035         btn->setFixedHeight(btn->sizeHint().height());
0036         setRowHeight(row, btn->height());
0037         setIndexWidget(model->index(row, 1), btn);
0038         connect(btn, &DisconnectAppButton::appDisconnected, appModel, &ConnectedAppModel::removeApp);
0039     }
0040 }
0041 
0042 void ConnectedApplicationsTable::resizeEvent(QResizeEvent *resizeEvent)
0043 {
0044     // this will keep disconnect buttons column at it's minimum size and
0045     // make the application names take the reminder of the horizontal space
0046     resizeColumnsToContents();
0047     const int appColumnSize = contentsRect().width() - columnWidth(1) - 50;
0048     setColumnWidth(0, appColumnSize);
0049     QAbstractItemView::resizeEvent(resizeEvent);
0050 }
0051 
0052 #include "moc_connectedapplicationstable.cpp"