void LogDetailWidget::onCustomMenuRequested(const QPoint &pos) { QModelIndex index = ui.aaView->currentIndex(); if(index.row() <0) return; QAbstractItemModel* model = ui.aaView->model(); QMenu *menu=new QMenu(this); QString timestamp = model->data(model->index(index.row(), 0), Qt::DisplayRole).toString(); QString compName = model->data(model->index(index.row(), 2), Qt::DisplayRole).toString(); QString type = model->data(model->index(index.row(), 4), Qt::DisplayRole).toString(); QString value = model->data(model->index(index.row(), 5), Qt::DisplayRole).toString(); int i; if((i=compName.indexOf(".java"))>=0 && type == "edit" && value != "") { QAction *editHistory = new QAction("See Edit History", this); menu->addAction(editHistory); connect(editHistory, SIGNAL(triggered()), this, SLOT(showEditHistory())); } QAction *showact = new QAction("Show Screenshot", this); menu->addAction(showact); menu->popup(ui.aaView->viewport()->mapToGlobal(pos)); connect(showact, SIGNAL(triggered()), this, SLOT(showScreenshot())); }
void MainUI::on_tool_app_prevScreen_clicked(){ //Read the current screenshot and go to the previous one int cur = ui->label_app_cScreen->text().section("/",0,0).simplified().toInt(); showScreenshot(cur-2); //the viewable number is always 1 greater than the actual number }
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); } }