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 } }
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); }
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(); }
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); }
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(); }
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(); }
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; }
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); } }