Exemplo n.º 1
0
void KMimeTypeTest::testIcons()
{
    checkIcon( KUrl( "file:/tmp/" ), "inode-directory" );

    if ( !KUser().isSuperUser() ) // Can't test this one if running as root
    {
        QString emptyString; // gcc-3.3 workaround
        KTempDir tmp( emptyString, 0 );
        tmp.setAutoRemove( true );
        KUrl url( tmp.name() );
        checkIcon( url, "inode-directory" ); // was folder_locked, but we don't have that anymore - TODO
        KDE::chmod( tmp.name(), 0500 ); // so we can 'rm -rf' it
    }
}
Exemplo n.º 2
0
void MainUI::formatInstalledItemDisplay(QTreeWidgetItem *item){
  //simplification function for filling the tree widget item with the appropriate information about the PBI
  QString ID = item->whatsThis(0);
  NGApp app = PBI->singleAppInfo(ID, VISJAIL);
  //qDebug() << "Item:" << ID << app.origin << app.name << item->text(0);
  if(app.origin.isEmpty()){ item->setWhatsThis(0,""); qDebug() << "Invalid Item:" << ID; return; } //invalid item
    //Fill the item columns [name, version, status, size, date, arch]
      if(app.name.isEmpty()){ item->setText(0, app.origin.section("/",-1)); }
      else{ item->setText(0,app.name); }
      item->setText(1,app.installedversion);
      item->setText(2, PBI->currentAppStatus(ID, VISJAIL));
      item->setText(3, app.installedsize);
      item->setText(4, app.installedwhen);
      item->setText(5, app.installedarch);
      //Application Icon
      QString icon = checkIcon(app.icon, app.type);
        item->setIcon(0,QIcon(icon) );
      //Application Lock status
      icon.clear();
        if(app.isLocked){ icon = ":/icons/lock.png"; }
        item->setIcon(1,QIcon(icon) );
      //Set the application install status
      QColor col(0,0,0,0); //completely transparent
      if(app.isOrphan){ col = QColor(255,250,205,190); } // yellow
      if(!PBI->safeToRemove( app.origin )){ col = QColor(255,10,10,20); } //mostly-transparent red
	item->setBackground(0,QBrush(col));
	
      item->setCheckState(0,Qt::Unchecked);

}
Exemplo n.º 3
0
void WebView::titleChanged(const QString& title)
{

    UWKMessage msg;
    msg.browserID = id_;
    msg.type = UMSG_VIEW_TITLECHANGED;

    UWKMessageQueue::SetString(msg, 0, title.toUtf8().constData());

    UWKMessageQueue::Write(msg);

    checkIcon();

}
Exemplo n.º 4
0
void MainUI::slotUpdateBrowserHome(){
  //Load the Recommendations
  ui->group_br_recommend->setVisible( fillVerticalAppArea(ui->scroll_br_home_rec, PBI->getRecommendedApps(), false) );
  //Load the application spotlight
  ui->group_br_home_spotlight->setVisible( fillVerticalAppArea(ui->scroll_br_home_spot, PBI->getHighlightedApps(), false) );
  //Load the newest applications
  clearScrollArea(ui->scroll_br_home_newapps);
  QHBoxLayout *newapplayout = new QHBoxLayout;
  QStringList newapps = PBI->getNewApps();
  QList<NGApp> apps = PBI->AppInfo(newapps);
  for(int i=0; i<apps.length(); i++){
    //QStringList appdata = PBI->AppInfo(newapps[i],QStringList() << "name" << "icon" << "latestversion");
    //if(!appdata.isEmpty()){
      SmallItemWidget *item = new SmallItemWidget(apps[i].origin, apps[i].name, checkIcon(apps[i].icon, apps[i].type), apps[i].version);
      connect(item,SIGNAL(appClicked(QString)),this,SLOT(slotGoToApp(QString)) );
      newapplayout->addWidget(item);
    //}
  }
  newapplayout->addStretch(); //add a spacer to the end
  newapplayout->setContentsMargins(0,0,0,0);
  newapplayout->setSpacing(0);
  ui->scroll_br_home_newapps->widget()->setLayout(newapplayout);
  //Make sure that the newapps scrollarea is the proper fit vertically (no vertical scrolling)
  ui->scroll_br_home_newapps->setMinimumHeight(ui->scroll_br_home_newapps->widget()->minimumSizeHint().height());
  
  //Make sure the new apps area is invisible if no items available
  if(newapps.isEmpty()){ ui->group_br_home_newapps->setVisible(FALSE); }
  else{ ui->group_br_home_newapps->setVisible(TRUE); }
  //make sure the home page is visible in the browser (slotGoToHome without changing tabs)
  ui->stacked_browser->setCurrentWidget(ui->page_home);	
  //Make sure the shortcut buttons are disabled
  ui->tool_browse_cat->setVisible(FALSE);
  ui->tool_browse_app->setVisible(FALSE); 
  
  //Now update the category browser page (since it only needs to be done once like the home menu)
  //Load the Categories
  QStringList catlist = PBI->browserCategories();
  catlist.sort();
  QList<NGCat> cats = PBI->CatInfo(catlist); //all categories
    clearScrollArea(ui->scroll_br_cats);
    QVBoxLayout *catlayout = new QVBoxLayout;
    for(int i=0; i<cats.length(); i++){
        LargeItemWidget *item = new LargeItemWidget(this,cats[i]);
        connect(item,SIGNAL(appClicked(QString)),this,SLOT(slotGoToCategory(QString)) );
        catlayout->addWidget(item);
    }
    catlayout->addStretch(); //add a spacer to the end
    ui->scroll_br_cats->widget()->setLayout(catlayout);
}
Exemplo n.º 5
0
void WebView::loadFinished(bool ok)
{
    Q_UNUSED(ok);

    UWKMessage msg;
    msg.browserID = id_;
    msg.type = UMSG_VIEW_LOADFINISHED;
    UWKMessageQueue::Write(msg);

    progress_ = 100;

    checkIcon();

    Engine::Instance()->GetCookieJar()->save();
}
Exemplo n.º 6
0
void WebView::urlChanged(const QUrl& url)
{

    UWKMessage msg;
    msg.browserID = id_;
    msg.type = UMSG_VIEW_URLCHANGED;

    QString string = url.toString();

    UWKMessageQueue::SetString(msg, 0, string.toUtf8().constData());

    UWKMessageQueue::Write(msg);

    checkIcon();

}
Exemplo n.º 7
0
bool MainUI::fillVerticalAppArea( QScrollArea* area, QStringList applist, bool filter){
  //clear the scroll area first
  clearScrollArea(area);
  bool ok = false; //returns whether any apps were shown after filtering
  //Re-create the layout
  QVBoxLayout *layout = new QVBoxLayout;
    QList<NGApp> apps = PBI->AppInfo(applist);
    for(int i=0; i<apps.length(); i++){
	bool goodApp = false;
	if(apps[i].type.toLower()=="graphical"){goodApp = ui->actionGraphical_Apps->isChecked(); }
	else if(apps[i].type.toLower()=="text"){goodApp = ui->actionText_Apps->isChecked(); }
	else if(apps[i].type.toLower()=="server"){goodApp = ui->actionServer_Apps->isChecked(); }
	else{goodApp = ui->actionRaw_Packages->isChecked(); }
	if( !filter || goodApp){
          LargeItemWidget *item = new LargeItemWidget(this,apps[i], checkIcon(apps[i].icon, apps[i].type) );
          connect(item,SIGNAL(appClicked(QString)),this,SLOT(slotGoToApp(QString)) );
          layout->addWidget(item); 
	  ok = true;
	}
    }
    layout->addStretch();
    area->widget()->setLayout(layout);
    return ok;
}
Exemplo n.º 8
0
void MainUI::slotGoToApp(QString appID, bool goback){
  qDebug() << "Show App:" << appID;
  //Get the general application info
  NGApp data = PBI->singleAppInfo(appID);
  if(data.origin.isEmpty()){
    qDebug() << "Invalid App:" << appID;
    return;
  }
  //Save this appID for going back later
  if(!goback){ //is not a return to an old page
    if(backApps.length() > 0){
      backApps.removeAll(appID);
      backApps.prepend(appID);
    }else{
      backApps.prepend(appID);
    }
    //Now rebuild the back menu
    backMenu->clear();
    for(int i=0; i<backApps.length() && i<10; i++){ //only show 10 items max
      backMenu->addAction(backApps[i]);
    }
  }
  ui->tool_br_back->setVisible( backApps.length() > 1 );
  cApp = appID; //save this for later
  //Start the search for similar apps
  PBI->searchSimilar = appID;
  ui->tabWidget_browse_info->setTabEnabled(3, false); //similar apps tab
  QTimer::singleShot(0,PBI,SLOT(startSimilarSearch()));
  //Now Check icon
  //qDebug() << "App Icon:" << data.origin << data.icon << data.type;
  data.icon = checkIcon(data.icon, data.type); //if(data.icon.isEmpty() || !QFile::exists(data.icon)){ data.icon = defaultIcon; }
  //qDebug() << " - fixed icon:" << data.icon;
  //Now fill the UI with the data
  ui->label_bapp_name->setText(data.name);
  ui->label_bapp_icon->setPixmap(QPixmap(data.icon).scaled(ui->label_bapp_icon->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation) );
  ui->label_bapp_authorweb->setText(data.author);
  ui->tool_app_openweb->setWhatsThis(data.website);
  ui->tool_app_openweb->setVisible( !data.website.isEmpty() && !(data.website.toLower()=="unknown") );
  ui->label_bapp_authorweb->setToolTip(data.website);
  ui->label_bapp_license->setText(data.license);
  ui->label_bapp_type->setText(data.type);
  ui->text_bapp_description->setText(data.description);
  ui->tool_app_rank->setIcon( QIcon( getRatingIcon(data.rating) ) );
  ui->tool_app_rank->setVisible( data.hasWiki );
  ui->tool_app_tips->setVisible( data.hasWiki );
  QString cVer = data.installedversion;
    ui->label_bapp_version->setText(data.version);
    ui->label_bapp_arch->setText(data.arch);
    if(data.size.isEmpty()){ ui->label_bapp_size->setText(tr("Unknown")); }
    else{ ui->label_bapp_size->setText( data.size ); }
  //Now update the download button appropriately
  slotUpdateAppDownloadButton();
  ui->group_app_installed->setVisible(data.isInstalled);
  if(data.isInstalled){
    //Now update the application buttons
    //Start Application binaries
	QStringList bins = PBI->appBinList(appID);
        appBinMenu->clear();
        for(int i=0; i<bins.length(); i++){
          QAction *act = new QAction(this);
	    act->setText(bins[i].section("::::",0,0)); //set name
	    act->setWhatsThis(bins[i].section("::::",1,10)); //set command string
          appBinMenu->addAction(act);
        }
	ui->tool_install_startApp->setVisible(!appBinMenu->isEmpty());
    //Maintainer button
      ui->tool_install_maintainer->setVisible( data.maintainer.contains("@") );
    //Shortcuts button
      ui->tool_install_shortcuts->setVisible(data.hasDE);
	
  }
  //Now enable/disable the shortcut buttons
  ui->tool_browse_app->setVisible(TRUE);
    ui->tool_browse_app->setText(data.name);
    ui->tool_browse_app->setIcon(QIcon(data.icon));
    bApp = appID; //button app ID
  NGCat catinfo;
  if(!data.category.isEmpty()){ catinfo = PBI->singleCatInfo(data.category); }
  else{ catinfo = PBI->singleCatInfo(data.portcat); }
    bCat = catinfo.portcat; //current button category ID
  //QStringList catinfo = PBI->CatInfo(Extras::nameToID(data[7]),QStringList() << "name" << "icon");
  //qDebug() << "Show App Category:" << bCat;
  if(!catinfo.name.isEmpty()){
    ui->tool_browse_gotocat->setVisible(false);
    ui->tool_browse_cat->setVisible(TRUE);
    ui->tool_browse_cat->setText(catinfo.name);
    if(catinfo.icon.isEmpty() || !QFile::exists(catinfo.icon) ){ catinfo.icon = defaultIcon; }
    ui->tool_browse_cat->setIcon(QIcon(catinfo.icon));
  }
  ui->tabWidget->setCurrentWidget(ui->tab_browse);
  ui->stacked_browser->setCurrentWidget(ui->page_app);
  ui->tabWidget_browse_info->setCurrentWidget(ui->tab_app_desc);
  //Screenshots tab
  if(data.screenshots.isEmpty()){
    ui->tabWidget_browse_info->setTabEnabled(1,false);
  }else{
    ui->tabWidget_browse_info->setTabEnabled(1,true);
    //still need to load the first screenshot
    showScreenshot(0);
  }
  //Plugins tab
  //qDebug() << "plugins:" << data.possiblePlugins;
  ui->tabWidget_browse_info->setTabEnabled(2, fillVerticalAppArea( ui->scroll_app_plugins, data.possiblePlugins, false));
  //Build Options tab
  //qDebug() << "Build Options:" << data.buildOptions;
  if(data.buildOptions.isEmpty()){
    ui->tabWidget_browse_info->setTabEnabled(4,false);
  }else{
    ui->tabWidget_browse_info->setTabEnabled(4,true);
    ui->list_app_buildopts->clear();
    ui->list_app_buildopts->addItems(data.buildOptions);
  }
	
}