ItemOrderList::ItemOrderList(QWidget *parent) : QWidget(parent) , ui(new Ui::ItemOrderList) { ui->setupUi(this); connect(ui->pushButtonUp, &QToolButton::clicked, this, &ItemOrderList::onPushButtonUpClicked); connect(ui->pushButtonDown, &QToolButton::clicked, this, &ItemOrderList::onPushButtonDownClicked); connect(ui->pushButtonRemove, &QToolButton::clicked, this, &ItemOrderList::onPushButtonRemoveClicked); connect(ui->pushButtonAdd, &QToolButton::clicked, this, &ItemOrderList::onPushButtonAddClicked); connect(ui->listWidgetItems, &QListWidget::currentItemChanged, this, &ItemOrderList::onListWidgetItemsCurrentItemChanged); connect(ui->listWidgetItems, &QListWidget::itemSelectionChanged, this, &ItemOrderList::onListWidgetItemsItemSelectionChanged); connect(ui->listWidgetItems, &QListWidget::itemChanged, this, &ItemOrderList::onListWidgetItemsItemChanged); ui->pushButtonRemove->hide(); ui->pushButtonAdd->hide(); setFocusProxy(ui->listWidgetItems); setCurrentItemWidget(nullptr); // Make icon wider so icon tag can be bigger. const auto size = iconFontSizePixels(); ui->listWidgetItems->setIconSize( QSize(size * 3/2, size) ); }
const QFont &iconFont() { static bool init = true; static QFont font; if (init) { init = false; QFontDatabase::addApplicationFont(":/images/fontawesome-webfont.ttf"); font.setFamily("FontAwesome"); font.setPixelSize( iconFontSizePixels() ); } return font; }
ShortcutsWidget::ShortcutsWidget(QWidget *parent) : QWidget(parent) , ui(new Ui::ShortcutsWidget) { ui->setupUi(this); ui->tableWidget->setColumnCount(Columns::Count); ui->tableWidget->horizontalHeader()->setStretchLastSection(true); ui->tableWidget->horizontalHeader()->hide(); ui->tableWidget->horizontalHeader()->resizeSection(Columns::Empty, 0); ui->tableWidget->verticalHeader()->hide(); const int iconSize = iconFontSizePixels(); ui->tableWidget->setIconSize(QSize(iconSize, iconSize)); initSingleShotTimer( &m_timerCheckAmbiguous, 0, this, SLOT(checkAmbiguousShortcuts()) ); }
ShortcutsWidget::ShortcutsWidget(QWidget *parent) : QWidget(parent) , ui(new Ui::ShortcutsWidget) { ui->setupUi(this); connect(ui->lineEditFilter, &QLineEdit::textChanged, this, &ShortcutsWidget::onLineEditFilterTextChanged); ui->tableWidget->setColumnCount(Columns::Count); ui->tableWidget->horizontalHeader()->setStretchLastSection(true); ui->tableWidget->horizontalHeader()->hide(); ui->tableWidget->verticalHeader()->hide(); const int iconSize = iconFontSizePixels(); ui->tableWidget->setIconSize(QSize(iconSize, iconSize)); initSingleShotTimer( &m_timerCheckAmbiguous, 0, this, &ShortcutsWidget::checkAmbiguousShortcuts ); }
QString Theme::getMenuStyleSheet() const { const int iconSize = iconFontSizePixels(); return // Remove icon border in menus. "#MainWindow QMenu::item:selected{border:none}" "#MainWindow QMenu::item{" ";padding:0.2em 1em 0.2em 1em" ";padding-left:" + QString::number(iconSize * 2) + "px}" + "#MainWindow QMenu::icon{padding-left:" + QString::number(iconSize / 2) + "px}" // Keep default item highlighted (removing icon border resets the style). + "#MainWindow QMenu::item:default{font-weight:bold}" + "#MainWindow QMenu {" + themeStyleSheet("menu_css") + "}" + "#MainWindow QMenu::item," + "#MainWindow QMenu::separator {" + themeStyleSheet("menu_bar_css") + "}" + "#MainWindow QMenu::item:selected {" + themeStyleSheet("menu_bar_selected_css") + "}" + "#MainWindow QMenu::item:disabled {" + themeStyleSheet("menu_bar_disabled_css") + "}"; }
IconSelectDialog::IconSelectDialog(const QString &defaultIcon, QWidget *parent) : QDialog(parent) , m_iconList(new QListWidget(this)) , m_selectedIcon(defaultIcon) { setWindowTitle( tr("CopyQ Select Icon") ); m_iconList->setViewMode(QListView::IconMode); connect( m_iconList, SIGNAL(activated(QModelIndex)), this, SLOT(onIconListItemActivated(QModelIndex)) ); QFontMetrics fm( iconFont() ); const int gridSize = iconFontSizePixels() + 8; const QSize size(gridSize, gridSize); m_iconList->setFont( iconFont() ); m_iconList->setGridSize(size); m_iconList->setResizeMode(QListView::Adjust); m_iconList->setSelectionMode(QAbstractItemView::SingleSelection); m_iconList->setDragDropMode(QAbstractItemView::NoDragDrop); m_iconList->addItem( QString("") ); m_iconList->item(0)->setSizeHint(size); for (ushort i = IconFirst; i <= IconLast; ++i) { QChar c(i); if ( fm.inFont(c) ) { const QString icon(c); QListWidgetItem *item = new QListWidgetItem(icon, m_iconList); item->setSizeHint(size); if (defaultIcon == icon) m_iconList->setCurrentRow(m_iconList->count() - 1); } } QPushButton *browseButton = new QPushButton(tr("Browse..."), this); if ( m_selectedIcon.size() > 2 ) browseButton->setIcon(QIcon(m_selectedIcon)); connect( browseButton, SIGNAL(clicked()), this, SLOT(onBrowse()) ); QDialogButtonBox *buttonBox = new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this); connect( buttonBox, SIGNAL(rejected()), this, SLOT(reject()) ); connect( buttonBox, SIGNAL(accepted()), this, SLOT(onAcceptCurrent()) ); QVBoxLayout *layout = new QVBoxLayout(this); layout->addWidget(m_iconList); QHBoxLayout *buttonLayout = new QHBoxLayout; layout->addLayout(buttonLayout); buttonLayout->addWidget(browseButton); buttonLayout->addWidget(buttonBox); m_iconList->setFocus(); // Restore previous geometry. restoreWindowGeometry(this, false); }