summaryrefslogtreecommitdiffstats
path: root/parts/distpart/distpart_widget.cpp
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit114a878c64ce6f8223cfd22d76a20eb16d177e5e (patch)
treeacaf47eb0fa12142d3896416a69e74cbf5a72242 /parts/distpart/distpart_widget.cpp
downloadtdevelop-114a878c64ce6f8223cfd22d76a20eb16d177e5e.tar.gz
tdevelop-114a878c64ce6f8223cfd22d76a20eb16d177e5e.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdevelop@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'parts/distpart/distpart_widget.cpp')
-rw-r--r--parts/distpart/distpart_widget.cpp605
1 files changed, 605 insertions, 0 deletions
diff --git a/parts/distpart/distpart_widget.cpp b/parts/distpart/distpart_widget.cpp
new file mode 100644
index 00000000..71c981e8
--- /dev/null
+++ b/parts/distpart/distpart_widget.cpp
@@ -0,0 +1,605 @@
+/***************************************************************************
+ * Copyright (C) 2004 by ian reinhart geiser *
+ * geiseri@kde.org *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ ***************************************************************************/
+#include "distpart_widget.h"
+
+#include <kparts/part.h>
+#include <klibloader.h>
+#include <kurl.h>
+#include <kdebug.h>
+#include <kprocess.h>
+#include <kfiledialog.h>
+#include <kio/netaccess.h>
+#include <klocale.h>
+#include "kdevproject.h"
+#include "domutil.h"
+#include <ktar.h>
+#include <kmessagebox.h>
+
+#include <kdevcore.h>
+#include <qgroupbox.h>
+#include <qlayout.h>
+#include <qnetwork.h>
+#include <qurloperator.h>
+#include <qmessagebox.h>
+#include "distpart_part.h"
+#include <qdir.h>
+#include <qfile.h>
+#include <qregexp.h>
+#include <qstringlist.h>
+#include <qtabwidget.h>
+#include "kdevmakefrontend.h"
+#include <kprogress.h>
+
+#include <qerrormessage.h>
+#include "specsupport.h"
+#include "lsmsupport.h"
+
+DistpartDialog::DistpartDialog(DistpartPart *part, QWidget *parent)
+ :distpart_ui(parent, "dist_widget"), m_part(part) {
+ m_spec = new SpecSupport(m_part);
+
+ connect( customProjectCheckBox, SIGNAL(toggled(bool) ),
+ this, SLOT(slotcustomProjectCheckBoxChanged()));
+ connect( uploadCustomCheckBox, SIGNAL(toggled(bool)),
+ this, SLOT(slotuploadCustomCheckBoxChanged()));
+
+// connect( okayPushButton, SIGNAL(clicked()),
+// this, SLOT(slotokayPushButtonPressed()));
+// connect( cancelPushButton, SIGNAL(clicked()),
+// this, SLOT(slotcancelPushButtonPressed()));
+/* connect(help_PushButton, SIGNAL(clicked()),
+ this, SLOT(slothelp_PushButtonPressed()));*/
+ connect( createSrcArchPushButton, SIGNAL(clicked()),
+ this, SLOT(slotcreateSrcArchPushButtonPressed()));
+ connect( resetSrcPushButton, SIGNAL(clicked()),
+ this, SLOT(slotresetSrcPushButtonPressed()));
+
+ connect( genHTMLPushButton, SIGNAL(clicked()),
+ this, SLOT(slotgenHTMLPushButtonPressed()));
+ connect( resetHTMLPushButton, SIGNAL(clicked()),
+ this, SLOT(slotresetHTMLPushButtonPressed()));
+ connect( uploadSubmitPushButton, SIGNAL(clicked()),
+ this, SLOT(slotuploadSubmitPushButtonPressed()));
+ connect( uploadResetPushButton, SIGNAL(clicked()),
+ this, SLOT(slotuploadResetPushButtonPressed()));
+ connect( uploadAddFileToolButton, SIGNAL(clicked()),
+ this, SLOT(slotuploadAddFileToolButtonPressed()));
+ connect( uploadRemoveToolButton, SIGNAL(clicked()),
+ this, SLOT(slotuploadRemoveToolButtonPressed()));
+ connect ( srcDistFileListBox, SIGNAL(clicked(QListBoxItem *item)), this, SLOT(slotRemoveFile(QListBoxItem *item)));
+// connect( buildAllPushButton, SIGNAL( clicked() ), this, SLOT( slotbuildAllPushButtonPressed() ));
+// connect( exportSPECPushButton, SIGNAL( clicked() ), this, SLOT( slotexportSPECPushButtonPressed( ) ) );
+// connect( srcPackagePushButton, SIGNAL( clicked() ), this, SLOT( slotsrcPackagePushButtonPressed() ) );
+// connect( importSPECPushButton, SIGNAL( clicked() ), this, SLOT( slotimportSPECPushButtonPressed() ) );
+ loadSettings();
+
+
+ localOptionsGroupBox->setEnabled(false);
+ devPackageCheckBox->setEnabled(false);
+ docsPackageCheckBox->setEnabled(false);
+ appIconCheckBox->setEnabled(false);
+ uploadftpkdeorgCheckBox->setEnabled(false);
+ uploadAppsKDEcomCheckBox->setEnabled(false);
+}
+
+
+DistpartDialog::~DistpartDialog() {
+}
+
+// QPushButton* okayPushButton;
+
+void DistpartDialog::slotokayPushButtonPressed() {
+ storeSettings();
+// accept();
+}
+// QPushButton* cancelPushButton;
+
+void DistpartDialog::slotcancelPushButtonPressed() {
+// reject();
+}
+// QPushButton* help_PushButton;
+
+/*void DistpartDialog::slothelp_PushButtonPressed() {
+ QMessageBox::about(this,i18n("Distpart Help"),i18n("In order to build a RPM package :\n\t1) Create a source archive\n\t2) Generate a SPEC File\n\t3) Build the package"));
+}*/
+
+// QPushButton* createSrcArchPushButton;
+void DistpartDialog::slotcreateSrcArchPushButtonPressed() {
+ kdDebug() << "Starting archive..." << endl;
+ QString dist = (getcustomProjectCheckBoxState() && getbzipCheckBoxState()) ? "application/x-bzip2" : "application/x-gzip";
+
+ QString filename = m_part->project()->projectDirectory() + "/" + getSourceName();
+
+ KTar tar(filename, dist);
+ if ( tar.open(IO_WriteOnly) )
+ {
+ //QStringList files = m_part->project()->distFiles();
+ KProgressDialog *prog = new KProgressDialog( 0, "dialog", i18n("Building Package"), "", true );
+ prog->show();
+ for( uint idx = 0; idx < srcDistFileListBox->numRows(); ++idx)
+ {
+ QString file = srcDistFileListBox->text(idx);
+ if ( !tar.addLocalFile( m_part->project()->projectDirectory() + "/" + file, getappNameFormatLineEditText() + "/" + file) )
+ {
+ kdDebug() << "Failed to write file " << file << endl;
+ }
+ else
+ {
+ prog->setLabel(i18n("Adding file: %1").arg( file) );
+ prog->progressBar()->setValue( (idx*100)/srcDistFileListBox->numRows() );
+ }
+ }
+ tar.close( );
+ prog->hide();
+ delete prog;
+ KMessageBox::information( this, i18n("Archive made at: %1").arg( filename ), i18n("Archive Done") );
+
+ }
+ else
+ {
+ kdDebug() << "Failed to open archive..." << endl;
+ }
+
+}
+
+// QPushButton* resetSrcPushButton;
+void DistpartDialog::slotresetSrcPushButtonPressed() {
+ srcDistFileListBox->clear();
+ loadSettings();
+}
+
+
+
+// QPushButton* genHTMLPushButton;
+void DistpartDialog::slotgenHTMLPushButtonPressed() {}
+
+// QPushButton* resetHTMLPushButton;
+void DistpartDialog::slotresetHTMLPushButtonPressed() {}
+
+// QToolButton* uploadAddFileToolButton;
+void DistpartDialog::slotuploadAddFileToolButtonPressed() {
+ uploadFileListBox->insertStringList(KFileDialog::getOpenFileNames());
+}
+
+// QToolButton* uploadRemoveToolButton;
+void DistpartDialog::slotuploadRemoveToolButtonPressed() {
+ for(unsigned int i=0; i< uploadFileListBox->count(); i++)
+ if ( uploadFileListBox->isSelected(i)) uploadFileListBox->removeItem(i);
+}
+
+// QPushButton* uploadSubmitPushButton;
+void DistpartDialog::slotuploadSubmitPushButtonPressed() {
+
+ if(getuploadftpkdeorgCheckBoxState() || getuploadAppsKDEcomCheckBoxState())
+ kdDebug() << "Implement ftp.kde.org & apps.kde.com ftp transfer" << endl;
+ else {
+ for(unsigned int i=0; i< uploadFileListBox->count(); i++)
+ KIO::NetAccess::copy(KURL::fromPathOrURL( uploadFileListBox->text(i) ),
+ KURL::fromPathOrURL( getuploadURLLineEditText() + uploadFileListBox->text(i).replace(QRegExp("[^/]*/"),"") ));
+ }
+}
+
+// QPushButton* uploadResetPushButton;
+void DistpartDialog::slotuploadResetPushButtonPressed() {
+ uploadFileListBox->clear();
+}
+
+// Connect Slots to the following widgets and add
+// accessors and mutators
+
+
+// QCheckBox* customProjectCheckBox;
+void DistpartDialog::slotcustomProjectCheckBoxChanged() {
+ kdDebug () << "New State" << customProjectCheckBox->isChecked() << endl;
+ sourceOptionsGroupBox->setEnabled( customProjectCheckBox->isChecked());
+}
+
+bool DistpartDialog::getcustomProjectCheckBoxState() {
+ return customProjectCheckBox->isChecked();
+}
+
+void DistpartDialog::setcustomProjectCheckBoxState(bool state) {
+ customProjectCheckBox->setChecked(state);
+}
+
+// QCheckBox* uploadCustomCheckBox;
+void DistpartDialog::slotuploadCustomCheckBoxChanged() {
+ uploadURLLineEdit->setEnabled( uploadCustomCheckBox->isChecked());
+}
+
+bool DistpartDialog::getuploadCustomCheckBoxState() {
+ return uploadCustomCheckBox->isChecked();
+}
+
+void DistpartDialog::setuploadCustomCheckBoxState(bool state) {
+ uploadCustomCheckBox->setChecked(state);
+}
+
+// Add accessors and mutators for the following
+
+// QCheckBox* bzipCheckBox;
+bool DistpartDialog::getbzipCheckBoxState() {
+ return bzipCheckBox->isChecked();
+}
+
+void DistpartDialog::setbzipCheckBoxState(bool state) {
+ bzipCheckBox->setChecked(state);
+}
+
+// QCheckBox* appIconCheckBox;
+bool DistpartDialog::getappIconCheckBoxState() {
+ return appIconCheckBox->isChecked();
+}
+
+void DistpartDialog::setappIconCheckBoxState(bool state) {
+ appIconCheckBox->setChecked(state);
+}
+
+// QCheckBox* genHTMLCheckBox;
+bool DistpartDialog::getgenHTMLCheckBoxState() {
+ return genHTMLCheckBox->isChecked();
+}
+
+void DistpartDialog::setgenHTMLCheckBoxState(bool state) {
+ genHTMLCheckBox->setChecked(state);
+}
+
+// QCheckBox* useRPMInfoCheckBox;
+bool DistpartDialog::getuseRPMInfoCheckBoxState() {
+ return useRPMInfoCheckBox->isChecked();
+}
+
+void DistpartDialog::setuseRPMInfoCheckBoxState(bool state) {
+ useRPMInfoCheckBox->setChecked(state);
+}
+
+// QCheckBox* uploadAppsKDEcomCheckBox;
+bool DistpartDialog::getuploadAppsKDEcomCheckBoxState() {
+ return uploadAppsKDEcomCheckBox->isChecked();
+}
+
+void DistpartDialog::setuploadAppsKDEcomCheckBoxState(bool state) {
+ uploadAppsKDEcomCheckBox->setChecked(state);
+}
+
+// QCheckBox* uploadftpkdeorgCheckBox;
+bool DistpartDialog::getuploadftpkdeorgCheckBoxState() {
+ return uploadftpkdeorgCheckBox->isChecked();
+}
+
+void DistpartDialog::setuploadftpkdeorgCheckBoxState(bool state) {
+ uploadftpkdeorgCheckBox->setChecked(state);
+}
+
+// QCheckBox* devPackageCheckBox;
+bool DistpartDialog::getdevPackageCheckBoxState() {
+ return devPackageCheckBox->isChecked();
+}
+
+void DistpartDialog::setdevPackageCheckBoxState(bool state) {
+ devPackageCheckBox->setChecked(state);
+}
+
+// QCheckBox* docsPackageCheckBox;
+bool DistpartDialog::getdocsPackageCheckBoxState() {
+ return docsPackageCheckBox->isChecked();
+}
+
+void DistpartDialog::setdocsPackageCheckBoxState(bool state) {
+ docsPackageCheckBox->setChecked(state);
+}
+
+// QLineEdit* archNameFormatLineEdit;
+QString DistpartDialog::getarchNameFormatLineEditText() {
+ return archNameFormatLineEdit->text();
+}
+
+void DistpartDialog::setarchNameFormatLineEditText(QString text) {
+ archNameFormatLineEdit->setText(text);
+}
+
+// QLineEdit* appNameLineEdit;
+QString DistpartDialog::getappNameFormatLineEditText() {
+ return appNameLineEdit->text();
+}
+
+void DistpartDialog::setappNameFormatLineEditText(QString text) {
+ appNameLineEdit->setText(text);
+}
+
+// QLineEdit* summaryLineEdit;
+QString DistpartDialog::getsummaryLineEditText() {
+ return summaryLineEdit->text();
+}
+
+void DistpartDialog::setsummaryLineEditText(QString text) {
+ summaryLineEdit->setText(text);
+}
+
+// QLineEdit* groupLineEdit;
+QString DistpartDialog::getgroupLineEditText() {
+ return groupLineEdit->text();
+}
+
+void DistpartDialog::setgroupLineEditText(QString text) {
+ groupLineEdit->setText(text);
+}
+
+// QLineEdit* releaseLineEdit;
+QString DistpartDialog::getreleaseLineEditText() {
+ return releaseLineEdit->text();
+}
+
+void DistpartDialog::setreleaseLineEditText(QString text) {
+ releaseLineEdit->setText(text);
+}
+
+// QLineEdit* VersionLineEdit;
+QString DistpartDialog::getversionLineEditText() {
+ return versionLineEdit->text();
+}
+
+void DistpartDialog::setversionLineEditText(QString text) {
+ versionLineEdit->setText( text );
+}
+
+// QLineEdit* VendorLineEdit;
+QString DistpartDialog::getvendorLineEditText() {
+ return vendorLineEdit->text();
+}
+
+void DistpartDialog::setvendorLineEditText(QString text) {
+ vendorLineEdit->setText(text);
+}
+
+// QLineEdit* LicenseLineEdit;
+QString DistpartDialog::getlicenseLineEditText() {
+ return licenseLineEdit->text();
+}
+
+void DistpartDialog::setlicenseLineEditText(QString text) {
+ licenseLineEdit->setText(text);
+}
+
+// QLineEdit* uploadURLLineEdit;
+QString DistpartDialog::getuploadURLLineEditText() {
+ return uploadURLLineEdit->text();
+}
+
+void DistpartDialog::setuploadURLLineEditText(QString text) {
+ uploadURLLineEdit->setText(text);
+}
+
+// QLineEdit* PackagerLineEdit;
+QString DistpartDialog::getpackagerLineEditText() {
+ return packagerLineEdit->text();
+}
+
+void DistpartDialog::setpackagerLineEditText(QString text) {
+ packagerLineEdit->setText(text);
+}
+
+// QComboBox* archComboBox;
+QString DistpartDialog::getarchComboBoxText() {
+ return archComboBox->currentText();
+}
+
+int DistpartDialog::getarchComboBoxItem() {
+ return archComboBox->currentItem();
+}
+
+void DistpartDialog::setarchComboBoxItem(int item) {
+ archComboBox->setCurrentItem( item );
+}
+
+// QListBox* uploadFileListBox;
+QString DistpartDialog::getuploadFileListBoxText() {
+ return uploadFileListBox->currentText();
+}
+
+int DistpartDialog::getuploadFileListBoxItem() {
+ return uploadFileListBox->currentItem();
+}
+
+void DistpartDialog::setuploadFileListBoxItem(int item) {
+ uploadFileListBox->setCurrentItem( item);
+}
+
+// QListBox* srcDistFileListBox;
+QString DistpartDialog::getsrcDistFileListBoxText() {
+ return srcDistFileListBox->currentText ();
+}
+
+int DistpartDialog::getsrcDistFileListBoxItem() {
+ return srcDistFileListBox->currentItem ();
+}
+
+void DistpartDialog::setsrcDistFileListBoxItem(int item) {
+ srcDistFileListBox->setCurrentItem( item );
+}
+
+// QMultiLineEdit* projectDescriptionMultilineEdit;
+QString DistpartDialog::getprojectDescriptionMultilineEditText() {
+ return projectDescriptionMultilineEdit->text();
+}
+
+void DistpartDialog::setprojectDescriptionMultilineEditText(QString text) {
+ projectDescriptionMultilineEdit->setText(text);
+}
+
+QString DistpartDialog::getprojectChangelogMultilineEditText() {
+ return projectChangelogMultilineEdit->text();
+}
+
+void DistpartDialog::setprojectChangelogMultilineEditText(QString text) {
+ projectChangelogMultilineEdit->setText(text);
+}
+
+QString DistpartDialog::getSourceName() {
+ QString name = (getcustomProjectCheckBoxState()) ? getarchNameFormatLineEditText() : QString("%n-%v");
+ name += (getcustomProjectCheckBoxState() && getbzipCheckBoxState()) ? ".tar.bz2" : ".tar.gz";
+ return name.replace(QRegExp("%n"),getappNameFormatLineEditText())
+ .replace(QRegExp("%v"),getversionLineEditText())
+ .replace(QRegExp("%d"),QDate::currentDate().toString("yyyyMMdd"));
+}
+
+void DistpartDialog::loadSettings() {
+ QDomDocument &dom = *m_part->projectDom();
+
+ srcDistFileListBox->insertStringList( m_part->project()->distFiles() );
+
+ // First Tab
+ setcustomProjectCheckBoxState(DomUtil::readBoolEntry(dom,"/dist/custom",false));
+ slotcustomProjectCheckBoxChanged();
+ setbzipCheckBoxState(DomUtil::readBoolEntry(dom,"/dist/bzip",false));
+ setarchNameFormatLineEditText(DomUtil::readEntry(dom,"/dist/archname"));
+
+
+ // Second Tab
+ setappNameFormatLineEditText(DomUtil::readEntry(dom,"/dist/appname", m_part->project()->projectName() ));
+ setversionLineEditText(DomUtil::readEntry(dom,"/dist/version",DomUtil::readEntry(dom,"/general/version")));
+ setreleaseLineEditText(DomUtil::readEntry(dom,"/dist/release"));
+ setvendorLineEditText(DomUtil::readEntry(dom,"/dist/vendor"));
+ setlicenseLineEditText(DomUtil::readEntry(dom,"/dist/licence"));
+ setsummaryLineEditText(DomUtil::readEntry(dom,"/dist/summary"));
+ setgroupLineEditText(DomUtil::readEntry(dom,"/dist/group"));
+ setpackagerLineEditText(DomUtil::readEntry(dom,"/dist/packager"));
+ setprojectDescriptionMultilineEditText(DomUtil::readEntry(dom,"/dist/description",DomUtil::readEntry(dom,"/general/description")));
+ setprojectChangelogMultilineEditText(DomUtil::readEntry(dom,"/dist/changelog"));
+ setdevPackageCheckBoxState(DomUtil::readBoolEntry(dom,"/dist/devpackage"));
+ setdocsPackageCheckBoxState(DomUtil::readBoolEntry(dom,"/dist/docspackage"));
+ setappIconCheckBoxState(DomUtil::readBoolEntry(dom,"/dist/appicon"));
+ setarchComboBoxItem(DomUtil::readIntEntry(dom,"/dist/arch"));
+
+ // Third Tab
+ setgenHTMLCheckBoxState(DomUtil::readBoolEntry(dom,"/dist/genHTML"));
+ setuseRPMInfoCheckBoxState(DomUtil::readBoolEntry(dom,"/dist/useRPM"));
+ setuploadftpkdeorgCheckBoxState(DomUtil::readBoolEntry(dom,"/dist/ftpkde"));
+ setuploadAppsKDEcomCheckBoxState(DomUtil::readBoolEntry(dom,"/dist/appskde"));
+ setuploadCustomCheckBoxState(DomUtil::readBoolEntry(dom,"/dist/custom"));
+ slotuploadCustomCheckBoxChanged();
+ setuploadURLLineEditText(DomUtil::readEntry(dom,"/dist/url"));
+}
+
+void DistpartDialog::storeSettings() {
+ QDomDocument &dom = *m_part->projectDom();
+
+ // First Tab
+ DomUtil::writeBoolEntry(dom,"/dist/custom",getcustomProjectCheckBoxState());
+ DomUtil::writeBoolEntry(dom,"/dist/bzip",getbzipCheckBoxState());
+ DomUtil::writeEntry(dom,"/dist/archname",getarchNameFormatLineEditText());
+
+ // Second Tab
+ DomUtil::writeEntry(dom,"/dist/appname",getappNameFormatLineEditText());
+ DomUtil::writeEntry(dom,"/dist/version",getversionLineEditText());
+ DomUtil::writeEntry(dom,"/dist/release",getreleaseLineEditText());
+ DomUtil::writeEntry(dom,"/dist/vendor",getvendorLineEditText());
+ DomUtil::writeEntry(dom,"/dist/licence",getlicenseLineEditText());
+ DomUtil::writeEntry(dom,"/dist/summary",getsummaryLineEditText());
+ DomUtil::writeEntry(dom,"/dist/group",getgroupLineEditText());
+ DomUtil::writeEntry(dom,"/dist/packager",getpackagerLineEditText());
+ DomUtil::writeEntry(dom,"/dist/description",getprojectDescriptionMultilineEditText());
+ DomUtil::writeEntry(dom,"/dist/changelog",getprojectChangelogMultilineEditText());
+ DomUtil::writeBoolEntry(dom,"/dist/devpackage",getdevPackageCheckBoxState());
+ DomUtil::writeBoolEntry(dom,"/dist/docspackage",getdocsPackageCheckBoxState());
+ DomUtil::writeBoolEntry(dom,"/dist/appicon",getappIconCheckBoxState());
+ DomUtil::writeIntEntry(dom,"/dist/arch",getarchComboBoxItem());
+
+ // Third Tab
+ DomUtil::writeBoolEntry(dom,"/dist/genHTML",getgenHTMLCheckBoxState());
+ DomUtil::writeBoolEntry(dom,"/dist/useRPM",getuseRPMInfoCheckBoxState());
+ DomUtil::writeBoolEntry(dom,"/dist/ftpkde",getuploadftpkdeorgCheckBoxState());
+ DomUtil::writeBoolEntry(dom,"/dist/appskde",getuploadAppsKDEcomCheckBoxState());
+ DomUtil::writeBoolEntry(dom,"/dist/custom",getuploadCustomCheckBoxState());
+ DomUtil::writeEntry(dom,"/dist/url",getuploadURLLineEditText());
+}
+// Populate Spec Data from UI;
+void DistpartDialog::setPackageData()
+{
+ m_spec->setAppRevision( releaseLineEdit->text());
+ m_spec->setAppName( appNameLineEdit->text());
+ m_spec->setAppVendor( vendorLineEdit->text());
+ m_spec->setAppLicense( licenseLineEdit->text());
+ m_spec->setAppSummary( summaryLineEdit->text());
+ m_spec->setAppPackager( packagerLineEdit->text());
+ m_spec->setAppVersion( versionLineEdit->text());
+ m_spec->setAppGroup( groupLineEdit->text());
+ m_spec->setAppDescription( projectDescriptionMultilineEdit->text());
+ m_spec->setAppChangelog( projectChangelogMultilineEdit->text());
+}
+// Populate UI from Spec data;
+void DistpartDialog::getPackageData()
+{
+ releaseLineEdit->setText(m_spec->getAppRevision());
+ appNameLineEdit->setText(m_spec->getAppName());
+ vendorLineEdit->setText(m_spec->getAppVendor());
+ licenseLineEdit->setText(m_spec->getAppLicense( ));
+ summaryLineEdit->setText(m_spec->getAppSummary( ));
+ packagerLineEdit->setText(m_spec->getAppPackager( ));
+ versionLineEdit->setText(m_spec->getAppVersion());
+ groupLineEdit->setText(m_spec->getAppGroup( ));
+ projectDescriptionMultilineEdit->setText(m_spec->getAppDescription( ));
+ projectChangelogMultilineEdit->setText(m_spec->getAppChangelog( ));
+}
+void DistpartDialog::slotbuildAllPushButtonPressed( )
+{
+ setPackageData();
+ m_spec->slotbuildAllPushButtonPressed();
+}
+
+void DistpartDialog::slotexportSPECPushButtonPressed( )
+{
+ setPackageData();
+ m_spec->slotexportSPECPushButtonPressed();
+}
+
+void DistpartDialog::slotimportSPECPushButtonPressed( )
+{
+ m_spec->slotimportSPECPushButtonPressed();
+ getPackageData();
+}
+
+void DistpartDialog::slotsrcPackagePushButtonPressed( )
+{
+ setPackageData();
+ m_spec->slotsrcPackagePushButtonPressed();
+}
+
+
+void DistpartDialog::slotAddFileButtonPressed(){
+ QStringList filenames = KFileDialog::getOpenFileNames();
+ for(uint count =0; count< filenames.size(); count++){
+ QString base = m_part->project()->projectDirectory() +"/";
+ srcDistFileListBox->insertItem(filenames[count].remove(base));
+ }
+}
+
+void DistpartDialog::slotRemoveFile(QListBoxItem *item){
+ if ( KMessageBox::Yes == KMessageBox::warningYesNo( this, i18n("Remove %1").arg( item->text() ), i18n("Remove File") )){
+ for(uint count =0; count< srcDistFileListBox->numRows(); count++){
+ if ( item == srcDistFileListBox->item(count)){
+ srcDistFileListBox->removeItem(count);
+ break;
+ }
+ }
+ }
+}
+
+#include "distpart_widget.moc"