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"