Changeset 349010b


Ignore:
Timestamp:
May 23, 2014 9:24:50 AM (7 weeks ago)
Author:
Ken Moore <ken@…>
Branches:
master, releng/10.0.2
Children:
354d0d1
Parents:
fa2f0ae
Message:

Completely finish up the conversion of EasyPBI to work with PBING. Found a number of additional PBING changes after the previous update that required a lot of backend re-writing to make it function properly again.

Location:
src-qt4/EasyPBI
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • src-qt4/EasyPBI/ModuleUtils.cpp

    r0c42827 r349010b  
    128128    if(sline.startsWith("/")){ sline = sline.remove(0,1); } 
    129129    return sline; 
     130  }else if(exec.startsWith("pc-su ")){ 
     131    return exec.section(" ",1,50); //everything after the pc-su command 
    130132  }else{ 
    131133    return exec;           
     
    134136 
    135137QString ModuleUtils::generateXdgExec(QString shortExec, bool useRoot){ 
    136   QString exec = "%%PBI_EXEDIR%%/"+shortExec; 
     138  QString exec = shortExec; 
    137139  if(useRoot){ exec.prepend("pc-su "); } 
    138140  return exec; 
     
    140142 
    141143QString ModuleUtils::generateXdgPath(QString shortline){ 
    142   QString line = "%%PBI_APPDIR%%"; 
     144  QString line = ""; 
    143145  if(!shortline.isEmpty()){ 
    144146    line.append("/"+shortline);    
     
    193195  //Now try to copy over the icon file into the resources dir 
    194196  if(iconFile.isEmpty() || !QFile::exists(iconFile)){ iconFile = QDir::homePath()+"/EasyPBI/defaulticon.png"; } 
    195   ok = MOD.addResource(iconFile); 
     197  ok = MOD.setAppIcon(iconFile); 
    196198  if(!ok){ 
    197199    qDebug() << "Warning: Could not copy icon into the new module:" << iconFile; 
    198200  }else{ 
    199     MOD.setText("PBI_PROGICON", iconFile.section("/",-1) ); //Use this icon for the program 
     201    //MOD.setText("PBI_PROGICON", iconFile.section("/",-1) ); //Use this icon for the program 
    200202  } 
    201203  //Now add the port info and create the pbi.conf file 
    202   MOD.setText("PBI_MAKEPORT", port); 
    203   MOD.setText("PBI_PROGNAME", pbiname); 
     204  MOD.setStringVal("PBI_ORIGIN", port); 
     205  MOD.setStringVal("PBI_PROGAUTHOR", "The "+pbiname+" Team"); 
    204206  MOD.saveConfig(); //create the new pbi.conf 
    205207  return MOD; 
  • src-qt4/EasyPBI/PBIModule.cpp

    r791b5df r349010b  
    44  //Setup the possible values that are recognized 
    55    // 10.x PBI format: 5/20/14 
    6   version = "10.x (5/20/14)"; 
     6  version = "10.x (5/21/14)"; 
    77  //pbi.conf values 
    8   CTextValues << "PBI_PROGNAME" << "PBI_PROGWEB" << "PBI_PROGAUTHOR" << "PBI_PROGICON"  << "PBI_PROGVERSION" \ 
    9                 << "PBI_LICENSE" << "PBI_TAGS" << "PBI_PROGTYPE" \ 
    10                 << "PBI_MAKEPORT" << "PBI_MKPORTAFTER" << "PBI_MKPORTBEFORE" \ 
    11                 << "PBI_OTHERPKGS" << "PBI_PLUGINS" << "PBI_SCREENSHOTS" << "PBI_RELATED"; 
     8  OldValues << "PBI_MAKEPORT" << "PBI_MKPORTAFTER" << "PBI_MKPORTBEFORE"; 
     9         
     10  CTextValues << "PBI_PROGNAME" << "PBI_PROGWEB" << "PBI_PROGAUTHOR" << "PBI_DESC" << "PBI_SHORTDESC" \ 
     11                << "PBI_LICENSE" << "PBI_TAGS" << "PBI_PROGTYPE" << "PBI_ORIGIN"; 
     12  CListValues << "PBI_OTHERPKGS" << "PBI_PLUGINS" << "PBI_SCREENSHOTS" << "PBI_RELATED"; 
    1213 
    1314  //Valid Scripts 
     
    4243//  CONFIGURATION VALUES 
    4344// ================== 
    44 QStringList PBIModule::textL(QStringList vars){ //a list of individual QString values 
    45   QStringList out; 
    46   for(int i=0; i<vars.length(); i++){ 
    47     out << text(vars[i]); 
    48   } 
    49   return out; 
    50 } 
    51  
    52 void PBIModule::setTextL(QStringList vars, QStringList vals){ //set a list of QString values 
    53   if( vars.length() != vals.length() ){ return; } 
    54   for(int i=0; i<<vars.length(); i++){ 
    55     setText(vars[i], vals[i]); 
    56   } 
    57 } 
    58  
    59 QString PBIModule::text(QString var){ //a single QString value 
    60   if( CTextValues.contains(var) && HASH.contains(var) ){  
    61     return HASH[var].toString(); 
    62   }else{ 
    63     return ""; 
    64   } 
    65 } 
    66  
    67 void PBIModule::setText(QString var, QString val){ //set a single QString value 
    68   if( !CTextValues.contains(var) ){  
    69     return;  
    70   }else{ 
    71     HASH.insert(var,val); 
    72   } 
    73 } 
    74  
    75 QStringList PBIModule::textValues(){    //list all the possible values 
    76   return CTextValues; 
    77 } 
    78  
    79 bool PBIModule::isEnabled(QString var){ 
    80   if(CBoolValues.contains(var) && HASH.contains(var) ){  
    81     return HASH[var].toBool(); 
    82   }else{  
    83     return false;  
    84   } 
    85 } 
    86  
    87 void PBIModule::setEnabled(QString var, bool val){ 
    88   if(CBoolValues.contains(var)){  
    89     HASH.insert(var,val); 
    90   } 
    91 } 
    92  
    93 QStringList PBIModule::enableValues(){ //list all the possible enables 
    94   return CBoolValues; 
    95 } 
    96  
    97 int PBIModule::number(QString var){ 
    98   if(CIntValues.contains(var) && HASH.contains(var) ){ 
    99     return HASH[var].toInt(); 
    100   }else{ 
    101     return -1; 
    102   } 
    103 } 
    104  
    105 void PBIModule::setNumber(QString var, int val){ 
    106   if(CIntValues.contains(var)){ 
    107     HASH.insert(var,val); 
    108   } 
    109 } 
    110  
    111 QStringList PBIModule::numberValues(){ //list all possible integer values 
    112   return CIntValues; 
    113 } 
    114          
     45QString PBIModule::stringVal(QString var){ 
     46  if(HASH.contains(var)){ return HASH[var].toString(); } 
     47  else{ return ""; } 
     48} 
     49 
     50void PBIModule::setStringVal(QString var, QString val){ 
     51  if(CTextValues.contains(var)){ HASH.insert(var, val); } 
     52} 
     53 
     54QStringList PBIModule::listVal(QString var){ 
     55  if(HASH.contains(var)){ return HASH[var].toStringList(); } 
     56  else{ return QStringList(); }  
     57} 
     58 
     59void PBIModule::setListVal(QString var, QStringList val){ 
     60  if(CListValues.contains(var)){ HASH.insert(var, val); } 
     61} 
     62 
     63QIcon PBIModule::appIcon(){ 
     64  if(QFile::exists(basePath+"/icon.png")){ return QIcon(basePath+"/icon.png"); } 
     65  else{ return QIcon(); } 
     66} 
     67         
     68bool PBIModule::setAppIcon(QString iconpath){ 
     69  //Copy the icon file over to the module 
     70  if(QFile::exists(basePath+"/icon.png")){ QFile::remove(basePath+"/icon.png"); } 
     71  bool ok = QFile::copy(iconpath, basePath+"/icon.png"); 
     72  if(ok){ QFile::setPermissions( basePath+"/icon.png",  QFile::ReadOther | QFile::WriteOther | QFile::ReadOwner | QFile::WriteOwner | QFile::ReadGroup | QFile::WriteGroup); } 
     73  return ok; 
     74} 
     75 
    11576void PBIModule::loadConfig(){ 
    11677  //Read the designated pbi.conf and store the variables 
     
    13091        if(val.endsWith("\"")){ val.chop(1); } //remove the ending quote 
    13192      //qDebug() << "var="+var+"\t\tval="+val; 
    132       //Make sure the MKPORTAFTER list is split up 
    133       if( (var=="PBI_MKPORTAFTER" || var=="PBI_MKPORTBEFORE" || var=="PBI_OTHERPKGS" || var=="PBI_PLUGINS" || var=="PBI_RELATED") && !val.isEmpty()){ val = val.replace("\n"," ").simplified().split(" ").join("\n"); } 
     93 
    13494      //Now check for text/bool/int values 
    135       if(CTextValues.contains(var)){ HASH.insert(var,val); } 
    136       else if(CBoolValues.contains(var)){ HASH.insert(var, (val.toLower()=="yes" || val.toLower()=="true") ); } 
    137       else if(CIntValues.contains(var)){ HASH.insert(var, val.toInt()); } 
     95      if(var=="PBI_MAKEPORT"){HASH.insert("PBI_ORIGIN", val); } 
     96      else if(OldValues.contains(var)){  
     97        QStringList old =  HASH.value("PBI_OTHERPKGS", QStringList()).toStringList(); 
     98          old.append( val.replace("\n", " ").split(" ") ); 
     99        HASH.insert("PBI_OTHERPKGS", old); 
     100      }else if(CTextValues.contains(var)){ HASH.insert(var,val); } 
     101      else if(CListValues.contains(var)){ HASH.insert(var, val.replace("\n"," ").split(" ") ); } 
    138102      else{} //do nothing for extra lines 
    139103    } 
    140104  } 
    141   //Now compress a couple values 
    142       //PBI_OTHERPKGS - This variable is an amalgimation of mkport[before/after] 
    143       QStringList tot; 
    144       if(HASH.contains("PBI_MKPORTBEFORE")){ tot << HASH["PBI_MKPORTBEFORE"].toString().replace("\n"," ").split(" ", QString::SkipEmptyParts); } 
    145       if(HASH.contains("PBI_MKPORTAFTER")){ tot << HASH["PBI_MKPORTAFTER"].toString().replace("\n"," ").split(" ", QString::SkipEmptyParts); } 
    146       if(HASH.contains("PBI_OTHERPKGS")){ tot << HASH["PBI_OTHERPKGS"].toString().replace("\n"," ").split(" ", QString::SkipEmptyParts); } 
    147       if(!tot.isEmpty()){ HASH.insert("PBI_OTHERPKGS", tot.join("\n")); } 
    148105} 
    149106 
     
    161118  //Text Values 
    162119  for(int i=0; i<CTextValues.length(); i++){ 
    163     if(CTextValues[i]=="PBI_MKPORTAFTER" || CTextValues[i]=="PBI_MKPORTBEFORE"){ continue; } 
    164120    //Only set the variable if appropriate 
    165121    if(HASH.contains(CTextValues[i])){  
    166122      QString line = CTextValues[i]+"=\""; 
    167123      QString val = HASH[CTextValues[i]].toString(); 
    168       if(CTextValues[i]=="PBI_OTHERPKGS" || CTextValues[i]=="PBI_PLUGINS" || CTextValues[i]=="PBI_RELATED" || CTextValues[i]=="PBI_SCREENSHOTS"){ val = val.replace("\n", " "); } 
     124 
    169125      if(!val.isEmpty()){ 
    170         //special check for PBI_MAKEPORT format validity 
    171         if(CTextValues[i]=="PBI_MAKEPORT" && val.endsWith("/")){ val.chop(1); } //Make sure there is  
     126        //special check for PBI_ORIGIN format validity 
     127        if(CTextValues[i]=="PBI_ORIGIN" && val.endsWith("/")){ val.chop(1); } 
    172128        line.append( val );  
    173129        exportVariables << CTextValues[i]; //Make sure this variable is exported 
     
    179135  } 
    180136  //Boolian Values 
    181   for(int i=0; i<CBoolValues.length(); i++){ 
    182     if(HASH.contains(CBoolValues[i]) && HASH[CBoolValues[i]].toBool() ){  
    183         QString line = CBoolValues[i]+"=\"YES\""; 
    184         exportVariables << CBoolValues[i]; 
     137  for(int i=0; i<CListValues.length(); i++){ 
     138    if(HASH.contains(CListValues[i])){  
     139        QString line = CListValues[i]+"=\""+HASH[CListValues[i]].toStringList().join(" ")+"\""; 
     140        exportVariables << CListValues[i]; 
    185141        contents << line;    
    186142    } 
    187143     
    188   } 
    189   //Integer Values 
    190   for(int i=0; i<CIntValues.length(); i++){ 
    191     QString line = CIntValues[i]+"=\""; 
    192     int val=-1; 
    193     if(HASH.contains(CIntValues[i])){ val= HASH[CIntValues[i]].toInt(); } 
    194     if(val > 0){ //only enter the value if greater than zero 
    195       line.append( QString::number(val) ); 
    196       line.append("\""); //close out the quotes 
    197       exportVariables << CIntValues[i]; 
    198       contents << line; 
    199     } 
    200144  } 
    201145   
     
    244188  } 
    245189  return out; 
    246 } 
    247  
    248 // ============= 
    249 //      RESOURCES 
    250 // ============= 
    251 QStringList PBIModule::existingResources(){ 
    252   QStringList out = filesInDir(basePath+"/resources"); 
    253   return out;    
    254 } 
    255  
    256 bool PBIModule::addResource(QString filePath, QString resourcePath){ 
    257   if(resourcePath.isEmpty()){ 
    258     resourcePath = filePath.section("/",-1); //same file name, in the base resources dir 
    259   } 
    260   bool ok = false; 
    261   if(QFile::exists(filePath)){ 
    262     //Create an intermediary directories in the resources dir 
    263     QString rPath = basePath+"/resources/"+resourcePath.left(resourcePath.length() - resourcePath.section("/",-1).length()); 
    264     QDir dir(rPath); 
    265     if(!dir.exists()){  
    266       ok = dir.mkpath(rPath);  
    267       if(!ok){ 
    268         qDebug() << "Error: Could not create directory: "<<rPath; 
    269         return ok; 
    270       } 
    271     } 
    272     //Now check if that file already exists 
    273     if(QFile::exists(basePath+"/resources/"+resourcePath)){ 
    274       ok = QFile::remove(basePath+"/resources/"+resourcePath); //Overwrite existing file 
    275       if(!ok){ 
    276         qDebug() << "Error: Could not remove existing file: "<<basePath+"/resources/"+resourcePath; 
    277         return ok; 
    278       } 
    279     } 
    280     ok = QFile::copy(filePath, basePath+"/resources/"+resourcePath); 
    281   }else{ 
    282     qDebug() << "Error: File to add to resources does not exist: "<<filePath; 
    283   } 
    284   return ok; 
    285 } 
    286  
    287 bool PBIModule::removeResource(QString resourcePath){ 
    288   return createFile(basePath+"/resources/"+resourcePath, QStringList() );        
    289190} 
    290191 
     
    559460} 
    560461 
    561          
    562 // ============= 
    563 //  EXTERNAL-LINKS 
    564 // ============= 
    565 void PBIModule::loadExternalLinks( QStringList& bin, QStringList& link, QStringList& type){ 
    566   //Empty the output variables 
    567   bin.clear(); 
    568   link.clear(); 
    569   type.clear(); 
    570   //Read the file and parse the contents 
    571   QStringList contents = readFile(basePath+"/external-links"); 
    572   for(int i=0; i<contents.length(); i++){ 
    573     contents[i] = contents[i].replace("\t"," ").simplified(); 
    574     if(!contents[i].startsWith("#") && !contents[i].isEmpty()){ 
    575       bin << contents[i].section(" ",0,0,QString::SectionSkipEmpty); 
    576       link <<  contents[i].section(" ",1,1,QString::SectionSkipEmpty); 
    577       type <<  contents[i].section(" ",2,2,QString::SectionSkipEmpty); 
    578     } 
    579   } 
    580  
    581 } 
    582  
    583 bool PBIModule::saveExternalLinks( QStringList bin, QStringList link, QStringList type){ 
    584   if( (bin.length() != link.length()) || (bin.length() != type.length()) ){ 
    585     qDebug() << "Error: Unequal external-links list lengths"; 
    586     return false; 
    587   } 
    588   //Create the file contents 
    589   QStringList contents; 
    590   contents << "# Files to be Sym-Linked into the default LOCALBASE"; 
    591   contents << "# One per-line, relative to %%PBI_APPDIR%% and LOCALBASE"; 
    592   contents << "# Defaults to keeping any existing files in LOCALBASE"; 
    593   contents << "# Use action \"binary\" for binaries that need wrapper functionality\n"; 
    594   contents << "# TARGET             LINK IN LOCALBASE         ACTION"; 
    595   for(int i=0; i<bin.length(); i++){ 
    596     contents << bin[i] + " \t " + link[i] + " \t " + type[i]; 
    597   } 
    598   //Now save the contents to file 
    599   return createFile(basePath+"/external-links", contents); 
    600    
    601 } 
    602  
    603462// =============== 
    604463//  GENERAL UTILITIES 
  • src-qt4/EasyPBI/PBIModule.h

    rebba654 r349010b  
    66#include <QStringList> 
    77#include <QVariant> 
     8#include <QIcon> 
    89#include <QFile> 
    910#include <QDir> 
     
    2425 
    2526        //pbi.conf Values 
    26         QStringList textL(QStringList); //a list of individual QString values 
    27         void setTextL(QStringList, QStringList); //set a list of QString values 
    28         QString text(QString); //a single QString value 
    29         void setText(QString,QString); //set a single QString value 
    30         QStringList textValues(); //list all the possible values 
     27        QString stringVal(QString); 
     28        void setStringVal(QString, QString); 
     29        QStringList listVal(QString); 
     30        void setListVal(QString, QStringList); 
    3131 
    32         bool isEnabled(QString);  
    33         void setEnabled(QString, bool); 
    34         QStringList enableValues(); //list all the possible enables 
    35  
    36         int number(QString); 
    37         void setNumber(QString,int); 
    38         QStringList numberValues(); //list all possible integer values 
     32        QIcon appIcon(); 
     33        bool setAppIcon(QString icopath); 
    3934 
    4035        void loadConfig(); 
     
    4742        QStringList validScripts(); 
    4843        QStringList existingScripts(); 
    49          
    50         //Resources 
    51         QStringList existingResources(); 
    52         bool addResource(QString filePath, QString resourcePath = ""); 
    53         bool removeResource(QString resourcePath); 
    5444         
    5545        //XDG files 
     
    8373        bool loadMimeFile(QString fileName); 
    8474         
    85          
    86         //External Links 
    87         void loadExternalLinks( QStringList& bin, QStringList& link, QStringList& type); 
    88         bool saveExternalLinks( QStringList bin, QStringList link, QStringList type); 
    89  
    9075        //General Utilities 
    9176        static bool createFile(QString,QStringList); 
     
    9782private: 
    9883        QHash<QString, QVariant> HASH; 
    99         QStringList CTextValues, CBoolValues, CIntValues, scriptValues, mimeValues; 
     84        QStringList OldValues, CTextValues, CListValues, scriptValues, mimeValues; 
    10085        QStringList xdgTextValues, xdgBoolValues; 
    10186        QString basePath, version; 
  • src-qt4/EasyPBI/backend.cpp

    r791b5df r349010b  
    6363QStringList Backend::getPkgInfo(QString port){ 
    6464  //Function to query the package repository and pull down information about a particular package 
    65   //Output: <name>, <version>, <website>, <license> 
    66   QString cmd = "pkg rquery \"%n\\n%v\\n%w\" -e %o "+port; //general info 
     65  //Output: <name>, <website>, <comment>, <description>, <license> 
     66  QString cmd = "pkg rquery \"%n::::%w::::%c::::%e\" -e %o "+port; //general info 
    6767  QString cmd2 = "pkg rquery %L -e %o "+port; //License info 
    6868  QStringList info; 
    6969  //Get the general info 
    70   QStringList out = Backend::getCmdOutput(cmd); 
    71   for(int i=0; i<3; i++){ 
     70  QStringList out = Backend::getCmdOutput(cmd).join("\n").split("::::"); 
     71  for(int i=0; i<4; i++){ 
    7272    if(i < out.length()){ info << out[i]; } 
    7373    else{ info << ""; } 
  • src-qt4/EasyPBI/mainGUI.cpp

    r791b5df r349010b  
    7474      connect(ui->line_progname,SIGNAL(textChanged(QString)),this,SLOT(slotOptionChanged(QString)) ); 
    7575      connect(ui->line_progauthor,SIGNAL(textChanged(QString)),this,SLOT(slotOptionChanged(QString)) ); 
    76       connect(ui->line_progversion,SIGNAL(textChanged(QString)),this,SLOT(slotOptionChanged(QString)) ); 
    7776      connect(ui->line_progweb,SIGNAL(textChanged(QString)),this,SLOT(slotOptionChanged(QString)) ); 
    7877      connect(ui->line_config_license,SIGNAL(textChanged(QString)),this,SLOT(slotOptionChanged(QString)) ); 
    7978      connect(ui->line_makeport,SIGNAL(textChanged(QString)),this,SLOT(slotOptionChanged(QString)) ); 
    80       connect(ui->list_progicon,SIGNAL(currentIndexChanged(QString)),this,SLOT(slotOptionChanged(QString)) ); 
    8179      connect(ui->line_repoTags,SIGNAL(textChanged(QString)),this,SLOT(slotOptionChanged(QString)) ); 
    8280      connect(ui->line_repoType,SIGNAL(textChanged(QString)),this,SLOT(slotOptionChanged(QString)) ); 
     81      connect(ui->line_summary, SIGNAL(textChanged(QString)), this, SLOT(slotOptionChanged(QString)) ); 
     82      connect(ui->text_description, SIGNAL(textChanged()), this, SLOT(slotOptionChanged()) ); 
    8383      connect(ui->group_config_overrides, SIGNAL(clicked()), this, SLOT(updateConfigVisibility()) ); 
    8484      connect(ui->group_config_repo, SIGNAL(clicked()), this, SLOT(updateConfigVisibility()) ); 
     
    9191      connect(ui->check_xdg_requiresroot,SIGNAL(clicked()),this,SLOT(slotXDGOptionChanged()) ); 
    9292      connect(ui->check_xdg_terminal,SIGNAL(clicked()),this,SLOT(slotXDGOptionChanged()) ); 
    93       connect(ui->list_xdg_icon,SIGNAL(currentIndexChanged(QString)),this,SLOT(slotXDGOptionChanged(QString)) ); 
     93      connect(ui->radio_xdg_customicon,SIGNAL(toggled(bool)),this,SLOT(slotXDGOptionChanged()) ); 
    9494      // Scripts tab 
    9595      connect(ui->text_scripts_edit,SIGNAL(textChanged()),this,SLOT(slotScriptModified()) ); 
     
    155155  //Update the group visibility for the pbi.conf tab 
    156156  ui->frame_pkgFix->setVisible(ui->group_config_overrides->isChecked()); 
    157   ui->frame_repoInfo->setVisible(ui->group_config_repo->isChecked()); 
     157  //ui->frame_repoInfo->setVisible(ui->group_config_repo->isChecked()); 
    158158} 
    159159 
     
    183183    MODULE.loadConfig(); 
    184184    // -- Text Values 
    185     ui->line_progname->setText( MODULE.text("PBI_PROGNAME") ); 
    186     ui->line_progversion->setText( MODULE.text("PBI_PROGVERSION") ); 
    187     ui->line_progweb->setText( MODULE.text("PBI_PROGWEB") ); 
    188     ui->line_progauthor->setText( MODULE.text("PBI_PROGAUTHOR") ); 
    189     ui->line_makeport->setText( MODULE.text("PBI_MAKEPORT") ); 
    190     ui->line_config_license->setText( MODULE.text("PBI_LICENSE") ); 
    191     ui->line_repoTags->setText( MODULE.text("PBI_TAGS") ); 
    192     ui->line_repoType->setText( MODULE.text("PBI_PROGTYPE") ); 
     185    ui->line_progname->setText( MODULE.stringVal("PBI_PROGNAME") ); 
     186    ui->line_progweb->setText( MODULE.stringVal("PBI_PROGWEB") ); 
     187    ui->line_progauthor->setText( MODULE.stringVal("PBI_PROGAUTHOR") ); 
     188    ui->line_makeport->setText( MODULE.stringVal("PBI_ORIGIN") ); 
     189    ui->line_config_license->setText( MODULE.stringVal("PBI_LICENSE") ); 
     190    ui->line_repoTags->setText( MODULE.stringVal("PBI_TAGS") ); 
     191    ui->line_repoType->setText( MODULE.stringVal("PBI_PROGTYPE") ); 
     192    ui->line_summary->setText( MODULE.stringVal("PBI_SHORTDESC") ); 
     193    ui->text_description->setPlainText( MODULE.stringVal("PBI_DESC") ); 
    193194    // -- Combo Boxes (filled with individual items from text) 
    194195    ui->list_portafter->clear(); 
    195     ui->list_portafter->addItems( MODULE.text("PBI_OTHERPKGS").split("\n") ); 
     196    ui->list_portafter->addItems( MODULE.listVal("PBI_OTHERPKGS") ); 
    196197    ui->combo_plugins->clear(); 
    197     ui->combo_plugins->addItems( MODULE.text("PBI_PLUGINS").split("\n") ); 
     198    ui->combo_plugins->addItems( MODULE.listVal("PBI_PLUGINS") ); 
    198199    ui->combo_screenshots->clear(); 
    199     ui->combo_screenshots->addItems( MODULE.text("PBI_SCREENSHOTS").split("\n") ); 
     200    ui->combo_screenshots->addItems( MODULE.listVal("PBI_SCREENSHOTS") ); 
    200201    ui->combo_similar->clear(); 
    201     ui->combo_similar->addItems( MODULE.text("PBI_RELATED").split("\n") ); 
    202     // -- Combo Boxes (Select the proper item only) 
    203     QStringList icons = MODULE.existingResources().filter(".png"); 
    204     ui->list_progicon->clear(); 
    205     if(icons.length() > 0){ 
    206       for(int i=0; i<icons.length(); i++){ 
    207         ui->list_progicon->addItem(QIcon(MODULE.basepath()+"/resources/"+icons[i]),icons[i]); 
    208       }      
    209       int cicon = icons.indexOf(MODULE.text("PBI_PROGICON")); 
    210       if( cicon == -1 ){  
    211               ui->list_progicon->addItem(MODULE.text("PBI_PROGICON"));  
    212               cicon = icons.indexOf(MODULE.text("PBI_PROGICON")); 
    213       } 
    214       ui->list_progicon->setCurrentIndex(cicon); 
    215     }else{ 
    216       ui->list_progicon->addItem( MODULE.text("PBI_PROGICON") ); 
    217     } 
     202    ui->combo_similar->addItems( MODULE.listVal("PBI_RELATED") ); 
     203    // -- Application Icon 
     204    ui->tool_showicon->setIcon( MODULE.appIcon() ); 
     205     
    218206    //Now disable the save button 
    219207    ui->push_config_save->setEnabled(FALSE);  //disable the save button until something changes 
    220208    //Load the current package information and display it on the UI 
    221     QStringList pkgInfo = Backend::getPkgInfo(MODULE.text("PBI_MAKEPORT")); 
    222     qDebug() << "pkg info:" << pkgInfo; 
     209    QStringList pkgInfo = Backend::getPkgInfo(MODULE.stringVal("PBI_ORIGIN")); 
     210    //qDebug() << "pkg info:" << pkgInfo; 
     211    // <name>, <website>, <comment>, <description>, <license> 
    223212    if(pkgInfo.length() >= 4){ 
    224       if(ui->line_progname->text().isEmpty()){ ui->line_progname->setText( pkgInfo[0] ); } 
    225       ui->line_progversion->setPlaceholderText(pkgInfo[1]); 
    226       ui->line_progweb->setPlaceholderText(pkgInfo[2]); 
    227       ui->line_config_license->setPlaceholderText(pkgInfo[3]); 
     213      ui->line_progname->setPlaceholderText( pkgInfo[0] ); 
     214      ui->line_progweb->setPlaceholderText(pkgInfo[1]); 
     215      ui->line_summary->setPlaceholderText(pkgInfo[2]); 
     216      if(ui->text_description->toPlainText().isEmpty()){ 
     217        ui->text_description->setPlainText(pkgInfo[3]); 
     218        ui->text_description->setWhatsThis(pkgInfo[3]); 
     219      } 
     220      ui->line_config_license->setPlaceholderText(pkgInfo[4]); 
    228221    }else{ 
    229       ui->line_progversion->setPlaceholderText(""); 
     222      ui->line_progname->setPlaceholderText(""); 
    230223      ui->line_progweb->setPlaceholderText(""); 
     224      ui->line_summary->setPlaceholderText(""); 
    231225      ui->line_config_license->setPlaceholderText(""); 
    232226    } 
    233227 
    234   } 
    235   // -----RESOURCES-------- 
    236   if( doall || doeditor || (item == "resources")){ 
    237     //Get the all the current files in the resources category and add them to the list 
    238     QStringList rs = MODULE.existingResources(); //currentModule->filesAvailable("resources"); 
    239     //Update the Widget 
    240     ui->listw_resources->clear(); 
    241     qDebug() << "Loading Resources:" << rs; 
    242     for(int i=0; i<rs.length(); i++){ 
    243       if(rs[i].endsWith(".png") || rs[i].endsWith(".jpg")){ 
    244         ui->listw_resources->addItem( new QListWidgetItem(QIcon(MODULE.basepath()+"/resources/"+rs[i]), rs[i]) ); 
    245       }else{ 
    246         ui->listw_resources->addItem(rs[i]); 
    247       } 
    248     } 
    249     //ui->listw_resources->addItems(rs); 
    250     //re-connect the signal/slot 
    251     //connect(ui->listw_resources, SIGNAL(itemSelectionChanged()), this, SLOT(slotResourceChanged()) ); 
    252     //Load the file into the viewers 
    253     //slotResourceChanged(); 
    254228  } 
    255229  //------XDG------ 
     
    353327  if(!line_module->text().isEmpty()){ 
    354328        //Get the currently selected port 
    355         port = MODULE.text("PBI_MAKEPORT"); 
     329        port = MODULE.stringVal("PBI_ORIGIN"); 
    356330  } 
    357331  QString target_url = "http://www.freshports.org/" + port; 
     
    440414            refreshGUI("pbiconf"); break; 
    441415    case 1: 
    442             refreshGUI("resources"); break; 
     416            refreshGUI("xdg"); break; 
    443417    case 2: 
    444             refreshGUI("xdg"); break; 
    445     case 3: 
    446418            refreshGUI("scripts"); break; 
    447419    default: 
     
    484456  //Save the current settings to the backend structures 
    485457  //Text Values 
    486   MODULE.setText("PBI_MAKEPORT", ui->line_makeport->text()); 
    487   MODULE.setText("PBI_PROGNAME", ui->line_progname->text()); 
    488   MODULE.setText("PBI_PROGVERSION", ui->line_progversion->text()); 
    489   MODULE.setText("PBI_PROGWEB", ui->line_progweb->text()); 
    490   MODULE.setText("PBI_PROGAUTHOR", ui->line_progauthor->text()); 
    491   MODULE.setText("PBI_LICENSE", ui->line_config_license->text()); 
    492   MODULE.setText("PBI_TAGS", ui->line_repoTags->text()); 
    493   MODULE.setText("PBI_PROGTYPE", ui->line_repoType->text()); 
     458  MODULE.setStringVal("PBI_ORIGIN", ui->line_makeport->text()); 
     459  MODULE.setStringVal("PBI_PROGNAME", ui->line_progname->text()); 
     460  MODULE.setStringVal("PBI_PROGWEB", ui->line_progweb->text()); 
     461  MODULE.setStringVal("PBI_PROGAUTHOR", ui->line_progauthor->text()); 
     462  MODULE.setStringVal("PBI_LICENSE", ui->line_config_license->text()); 
     463  MODULE.setStringVal("PBI_TAGS", ui->line_repoTags->text()); 
     464  MODULE.setStringVal("PBI_PROGTYPE", ui->line_repoType->text()); 
     465  if(ui->text_description->toPlainText()==ui->text_description->whatsThis()){ 
     466    MODULE.setStringVal("PBI_DESC", ""); //no change from the raw pkg description 
     467  }else{ 
     468    MODULE.setStringVal("PBI_DESC", ui->text_description->toPlainText() ); //modified 
     469  } 
     470  MODULE.setStringVal("PBI_SHORTDESC", ui->line_summary->text()); 
    494471  //Combo Boxes 
    495472  QStringList addports; 
    496473  for(int i=0; i<ui->list_portafter->count(); i++){ addports << ui->list_portafter->itemText(i); } 
    497   MODULE.setText("PBI_OTHERPKGS", addports.join("\n") ); 
     474  MODULE.setListVal("PBI_OTHERPKGS", addports ); 
    498475  addports.clear(); 
    499476  for(int i=0; i<ui->combo_plugins->count(); i++){ addports << ui->combo_plugins->itemText(i); } 
    500   MODULE.setText("PBI_PLUGINS", addports.join("\n") ); 
     477  MODULE.setListVal("PBI_PLUGINS", addports ); 
    501478  addports.clear(); 
    502479  for(int i=0; i<ui->combo_screenshots->count(); i++){ addports << ui->combo_screenshots->itemText(i); } 
    503   MODULE.setText("PBI_SCREENSHOTS", addports.join("\n") ); 
     480  MODULE.setListVal("PBI_SCREENSHOTS", addports ); 
    504481  addports.clear(); 
    505482  for(int i=0; i<ui->combo_similar->count(); i++){ addports << ui->combo_similar->itemText(i); } 
    506   MODULE.setText("PBI_RELATED", addports.join("\n") ); 
    507   MODULE.setText("PBI_PROGICON", ui->list_progicon->currentText() ); 
     483  MODULE.setListVal("PBI_RELATED", addports ); 
    508484 
    509485   
     
    578554} 
    579555 
    580 /*------------------------------------------------ 
    581    RESOURCE EDITOR OPTIONS 
    582   ------------------------------------------------- 
    583 */ 
    584 void MainGUI::on_push_resources_add_clicked(){ 
    585   //Get the desired file 
    586   QStringList iFiles = QFileDialog::getOpenFileNames(this, tr("Select Resources"), settings->value("icondir") ); 
    587   //Check that there were file selected 
    588   if(iFiles.isEmpty()){ return; } 
    589   //Now add these files to the module 
    590   for(int i=0; i<iFiles.length(); i++){ 
    591     MODULE.addResource(iFiles[i]); 
    592   } 
    593   //Now update the GUI 
    594   refreshGUI("resources"); 
    595 } 
    596  
    597 void MainGUI::on_push_resources_remove_clicked(){ 
    598   //Get the currently selected resource 
    599   QString cfile; 
    600   if(ui->listw_resources->currentRow() != -1){ cfile = ui->listw_resources->currentItem()->text(); } 
    601   //Check that there is something selected   
    602   if(cfile.isEmpty()){ return; } 
    603   //Remove the resource 
    604   if(MODULE.removeResource(cfile)){ 
    605       qDebug() << "Removed Resource:" << cfile; 
    606   }else{ 
    607       qDebug() << "Error: Could not remove resource:"<<cfile; 
    608   } 
    609   //Refresh the GUI 
    610   refreshGUI("resources"); 
     556void MainGUI::on_tool_showicon_clicked(){ 
     557  //Prompt the user to select a PNG icon file 
     558  QString iconpath = QFileDialog::getOpenFileName(this, tr("Find Icon File"), QDir::homePath(), tr("PNG Icon (*.png)")); 
     559  if(iconpath.isEmpty()){ return; } 
     560  MODULE.setAppIcon(iconpath); //save it to the module 
     561  ui->tool_showicon->setIcon( MODULE.appIcon() ); //Now reload the icon 
    611562} 
    612563 
     
    624575    //Set the visibility 
    625576        //Current file 
    626         ui->label_xdg_name->setVisible(TRUE); ui->line_xdg_name->setVisible(TRUE); 
     577        /*ui->label_xdg_name->setVisible(TRUE); ui->line_xdg_name->setVisible(TRUE); 
    627578        ui->label_xdg_exec->setVisible(TRUE); ui->line_xdg_exec->setVisible(TRUE); ui->push_xdg_exec->setVisible(TRUE); 
    628579        ui->label_xdg_icon->setVisible(TRUE); ui->list_xdg_icon->setVisible(TRUE); 
    629580        ui->label_xdg_menu->setVisible(FALSE); ui->line_xdg_menu->setVisible(FALSE); ui->push_xdg_menu->setVisible(FALSE); 
    630581        ui->check_xdg_nodisplay->setVisible(TRUE); 
    631         ui->check_xdg_terminal->setVisible(TRUE); 
     582        ui->check_xdg_terminal->setVisible(TRUE);*/ 
    632583        ui->label_xdg_mimepatterns->setVisible(FALSE); ui->line_xdg_mimepatterns->setVisible(FALSE); 
    633584         
     
    638589    //Set the visibility 
    639590        //Current file 
    640         ui->label_xdg_name->setVisible(TRUE); ui->line_xdg_name->setVisible(TRUE); 
     591        /*ui->label_xdg_name->setVisible(TRUE); ui->line_xdg_name->setVisible(TRUE); 
    641592        ui->label_xdg_exec->setVisible(TRUE); ui->line_xdg_exec->setVisible(TRUE); ui->push_xdg_exec->setVisible(TRUE); 
    642593        ui->label_xdg_icon->setVisible(TRUE); ui->list_xdg_icon->setVisible(TRUE); 
    643594        ui->label_xdg_menu->setVisible(TRUE); ui->line_xdg_menu->setVisible(TRUE); ui->push_xdg_menu->setVisible(TRUE); 
    644595        ui->check_xdg_nodisplay->setVisible(TRUE); 
    645         ui->check_xdg_terminal->setVisible(TRUE); 
     596        ui->check_xdg_terminal->setVisible(TRUE);*/ 
    646597        ui->label_xdg_mimepatterns->setVisible(TRUE); ui->line_xdg_mimepatterns->setVisible(TRUE); 
    647598         
     
    650601  if( ui->list_xdg_files->count() > 0){ ui->list_xdg_files->setCurrentRow(0); } 
    651602  //Update the program icon list for new entries 
    652   ui->list_xdg_icon->clear(); 
     603  /*ui->list_xdg_icon->clear(); 
    653604  QStringList icons = MODULE.existingResources().filter(".png"); 
    654605  if(icons.length() > 0){ 
     
    656607        ui->list_xdg_icon->addItem(QIcon(MODULE.basepath()+"/resources/"+icons[i]),icons[i]); 
    657608      }      
    658   } 
     609  }*/ 
    659610 
    660611  //Update the buttons that only need a refresh when the type changes (such as menu's) 
     
    668619  }*/ 
    669620  //Menu categories 
    670   QString recMenu = ModuleUtils::recommendedXdgCategory(MODULE.text("PBI_MAKEPORT").section("/",0,0) ); 
     621  QString recMenu = ModuleUtils::recommendedXdgCategory(MODULE.stringVal("PBI_ORIGIN").section("/",0,0) ); 
    671622  QStringList cats = ModuleUtils::validXdgCategories(); 
     623  //qDebug() << "App Menu Cat:" << recMenu << cats; 
    672624  menu_validMenuCats.clear(); 
    673625  for(int i=0; i<cats.length(); i++){ 
     
    688640  if(ui->list_xdg_files->currentRow() == -1){ clearUI=TRUE; } 
    689641 
    690   //Reset the icon list 
    691   ui->list_xdg_icon->clear(); 
    692   QStringList icons = MODULE.existingResources().filter(".png"); 
    693   if(icons.length() > 0){ 
    694       for(int i=0; i<icons.length(); i++){ 
    695         ui->list_xdg_icon->addItem(QIcon(MODULE.basepath()+"/resources/"+icons[i]),icons[i]); 
    696       }      
    697   } 
    698642  //Get the selected file 
    699643  QString file; 
     
    750694  //comboboxes  
    751695  QString icon = ModuleUtils::pruneXdgLine(MODULE.xdgText("Icon")); 
    752   int cicon = icons.indexOf(icon); 
    753   if( cicon == -1 ){  
    754     ui->list_xdg_icon->addItem(icon);  
    755     cicon = icons.indexOf(icon); 
    756   } 
    757   ui->list_xdg_icon->setCurrentIndex(cicon); 
     696  if(icon.isEmpty() || icon.contains("%%PBI_APPDIR%%")){ ui->radio_xdg_modicon->setChecked(true); } 
     697  else{ ui->radio_xdg_customicon->setChecked(true); ui->line_xdg_customicon->setText(icon); } 
    758698 
    759699  //Checkboxes 
     
    825765  MODULE.setXdgText("GenericName", ui->line_xdg_name->text().toLower()); 
    826766  MODULE.setXdgText("Exec", ModuleUtils::generateXdgExec(ui->line_xdg_exec->text(), ui->check_xdg_requiresroot->isChecked()) ); 
    827   MODULE.setXdgText("Icon", ModuleUtils::generateXdgPath(ui->list_xdg_icon->currentText()) ); 
     767  if(ui->radio_xdg_customicon->isChecked()){ 
     768    MODULE.setXdgText("Icon", ModuleUtils::generateXdgPath(ui->line_xdg_customicon->text()) ); 
     769  }else{ 
     770    MODULE.setXdgText("Icon", ""); //use the built-in icon instead 
     771  } 
    828772  MODULE.setXdgText("Path", ModuleUtils::generateXdgPath("") ); 
    829773  MODULE.setXdgEnabled("Terminal",ui->check_xdg_terminal->isChecked()); 
     
    882826  MODULE.setXdgText("GenericName", ui->line_xdg_name->text().toLower()); 
    883827  MODULE.setXdgText("Exec", ModuleUtils::generateXdgExec(ui->line_xdg_exec->text(), ui->check_xdg_requiresroot->isChecked()) ); 
    884   MODULE.setXdgText("Icon", ModuleUtils::generateXdgPath(ui->list_xdg_icon->currentText()) ); 
     828  if(ui->radio_xdg_customicon->isChecked()){ 
     829    MODULE.setXdgText("Icon", ModuleUtils::generateXdgPath(ui->line_xdg_customicon->text()) ); 
     830  }else{ 
     831    MODULE.setXdgText("Icon", ""); //use the built-in icon instead 
     832  } 
    885833  MODULE.setXdgText("Path", ModuleUtils::generateXdgPath("") ); 
    886834  MODULE.setXdgEnabled("Terminal",ui->check_xdg_terminal->isChecked()); 
     
    974922void MainGUI::slotXDGOptionChanged(QString tmp){ 
    975923  tmp.clear(); //remove warning about unused variables 
    976   ui->push_xdg_savechanges->setEnabled(TRUE); 
     924  ui->line_xdg_customicon->setEnabled(ui->radio_xdg_customicon->isChecked()); 
     925  ui->push_xdg_savechanges->setEnabled(ui->list_xdg_files->currentRow()>=0); 
    977926  ui->push_xdg_savenew->setEnabled(TRUE); 
    978927} 
  • src-qt4/EasyPBI/mainGUI.h

    r791b5df r349010b  
    6767    void on_tool_addsimilar_clicked(); 
    6868    void on_tool_rmsimilar_clicked(); 
    69     //resources functions 
    70     void on_push_resources_add_clicked(); 
    71     void on_push_resources_remove_clicked(); 
     69    void on_tool_showicon_clicked(); 
    7270    //XDG functions 
    7371    void slotXdgTypeChanged(); 
  • src-qt4/EasyPBI/mainGUI.ui

    r791b5df r349010b  
    77    <x>0</x> 
    88    <y>0</y> 
    9     <width>560</width> 
    10     <height>429</height> 
     9    <width>538</width> 
     10    <height>468</height> 
    1111   </rect> 
    1212  </property> 
     
    9999             <x>0</x> 
    100100             <y>0</y> 
    101              <width>513</width> 
    102              <height>506</height> 
     101             <width>491</width> 
     102             <height>627</height> 
    103103            </rect> 
    104104           </property> 
    105105           <layout class="QVBoxLayout" name="verticalLayout_13"> 
    106106            <item> 
    107              <widget class="QGroupBox" name="groupBox_5"> 
    108               <property name="title"> 
    109                <string>Program Information</string> 
     107             <layout class="QFormLayout" name="formLayout_5"> 
     108              <property name="fieldGrowthPolicy"> 
     109               <enum>QFormLayout::ExpandingFieldsGrow</enum> 
    110110              </property> 
    111               <layout class="QVBoxLayout" name="verticalLayout_22"> 
    112                <item> 
    113                 <widget class="QFrame" name="frame_6"> 
    114                  <property name="frameShape"> 
    115                   <enum>QFrame::NoFrame</enum> 
    116                  </property> 
    117                  <property name="frameShadow"> 
    118                   <enum>QFrame::Raised</enum> 
    119                  </property> 
    120                  <layout class="QFormLayout" name="formLayout_3"> 
    121                   <property name="fieldGrowthPolicy"> 
    122                    <enum>QFormLayout::ExpandingFieldsGrow</enum> 
    123                   </property> 
    124                   <item row="0" column="0"> 
    125                    <widget class="QLabel" name="label_makeport"> 
    126                     <property name="text"> 
    127                      <string>Port/Package</string> 
    128                     </property> 
    129                    </widget> 
    130                   </item> 
    131                   <item row="0" column="1"> 
    132                    <layout class="QHBoxLayout" name="layout_makeport"> 
    133                     <item> 
    134                      <widget class="QLineEdit" name="line_makeport"> 
    135                       <property name="statusTip"> 
    136                        <string>FreeBSD port to be packaged as a PBI</string> 
    137                       </property> 
    138                      </widget> 
    139                     </item> 
    140                     <item> 
    141                      <widget class="QPushButton" name="push_change_makeport"> 
    142                       <property name="statusTip"> 
    143                        <string>Select a different FreeBSD package</string> 
    144                       </property> 
    145                       <property name="text"> 
    146                        <string>&amp;Change</string> 
    147                       </property> 
    148                      </widget> 
    149                     </item> 
    150                    </layout> 
    151                   </item> 
    152                   <item row="1" column="0"> 
    153                    <widget class="QLabel" name="label_progname"> 
    154                     <property name="toolTip"> 
    155                      <string>Official name of the target program</string> 
    156                     </property> 
    157                     <property name="text"> 
    158                      <string>Name</string> 
    159                     </property> 
    160                    </widget> 
    161                   </item> 
    162                   <item row="1" column="1"> 
    163                    <widget class="QLineEdit" name="line_progname"> 
    164                     <property name="statusTip"> 
    165                      <string>Official name of the target program</string> 
    166                     </property> 
    167                    </widget> 
    168                   </item> 
    169                   <item row="2" column="0"> 
    170                    <widget class="QLabel" name="label_progauthor"> 
    171                     <property name="toolTip"> 
    172                      <string>Author of the main program (or FreeBSD port maintainer instead)</string> 
    173                     </property> 
    174                     <property name="text"> 
    175                      <string>Author</string> 
    176                     </property> 
    177                    </widget> 
    178                   </item> 
    179                   <item row="2" column="1"> 
    180                    <widget class="QLineEdit" name="line_progauthor"> 
    181                     <property name="statusTip"> 
    182                      <string>Author of the main program (or FreeBSD port maintainer instead)</string> 
    183                     </property> 
    184                    </widget> 
    185                   </item> 
    186                   <item row="3" column="0"> 
    187                    <widget class="QLabel" name="label_progicon"> 
    188                     <property name="toolTip"> 
    189                      <string>Icon that will be used for the program (PNG resources available)</string> 
    190                     </property> 
    191                     <property name="text"> 
    192                      <string>Icon</string> 
    193                     </property> 
    194                    </widget> 
    195                   </item> 
    196                   <item row="3" column="1"> 
    197                    <widget class="QComboBox" name="list_progicon"> 
    198                     <property name="sizePolicy"> 
    199                      <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> 
    200                       <horstretch>0</horstretch> 
    201                       <verstretch>0</verstretch> 
    202                      </sizepolicy> 
    203                     </property> 
    204                     <property name="statusTip"> 
    205                      <string>Icon that will be used for the program (PNG resources available)</string> 
    206                     </property> 
    207                    </widget> 
    208                   </item> 
    209                  </layout> 
    210                 </widget> 
    211                </item> 
    212               </layout> 
    213              </widget> 
     111              <item row="0" column="0"> 
     112               <widget class="QLabel" name="label_makeport"> 
     113                <property name="text"> 
     114                 <string>Port/Package</string> 
     115                </property> 
     116               </widget> 
     117              </item> 
     118              <item row="0" column="1"> 
     119               <layout class="QHBoxLayout" name="layout_makeport"> 
     120                <item> 
     121                 <widget class="QLineEdit" name="line_makeport"> 
     122                  <property name="statusTip"> 
     123                   <string>FreeBSD port to be packaged as a PBI</string> 
     124                  </property> 
     125                 </widget> 
     126                </item> 
     127                <item> 
     128                 <widget class="QPushButton" name="push_change_makeport"> 
     129                  <property name="statusTip"> 
     130                   <string>Select a different FreeBSD package</string> 
     131                  </property> 
     132                  <property name="text"> 
     133                   <string>&amp;Change</string> 
     134                  </property> 
     135                 </widget> 
     136                </item> 
     137               </layout> 
     138              </item> 
     139             </layout> 
    214140            </item> 
    215141            <item> 
    216142             <widget class="QGroupBox" name="group_config_repo"> 
    217143              <property name="title"> 
    218                <string>View Repository Information (optional)</string> 
     144               <string>Repository Information</string> 
    219145              </property> 
    220146              <property name="checkable"> 
    221                <bool>true</bool> 
     147               <bool>false</bool> 
    222148              </property> 
    223149              <property name="checked"> 
     
    237163                   <enum>QFormLayout::ExpandingFieldsGrow</enum> 
    238164                  </property> 
    239                   <item row="0" column="0"> 
     165                  <item row="3" column="0"> 
    240166                   <widget class="QLabel" name="label"> 
    241167                    <property name="text"> 
    242                      <string>Tags</string> 
    243                     </property> 
    244                    </widget> 
    245                   </item> 
    246                   <item row="0" column="1"> 
     168                     <string>Search Tags</string> 
     169                    </property> 
     170                   </widget> 
     171                  </item> 
     172                  <item row="3" column="1"> 
    247173                   <widget class="QLineEdit" name="line_repoTags"> 
    248174                    <property name="statusTip"> 
     
    251177                   </widget> 
    252178                  </item> 
    253                   <item row="1" column="0"> 
    254                    <widget class="QLabel" name="label_3"> 
    255                     <property name="text"> 
    256                      <string>App Type</string> 
    257                     </property> 
    258                    </widget> 
    259                   </item> 
    260                   <item row="1" column="1"> 
    261                    <layout class="QHBoxLayout" name="horizontalLayout_2"> 
    262                     <item> 
    263                      <widget class="QLineEdit" name="line_repoType"/> 
    264                     </item> 
    265                     <item> 
    266                      <widget class="QToolButton" name="tool_repoType"> 
    267                       <property name="text"> 
    268                        <string>...</string> 
    269                       </property> 
    270                       <property name="popupMode"> 
    271                        <enum>QToolButton::InstantPopup</enum> 
    272                       </property> 
    273                      </widget> 
    274                     </item> 
    275                    </layout> 
    276                   </item> 
    277                   <item row="2" column="0"> 
     179                  <item row="5" column="0"> 
    278180                   <widget class="QLabel" name="label_4"> 
    279181                    <property name="text"> 
     
    282184                   </widget> 
    283185                  </item> 
    284                   <item row="2" column="1"> 
     186                  <item row="5" column="1"> 
    285187                   <layout class="QHBoxLayout" name="horizontalLayout"> 
    286188                    <item> 
     
    321223                   </layout> 
    322224                  </item> 
    323                   <item row="3" column="0"> 
     225                  <item row="6" column="0"> 
    324226                   <widget class="QLabel" name="label_5"> 
    325227                    <property name="text"> 
     
    328230                   </widget> 
    329231                  </item> 
    330                   <item row="3" column="1"> 
     232                  <item row="6" column="1"> 
    331233                   <layout class="QHBoxLayout" name="horizontalLayout_3"> 
    332234                    <item> 
     
    367269                   </layout> 
    368270                  </item> 
    369                   <item row="4" column="0"> 
     271                  <item row="7" column="0"> 
    370272                   <widget class="QLabel" name="label_6"> 
    371273                    <property name="text"> 
     
    374276                   </widget> 
    375277                  </item> 
    376                   <item row="4" column="1"> 
     278                  <item row="7" column="1"> 
    377279                   <layout class="QHBoxLayout" name="horizontalLayout_5"> 
    378280                    <item> 
     
    412314                    </item> 
    413315                   </layout> 
     316                  </item> 
     317                  <item row="1" column="0"> 
     318                   <widget class="QLabel" name="label_progauthor"> 
     319                    <property name="toolTip"> 
     320                     <string>Author of the main program (or FreeBSD port maintainer instead)</string> 
     321                    </property> 
     322                    <property name="text"> 
     323                     <string>Author</string> 
     324                    </property> 
     325                   </widget> 
     326                  </item> 
     327                  <item row="1" column="1"> 
     328                   <widget class="QLineEdit" name="line_progauthor"> 
     329                    <property name="statusTip"> 
     330                     <string>Author of the main program (or FreeBSD port maintainer instead)</string> 
     331                    </property> 
     332                   </widget> 
     333                  </item> 
     334                  <item row="0" column="0"> 
     335                   <widget class="QLabel" name="label_progicon"> 
     336                    <property name="toolTip"> 
     337                     <string>Icon that will be used for the program (PNG resources available)</string> 
     338                    </property> 
     339                    <property name="text"> 
     340                     <string>Icon</string> 
     341                    </property> 
     342                   </widget> 
     343                  </item> 
     344                  <item row="2" column="0"> 
     345                   <widget class="QLabel" name="label_3"> 
     346                    <property name="text"> 
     347                     <string>App Type</string> 
     348                    </property> 
     349                   </widget> 
     350                  </item> 
     351                  <item row="2" column="1"> 
     352                   <layout class="QHBoxLayout" name="horizontalLayout_2"> 
     353                    <item> 
     354                     <widget class="QLineEdit" name="line_repoType"/> 
     355                    </item> 
     356                    <item> 
     357                     <widget class="QToolButton" name="tool_repoType"> 
     358                      <property name="text"> 
     359                       <string>...</string> 
     360                      </property> 
     361                      <property name="popupMode"> 
     362                       <enum>QToolButton::InstantPopup</enum> 
     363                      </property> 
     364                     </widget> 
     365                    </item> 
     366                   </layout> 
     367                  </item> 
     368                  <item row="0" column="1"> 
     369                   <widget class="QToolButton" name="tool_showicon"> 
     370                    <property name="statusTip"> 
     371                     <string>Select a file to use for the application icon (required for shortcuts)</string> 
     372                    </property> 
     373                    <property name="text"> 
     374                     <string>No Specific Icon!</string> 
     375                    </property> 
     376                    <property name="iconSize"> 
     377                     <size> 
     378                      <width>64</width> 
     379                      <height>64</height> 
     380                     </size> 
     381                    </property> 
     382                    <property name="autoRaise"> 
     383                     <bool>false</bool> 
     384                    </property> 
     385                   </widget> 
    414386                  </item> 
    415387                 </layout> 
     
    444416                  </property> 
    445417                  <item row="0" column="0"> 
    446                    <widget class="QLabel" name="label_progversion"> 
     418                   <widget class="QLabel" name="label_progname"> 
    447419                    <property name="toolTip"> 
    448                      <string>Version of the program to be packaged</string> 
    449                     </property> 
    450                     <property name="text"> 
    451                      <string>Version</string> 
     420                     <string>Official name of the target program</string> 
     421                    </property> 
     422                    <property name="text"> 
     423                     <string>Name</string> 
    452424                    </property> 
    453425                   </widget> 
    454426                  </item> 
    455427                  <item row="0" column="1"> 
    456                    <widget class="QLineEdit" name="line_progversion"> 
     428                   <widget class="QLineEdit" name="line_progname"> 
    457429                    <property name="statusTip"> 
    458                      <string>Version of the program to be packaged</string> 
     430                     <string>Official name of the target program</string> 
    459431                    </property> 
    460432                   </widget> 
     
    473445                   <widget class="QLineEdit" name="line_progweb"> 
    474446                    <property name="statusTip"> 
    475                      <string>URL of the main website for the target program</string> 
     447                     <string>URL of the main application website</string> 
    476448                    </property> 
    477449                   </widget> 
     
    485457                  </item> 
    486458                  <item row="2" column="1"> 
    487                    <widget class="QLineEdit" name="line_config_license"/> 
     459                   <widget class="QLineEdit" name="line_config_license"> 
     460                    <property name="statusTip"> 
     461                     <string>Application license(s)</string> 
     462                    </property> 
     463                   </widget> 
    488464                  </item> 
    489465                  <item row="3" column="0"> 
    490466                   <widget class="QLabel" name="label_portafter"> 
    491467                    <property name="text"> 
    492                      <string>Add Pkgs</string> 
     468                     <string>+ Packages</string> 
    493469                    </property> 
    494470                   </widget> 
     
    505481                      </property> 
    506482                      <property name="statusTip"> 
    507                        <string>Additional FreeBSD ports to be built after the main program</string> 
     483                       <string>Additional ports/packages to be installed with this application by default</string> 
    508484                      </property> 
    509485                     </widget> 
     
    532508                    </item> 
    533509                   </layout> 
     510                  </item> 
     511                  <item row="4" column="0"> 
     512                   <widget class="QLabel" name="label_7"> 
     513                    <property name="text"> 
     514                     <string>Summary</string> 
     515                    </property> 
     516                   </widget> 
     517                  </item> 
     518                  <item row="4" column="1"> 
     519                   <widget class="QLineEdit" name="line_summary"> 
     520                    <property name="statusTip"> 
     521                     <string>Short description of the application</string> 
     522                    </property> 
     523                   </widget> 
     524                  </item> 
     525                  <item row="5" column="0"> 
     526                   <widget class="QLabel" name="label_8"> 
     527                    <property name="text"> 
     528                     <string>Description</string> 
     529                    </property> 
     530                   </widget> 
     531                  </item> 
     532                  <item row="5" column="1"> 
     533                   <widget class="QPlainTextEdit" name="text_description"> 
     534                    <property name="minimumSize"> 
     535                     <size> 
     536                      <width>0</width> 
     537                      <height>150</height> 
     538                     </size> 
     539                    </property> 
     540                    <property name="statusTip"> 
     541                     <string>Full description of the application</string> 
     542                    </property> 
     543                    <property name="lineWrapMode"> 
     544                     <enum>QPlainTextEdit::NoWrap</enum> 
     545                    </property> 
     546                   </widget> 
    534547                  </item> 
    535548                 </layout> 
     
    558571       </layout> 
    559572      </widget> 
    560       <widget class="QWidget" name="tab_resources"> 
    561        <attribute name="title"> 
    562         <string>Icons</string> 
    563        </attribute> 
    564        <attribute name="toolTip"> 
    565         <string>Additional files to be included in the PBI</string> 
    566        </attribute> 
    567        <layout class="QVBoxLayout" name="verticalLayout"> 
    568         <item> 
    569          <layout class="QHBoxLayout" name="horizontalLayout_6"> 
    570           <item> 
    571            <widget class="QPushButton" name="push_resources_add"> 
    572             <property name="statusTip"> 
    573              <string>Copy an additional file into the PBI module</string> 
    574             </property> 
    575             <property name="text"> 
    576              <string>&amp;Add Icon</string> 
    577             </property> 
    578             <property name="icon"> 
    579              <iconset resource="EasyPBI.qrc"> 
    580               <normaloff>:/png/icons/plus.png</normaloff>:/png/icons/plus.png</iconset> 
    581             </property> 
    582            </widget> 
    583           </item> 
    584           <item> 
    585            <widget class="QPushButton" name="push_resources_remove"> 
    586             <property name="statusTip"> 
    587              <string>Delete the selected file from the PBI module</string> 
    588             </property> 
    589             <property name="text"> 
    590              <string>&amp;Delete Icon</string> 
    591             </property> 
    592             <property name="icon"> 
    593              <iconset resource="EasyPBI.qrc"> 
    594               <normaloff>:/png/icons/minus.png</normaloff>:/png/icons/minus.png</iconset> 
    595             </property> 
    596            </widget> 
    597           </item> 
    598           <item> 
    599            <spacer name="horizontalSpacer"> 
    600             <property name="orientation"> 
    601              <enum>Qt::Horizontal</enum> 
    602             </property> 
    603             <property name="sizeHint" stdset="0"> 
    604              <size> 
    605               <width>40</width> 
    606               <height>20</height> 
    607              </size> 
    608             </property> 
    609            </spacer> 
    610           </item> 
    611          </layout> 
    612         </item> 
    613         <item> 
    614          <widget class="QListWidget" name="listw_resources"> 
    615           <property name="sizePolicy"> 
    616            <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> 
    617             <horstretch>0</horstretch> 
    618             <verstretch>0</verstretch> 
    619            </sizepolicy> 
    620           </property> 
    621           <property name="statusTip"> 
    622            <string>Current files to be included in the PBI</string> 
    623           </property> 
    624           <property name="iconSize"> 
    625            <size> 
    626             <width>64</width> 
    627             <height>64</height> 
    628            </size> 
    629           </property> 
    630           <property name="sortingEnabled"> 
    631            <bool>true</bool> 
    632           </property> 
    633          </widget> 
    634         </item> 
    635         <item> 
    636          <spacer name="verticalSpacer_6"> 
    637           <property name="orientation"> 
    638            <enum>Qt::Vertical</enum> 
    639           </property> 
    640           <property name="sizeHint" stdset="0"> 
    641            <size> 
    642             <width>20</width> 
    643             <height>40</height> 
    644            </size> 
    645           </property> 
    646          </spacer> 
    647         </item> 
    648        </layout> 
    649       </widget> 
    650573      <widget class="QWidget" name="tab_xdg"> 
    651574       <attribute name="title"> 
    652         <string>XDG Entries</string> 
     575        <string>XDG Shortcuts</string> 
    653576       </attribute> 
    654577       <attribute name="toolTip"> 
     
    785708          </property> 
    786709          <layout class="QVBoxLayout" name="verticalLayout_17"> 
     710           <property name="bottomMargin"> 
     711            <number>0</number> 
     712           </property> 
    787713           <item> 
    788714            <widget class="QFrame" name="frame"> 
     
    849775                </item> 
    850776                <item row="2" column="1"> 
    851                  <widget class="QComboBox" name="list_xdg_icon"> 
    852                   <property name="sizePolicy"> 
    853                    <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> 
    854                     <horstretch>0</horstretch> 
    855                     <verstretch>0</verstretch> 
    856                    </sizepolicy> 
    857                   </property> 
    858                   <property name="statusTip"> 
    859                    <string>Visible icon to use for the item</string> 
    860                   </property> 
    861                  </widget> 
     777                 <layout class="QGridLayout" name="gridLayout"> 
     778                  <item row="1" column="0"> 
     779                   <widget class="QRadioButton" name="radio_xdg_customicon"> 
     780                    <property name="text"> 
     781                     <string>Custom Icon Path</string> 
     782                    </property> 
     783                   </widget> 
     784                  </item> 
     785                  <item row="0" column="0"> 
     786                   <widget class="QRadioButton" name="radio_xdg_modicon"> 
     787                    <property name="text"> 
     788                     <string>Application Icon</string> 
     789                    </property> 
     790                   </widget> 
     791                  </item> 
     792                  <item row="2" column="0"> 
     793                   <widget class="QLineEdit" name="line_xdg_customicon"/> 
     794                  </item> 
     795                 </layout> 
    862796                </item> 
    863797                <item row="3" column="1"> 
     
    878812                  <property name="text"> 
    879813                   <string>Make Invisible</string> 
     814                  </property> 
     815                 </widget> 
     816                </item> 
     817                <item row="5" column="1"> 
     818                 <widget class="QCheckBox" name="check_xdg_requiresroot"> 
     819                  <property name="toolTip"> 
     820                   <string>Application needs administrator privileges to run</string> 
     821                  </property> 
     822                  <property name="statusTip"> 
     823                   <string>Application needs administrator privileges to run</string> 
     824                  </property> 
     825                  <property name="text"> 
     826                   <string>Requires Root</string> 
    880827                  </property> 
    881828                 </widget> 
     
    920867                  <property name="statusTip"> 
    921868                   <string>Space-separated list of automatic file associations (Example: *.junk *.JUNK *.test *.TEST)</string> 
    922                   </property> 
    923                  </widget> 
    924                 </item> 
    925                 <item row="5" column="1"> 
    926                  <widget class="QCheckBox" name="check_xdg_requiresroot"> 
    927                   <property name="toolTip"> 
    928                    <string>Application needs administrator privileges to run</string> 
    929                   </property> 
    930                   <property name="statusTip"> 
    931                    <string>Application needs administrator privileges to run</string> 
    932                   </property> 
    933                   <property name="text"> 
    934                    <string>Requires Root</string> 
    935869                  </property> 
    936870                 </widget> 
     
    11321066     <x>0</x> 
    11331067     <y>0</y> 
    1134      <width>560</width> 
     1068     <width>538</width> 
    11351069     <height>20</height> 
    11361070    </rect> 
Note: See TracChangeset for help on using the changeset viewer.