Ignore:
Timestamp:
02/12/14 03:12:36 (7 months ago)
Author:
yurkis <yurkis@…>
Branches:
master, releng/10.0.1, releng/10.0.2, releng/10.0.3
Children:
7588e04
Parents:
ffbf59c
Message:

Control panel - separate button for launch DE related config application

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src-qt4/pc-controlpanel/mainwnd.cpp

    rffbf59c r1c61936  
    2525#include <QDebug> 
    2626#include <QToolTip> 
     27#include <QPainter> 
     28 
    2729#include "mainwnd.h" 
    2830#include "ui_mainwnd.h" 
     
    4547#define PBI_INSTALLED_DIRECTORY "/var/db/pbi/installed" 
    4648 
     49#define DE_CONFIG_APP_MARK ":/images/images/config.png" 
     50 
    4751static QString DETEXT; 
    4852 
     
    7175    setupDEChooser(); 
    7276    fillGroups(); 
     77 
     78    refreshDEConfigureApp(); 
    7379 
    7480    QPalette tP; 
     
    100106void MainWnd::setupGroups() 
    101107{ 
    102  
    103     //qDebug() << "Running setup groups"; 
    104108    setupGroup(&SoftwareList, ui->SoftwareGBox); 
    105109    setupGroup(&SystemList, ui->SystemGBox); 
     
    117121        layout->addWidget(*List); 
    118122        Parrent->setLayout(layout);  
    119         //qDebug() << "SetupGroup"; 
    120123    QObject::connect(*List, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(on_itemActivated(QListWidgetItem*))); 
    121124} 
     
    124127void MainWnd::fillGroups() 
    125128{ 
    126         //qDebug() << "Running fillGroups"; 
    127129    mRefreshMutex.lock(); 
    128130 
     
    178180          DEList->update(); 
    179181          NetworkingList->update(); 
    180           //qDebug() << NetworkingList->sizeHintForRow(0); 
    181           //qDebug() << NetworkingList->sizeHintForColumn(0); 
    182182    } 
    183183 
     
    280280#undef SETUP_ACTION 
    281281 
    282         if (!InstalledDEList.active()) 
     282    if (!InstalledDEList.active()) 
    283283        { 
    284                 qDebug() << "Unsupported DE"; 
    285284                ui->actionUnsupported->setText(Unsupported + Current); 
    286285                ui->DEChooserButton->setIcon(ui->actionUnsupported->icon()); 
    287286                ui->actionUnsupported->setVisible(true); 
    288         }else{ 
    289                 qDebug() << "Supported DE"; 
    290                 ui->actionUnsupported->setVisible(false); 
     287    }else{ 
     288        ui->actionUnsupported->setVisible(false); 
    291289        } 
    292290 
    293         ui->DEChooserButton->setVisible(InstalledDEList.size()>1); 
     291    ui->DEChooserButton->setVisible(InstalledDEList.size()>1); 
    294292 
    295293} 
     
    328326    misDisplayDEName = false; 
    329327 
     328 
    330329    //refresh 
    331330    on_toolButton_2_clicked(); 
     
    447446        misDisplayDEName = false; 
    448447        //refresh 
    449         on_toolButton_2_clicked(); 
     448        on_toolButton_2_clicked();     
    450449} 
    451450 
     
    499498   return false; 
    500499} 
     500 
     501/////////////////////////////////////////////////////////////////////////////// 
     502void MainWnd::refreshDEConfigureApp() 
     503{ 
     504    //ui->deLaunchConfigApp->setIcon( ui->DEChooserButton->icon() ); 
     505    if (mvEnabledDE.size() != 1) 
     506    { 
     507        ui->deLaunchConfigApp->setVisible(false); 
     508        return; 
     509    } 
     510 
     511    pcbsd::DesktopEnvironmentInfo* de = InstalledDEList.byName(mvEnabledDE[0]); 
     512    if (!de) 
     513    { 
     514        ui->deLaunchConfigApp->setVisible(false); 
     515        return; 
     516    } 
     517 
     518 
     519 
     520    if (!de->ConfigurationApplication.length()) 
     521    { 
     522        ui->deLaunchConfigApp->setVisible(false); 
     523        return; 
     524    } 
     525 
     526    //make icon 
     527    QPixmap orig(ui->deLaunchConfigApp->iconSize()); 
     528 
     529    int sx = ui->deLaunchConfigApp->iconSize().width(); 
     530    int sy = ui->deLaunchConfigApp->iconSize().height(); 
     531 
     532    QPixmap pix; 
     533    orig.fill(Qt::transparent); 
     534    QPainter painter(&orig); 
     535    painter.drawPixmap(0, 0, sx, sy, ui->DEChooserButton->icon().pixmap(sx, sy)); 
     536    pix.load(DE_CONFIG_APP_MARK); 
     537    painter.drawPixmap(orig.width() - pix.width(), orig.height() - pix.height() , pix); 
     538    ui->deLaunchConfigApp->setIcon(QIcon(orig)); 
     539 
     540    ui->deLaunchConfigApp->setVisible(true); 
     541} 
     542 
     543/////////////////////////////////////////////////////////////////////////////// 
     544void MainWnd::on_DEChooserButton_triggered(QAction *arg1) 
     545{ 
     546    Q_UNUSED(arg1); 
     547    refreshDEConfigureApp(); 
     548} 
     549 
     550/////////////////////////////////////////////////////////////////////////////// 
     551void MainWnd::on_deLaunchConfigApp_clicked() 
     552{ 
     553    if (mvEnabledDE.size() != 1) 
     554    { 
     555        ui->deLaunchConfigApp->setVisible(false); 
     556        return; 
     557    } 
     558 
     559    pcbsd::DesktopEnvironmentInfo* de = InstalledDEList.byName(mvEnabledDE[0]); 
     560    if (!de) 
     561    { 
     562        return; 
     563    } 
     564 
     565    if (!de->ConfigurationApplication.length()) 
     566    { 
     567        return; 
     568    } 
     569 
     570    QProcess process; 
     571 
     572    //TODO: smarter args parsing (including quotes) 
     573    QStringList proc_args = de->ConfigurationApplication.split(" ",QString::SkipEmptyParts); 
     574 
     575    QString proc = proc_args[0]; 
     576    proc_args.pop_front(); 
     577    process.startDetached(proc, proc_args); 
     578} 
Note: See TracChangeset for help on using the changeset viewer.