StartTab::StartTab(MainWindow *mainWindow) { setBackgroundRole(QPalette::Base); setAutoFillBackground(true); QGridLayout *gridLayout = new QGridLayout(this); gridLayout->setAlignment(Qt::AlignCenter); gridLayout->setMargin(10); gridLayout->setSpacing(15); QAbstractButton *button = addShortcut(i18n("&1 Play File"), QIcon::fromTheme(QLatin1String("video-x-generic"), QIcon(":video-x-generic")), this); button->setShortcut(Qt::Key_1); button->setWhatsThis(i18n("Open dialog to play a file")); connect(button, SIGNAL(clicked()), mainWindow, SLOT(open())); gridLayout->addWidget(button, 0, 0); button = addShortcut(i18n("&2 Play Audio CD"), QIcon::fromTheme(QLatin1String("media-optical-audio"), QIcon(":media-optical-audio")), this); button->setShortcut(Qt::Key_2); button->setWhatsThis(i18n("Start playing an audio CD. It assumes that the CD is already there at the CD driver")); connect(button, SIGNAL(clicked()), mainWindow, SLOT(openAudioCd())); gridLayout->addWidget(button, 0, 1); button = addShortcut(i18n("&3 Play Video CD"), QIcon::fromTheme(QLatin1String("media-optical"), QIcon(":media-optical")), this); button->setShortcut(Qt::Key_3); button->setWhatsThis(i18n("Start playing a Video CD. It assumes that the CD is already there at the CD driver")); connect(button, SIGNAL(clicked()), mainWindow, SLOT(openVideoCd())); gridLayout->addWidget(button, 0, 2); button = addShortcut(i18n("&4 Play DVD"), QIcon::fromTheme(QLatin1String("media-optical"), QIcon(":media-optical")), this); button->setShortcut(Qt::Key_4); button->setWhatsThis(i18n("Start playing a DVD. It assumes that the DVD is already there at the DVD driver")); connect(button, SIGNAL(clicked()), mainWindow, SLOT(openDvd())); gridLayout->addWidget(button, 1, 0); #if HAVE_DVB == 1 button = addShortcut(i18n("&5 Digital TV"), QIcon::fromTheme(QLatin1String("video-television"), QIcon(":video-television")), this); button->setShortcut(Qt::Key_5); button->setWhatsThis("Open the Digital TV live view window. If the TV channels are already scanned, it will start playing the last channel"); connect(button, SIGNAL(clicked()), mainWindow, SLOT(playDvb())); gridLayout->addWidget(button, 1, 1); #endif /* HAVE_DVB == 1 */ }
void shortcuts::setStandardKeys(QWidget* widget) { if (!widget) return; // Add standard shortcuts to applicable buttons bool hasShortcut = false; QPushButton* button; // For Save button = widget->findChild<QPushButton*>("_save"); if (button) { button->setShortcut(QKeySequence::Save); button->setToolTip(button->text().remove("&") + " " + button->shortcut().toString(QKeySequence::NativeText)); hasShortcut = true; } if (!hasShortcut) // Because some screens have both { // For Post button = widget->findChild<QPushButton*>("_post"); if (button) { button->setShortcut(QKeySequence::Save); button->setToolTip(button->text().remove("&") + " " + button->shortcut().toString(QKeySequence::NativeText)); } } if (!hasShortcut) { QDialogButtonBox* bb = widget->findChild<QDialogButtonBox*>(); if (bb) { QList<QAbstractButton*> buttons = bb->buttons(); for (int i = 0; i < buttons.size(); ++i) { QAbstractButton *bbutton = buttons.at(i); QDialogButtonBox::ButtonRole btnrole = bb->buttonRole(buttons.at(i)); if (btnrole == QDialogButtonBox::AcceptRole) { bbutton->setShortcut(QKeySequence::Save); bbutton->setToolTip(bbutton->text().remove("&") + " " + bbutton->shortcut().toString(QKeySequence::NativeText)); } else if (btnrole == QDialogButtonBox::RejectRole) { bbutton->setShortcut(QKeySequence::Close); bbutton->setToolTip(bbutton->text().remove("&") + " " + bbutton->shortcut().toString(QKeySequence::NativeText)); } } } } // For Close hasShortcut = false; button = widget->findChild<QPushButton*>("_close"); if (button) { button->setShortcut(QKeySequence::Close); button->setToolTip(button->text().remove("&") + " " + button->shortcut().toString(QKeySequence::NativeText)); hasShortcut = true; } if (!hasShortcut) // Because some screens have both { // For Post button = widget->findChild<QPushButton*>("_cancel"); if (button) { button->setShortcut(QKeySequence::Close); button->setToolTip(button->text().remove("&") + " " + button->shortcut().toString(QKeySequence::NativeText)); } } // For New button = widget->findChild<QPushButton*>("_new"); if (button) { button->setShortcut(QKeySequence::New); button->setToolTip(button->text().remove("&") + " " + button->shortcut().toString(QKeySequence::NativeText)); hasShortcut = true; } // For Print button = widget->findChild<QPushButton*>("_print"); if (button) { button->setShortcut(QKeySequence::Print); button->setToolTip(button->text().remove("&") + " " + button->shortcut().toString(QKeySequence::NativeText)); hasShortcut = true; } // For Query button = widget->findChild<QPushButton*>("_query"); if (button) { button->setShortcut(QKeySequence::Refresh); button->setToolTip(button->text().remove("&") + " " + button->shortcut().toString(QKeySequence::NativeText)); hasShortcut = true; } // Page up/down for tab widgets QTabWidget* tab = widget->findChild<QTabWidget*>(); if (tab) { TabWidgetNavigtor* tabNav = new TabWidgetNavigtor(tab, widget); QAction* pagedownAct = new QAction(tab); pagedownAct->setShortcut(QKeySequence::MoveToNextPage); pagedownAct->connect(pagedownAct, SIGNAL(triggered()), tabNav, SLOT(pageDown())); tab->addAction(pagedownAct); QAction* pageupAct = new QAction(tab); pageupAct->setShortcut(QKeySequence::MoveToPreviousPage); pageupAct->connect(pageupAct, SIGNAL(triggered()), tabNav, SLOT(pageUp())); tab->addAction(pageupAct); } }
int showMessageBox( QWidget* parent, const QString& strMessage, const QString& strTitle, QMessageBox::Icon icon, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defButton ) { QString strLog = strMessage; strLog.replace( "\r", " " ); strLog.replace( "\n", " " ); LOG_I( strLog ); QString strStyle = "QWidget {" "background-color: rgb(225, 225, 225);" "}" "QPushButton {" "border: 1px solid #8f8f91;" "border-radius: 6px;" "background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f6f7fa, stop: 1 #dadbde);" "min-width: 80px;" "}" "QPushButton:pressed {" "background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #dadbde, stop: 1 #f6f7fa);" "}" "QPushButton:flat {" "border: none;" "}" "QPushButton:focus {" "outline: none;" "}" "QPushButton:default {" "border-color: rgb(90, 129, 129);" "}"; s_bShowMessageBox = true; QMessageBox msgBox(icon, strTitle, strMessage, buttons, parent); msgBox.setDefaultButton(defButton); //msgBox.setStyleSheet(strStyle); msgBox.setWindowModality( Qt::WindowModal ); msgBox.setModal( true ); #define MAIN "MAIN" QLangRes& res = QLangManager::getResource(); msgBox.setButtonText(QMessageBox::Ok, res.getResString("MESSAGEBOX", "BTN_CAPTION_OK")); msgBox.setButtonText(QMessageBox::Cancel, res.getResString("MESSAGEBOX", "BTN_CAPTION_CANCEL")); msgBox.setButtonText(QMessageBox::Yes, res.getResString("MESSAGEBOX", "BTN_CAPTION_YES")); msgBox.setButtonText(QMessageBox::No, res.getResString("MESSAGEBOX", "BTN_CAPTION_NO")); QAbstractButton* pBtn = msgBox.button(QMessageBox::Yes); if( pBtn ) pBtn->setShortcut( QKeySequence(Qt::Key_Y) ); pBtn = msgBox.button(QMessageBox::No); if( pBtn ) pBtn->setShortcut( QKeySequence(Qt::Key_N) ); QFont fnt(msgBox.font()); fnt.setPointSize(fnt.pointSize()+1); msgBox.setFont(fnt); s_pShowedMessageBox = &msgBox; int nRet = msgBox.exec(); s_pShowedMessageBox = NULL; s_bShowMessageBox = false; switch (nRet) { case QMessageBox::Yes: LOG_B( "Yes" ); break; case QMessageBox::No: LOG_B( "No" ); break; case QMessageBox::Ok: LOG_B( "OK" ); break; case QMessageBox::Cancel: LOG_B( "Cancel" ); break; } return nRet; }