File indexing completed on 2024-04-28 17:06:04
0001 /* 0002 SPDX-FileCopyrightText: 2000 Shie Erlich <krusader@users.sourceforge.net> 0003 SPDX-FileCopyrightText: 2000 Rafi Yanai <krusader@users.sourceforge.net> 0004 SPDX-FileCopyrightText: 2004-2022 Krusader Krew <https://krusader.org> 0005 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #include "kfnkeys.h" 0010 0011 // QtWidgets 0012 #include <QGridLayout> 0013 0014 #include <KI18n/KLocalizedString> 0015 0016 #include "../Panel/listpanelactions.h" 0017 #include "../defaults.h" 0018 #include "../kractions.h" 0019 #include "../krmainwindow.h" 0020 0021 KFnKeys::KFnKeys(QWidget *parent, KrMainWindow *mainWindow) 0022 : QWidget(parent) 0023 , mainWindow(mainWindow) 0024 { 0025 buttonList << setup(mainWindow->listPanelActions()->actRenameF2, i18n("Rename")) << setup(mainWindow->listPanelActions()->actViewFileF3, i18n("View")) 0026 << setup(mainWindow->listPanelActions()->actEditFileF4, i18n("Edit")) << setup(mainWindow->listPanelActions()->actCopyF5, i18n("Copy")) 0027 << setup(mainWindow->listPanelActions()->actMoveF6, i18n("Move")) << setup(mainWindow->listPanelActions()->actNewFolderF7, i18n("Mkdir")) 0028 << setup(mainWindow->listPanelActions()->actDeleteF8, i18n("Delete")) << setup(mainWindow->listPanelActions()->actTerminalF9, i18n("Term")) 0029 << setup(mainWindow->krActions()->actF10Quit, i18n("Quit")); 0030 0031 updateShortcuts(); 0032 0033 auto *layout = new QGridLayout(this); 0034 layout->setContentsMargins(0, 0, 0, 0); 0035 layout->setSpacing(0); 0036 0037 int pos = 0; 0038 for (QPair<QPushButton *, QPair<QAction *, const QString &>> entry : qAsConst(buttonList)) { 0039 layout->addWidget(entry.first, 0, pos++); 0040 } 0041 layout->activate(); 0042 } 0043 0044 void KFnKeys::updateShortcuts() 0045 { 0046 for (ButtonEntry entry : buttonList) { 0047 entry.first->setText(entry.second.first->shortcut().toString() + ' ' + entry.second.second); 0048 } 0049 } 0050 0051 KFnKeys::ButtonEntry KFnKeys::setup(QAction *action, const QString &text) 0052 { 0053 auto *button = new QPushButton(this); 0054 button->setMinimumWidth(45); 0055 button->setToolTip(action->toolTip()); 0056 connect(button, &QPushButton::clicked, action, &QAction::trigger); 0057 return QPair<QPushButton *, QPair<QAction *, QString>>(button, QPair<QAction *, QString>(action, text)); 0058 }