示例#1
0
void radeon_profile::setupTrayIcon() {
    trayMenu = new QMenu(this);
    setWindowState(Qt::WindowMinimized);
    //close //
    closeApp = new QAction(trayMenu);
    closeApp->setText(tr("Quit"));
    connect(closeApp,SIGNAL(triggered()),this,SLOT(closeFromTray()));

    // standard profiles
    changeProfile = new QAction(trayMenu);
    changeProfile->setText(tr("Change standard profile"));
    connect(changeProfile,SIGNAL(triggered()),this,SLOT(on_chProfile_clicked()));

    // refresh when hidden
    refreshWhenHidden = new QAction(trayMenu);
    refreshWhenHidden->setCheckable(true);
    refreshWhenHidden->setChecked(true);
    refreshWhenHidden->setText(tr("Keep refreshing when hidden"));

    // dpm menu //
    dpmMenu = new QMenu(this);
    dpmMenu->setTitle(tr("DPM"));

    dpmSetBattery = new QAction(dpmMenu);
    dpmSetBalanced = new QAction(dpmMenu);
    dpmSetPerformance = new QAction(dpmMenu);

    dpmSetBattery->setText(tr("Battery"));
    dpmSetBattery->setIcon(QIcon(":/icon/symbols/arrow1.png"));
    dpmSetBalanced->setText(tr("Balanced"));
    dpmSetBalanced->setIcon(QIcon(":/icon/symbols/arrow2.png"));
    dpmSetPerformance->setText(tr("Performance"));
    dpmSetPerformance->setIcon(QIcon(":/icon/symbols/arrow3.png"));

    connect(dpmSetBattery,SIGNAL(triggered()),this,SLOT(on_btn_dpmBattery_clicked()));
    connect(dpmSetBalanced,SIGNAL(triggered()),this, SLOT(on_btn_dpmBalanced_clicked()));
    connect(dpmSetPerformance,SIGNAL(triggered()),this,SLOT(on_btn_dpmPerformance_clicked()));

    dpmMenu->addAction(dpmSetBattery);
    dpmMenu->addAction(dpmSetBalanced);
    dpmMenu->addAction(dpmSetPerformance);
    dpmMenu->addSeparator();
    dpmMenu->addMenu(forcePowerMenu);

    // add stuff above to menu //
    trayMenu->addAction(refreshWhenHidden);
    trayMenu->addSeparator();
    trayMenu->addAction(changeProfile);
    trayMenu->addMenu(dpmMenu);
    trayMenu->addSeparator();
    trayMenu->addAction(closeApp);

    // setup icon finally //
    QIcon appicon(":/icon/extra/radeon-profile.png");
    trayIcon = new QSystemTrayIcon(appicon,this);
    trayIcon->show();
    trayIcon->setContextMenu(trayMenu);
    connect(trayIcon,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this,SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));
}
示例#2
0
文件: main.cpp 项目: tonyju/QuickFlow
/*!
 * \brief Software entry point.
 * \param[in] argc Number of arguments.
 * \param[in] argv Arguments.
 * \return Execution status.
 */
int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  // Set application info.
  qApp->setOrganizationName("DKrepsky");
  qApp->setOrganizationDomain("dkrepsky.blogspot.com.br");
  qApp->setApplicationName("QuickFlow");
  qApp->setApplicationVersion(version);

  QSplashScreen *splash = new QSplashScreen();

  // Load splash screen if arg -nosplash is not present.
  if(!QApplication::arguments().contains("-nosplash")) {
    QPixmap pixmap(qApp->applicationDirPath() + QDir::separator() + "images" +
                   QDir::separator() + "splash.png");
    splash->setPixmap(pixmap);
    splash->show();
    splash->showMessage(QString("Version: ") + version,
                        Qt::AlignBottom | Qt::AlignRight);
    qApp->processEvents();
  }

  // Load and configure main window.
  QuickFlow w;
  QIcon appicon(qApp->applicationDirPath() + QDir::separator() + "images" +
                QDir::separator() + "appicon.png");
  qApp->setWindowIcon(appicon);
  w.setWindowIcon(appicon);

  // Show mainWindow.
  if(!QApplication::arguments().contains("-nosplash")) {
    // Close splash screen and open main windows after 2500 msec.
    QTimer::singleShot(2500, splash, SLOT(close()));
    QTimer::singleShot(2500, &w, SLOT(show()));
  } else {
    // Show it right way.
    w.show();
  }

  // Process application messages.
  return a.exec();
}