| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 | 
							- #include "QMacInstallDialog.h"
 
- #include <QMessageBox>
 
- #include "cmSystemTools.h"
 
- #include <iostream>
 
- #include <QFileDialog>
 
- #include "ui_MacInstallDialog.h"
 
- class QMacInstallDialog::QMacInstallDialogInternals : public Ui::Dialog
 
- {
 
- public:
 
- };
 
- QMacInstallDialog::QMacInstallDialog(QWidget*w)
 
-   :QDialog(w)
 
- {
 
-   this->Internals = new QMacInstallDialogInternals;
 
-   this->Internals->setupUi(this);
 
-   QObject::connect(this->Internals->choosePathButton, SIGNAL(pressed()), 
 
-                    this, SLOT(ShowBrowser()));
 
-   QObject::connect(this->Internals->skipInstallButton, SIGNAL(pressed()), 
 
-                    this, SLOT(SkipInstall()));
 
-   QObject::connect(this->Internals->doInstallButton, SIGNAL(pressed()), 
 
-                    this, SLOT(DoInstall()));
 
-   this->Internals->InstallPrefix->setText("/usr/bin/");
 
- }
 
- QMacInstallDialog::~QMacInstallDialog()
 
- {
 
-   delete this->Internals;
 
- }
 
- void QMacInstallDialog::DoInstall()
 
- {  
 
-   QDir installDir(this->Internals->InstallPrefix->text());
 
-   QString installTo = installDir.path();
 
-   if(!cmSystemTools::FileExists(installTo.toAscii().data()))
 
-     {
 
-     QString message = tr("Build install does not exist, "
 
-                          "should I create it?")
 
-                       + "\n\n"
 
-                       + tr("Directory: ");
 
-     message += installDir.path();
 
-     QString title = tr("Create Directory");
 
-     QMessageBox::StandardButton btn;
 
-     btn = QMessageBox::information(this, title, message, 
 
-                                    QMessageBox::Yes | QMessageBox::No);
 
-     if(btn == QMessageBox::Yes)
 
-       {
 
-       cmSystemTools::MakeDirectory(installTo.toAscii().data());
 
-       }
 
-     }
 
-   QDir cmExecDir(QApplication::applicationDirPath());
 
-   cmExecDir.cd("../bin");
 
-   QFileInfoList list = cmExecDir.entryInfoList();
 
-   for (int i = 0; i < list.size(); ++i) 
 
-     {
 
-     QFileInfo fileInfo = list.at(i);
 
-     QString filename = fileInfo.fileName();
 
-     if(filename.size() && filename[0] == '.')
 
-       {
 
-       continue;
 
-       }
 
-     QString file = fileInfo.absoluteFilePath();
 
-     QString newName = installTo;
 
-     newName += "/";
 
-     newName += filename;
 
-     // Remove the old files
 
-     if(cmSystemTools::FileExists(newName.toAscii().data()))
 
-       {
 
-       std::cout << "rm [" << newName.toAscii().data() << "]\n";
 
-       if(!cmSystemTools::RemoveFile(newName.toAscii().data()))
 
-         {
 
-         QString message = tr("Failed to remove file "
 
-                              "installation may be incomplete: ");
 
-         message += newName.toAscii().data();
 
-         QString title = tr("Error Removing file");
 
-         QMessageBox::StandardButton btn =
 
-           QMessageBox::critical(this, title, message, 
 
-                                 QMessageBox::Ok|QMessageBox::Abort);
 
-         if(btn == QMessageBox::Abort)
 
-           {
 
-           return;
 
-           }
 
-         }
 
-       }
 
-     std::cout << "ln -s [" << file.toAscii().data() << "] [";
 
-     std::cout << newName.toAscii().data() << "]\n";
 
-     if(!cmSystemTools::CreateSymlink(file.toAscii().data(),
 
-                                      newName.toAscii().data()))
 
-       {
 
-       QString message = tr("Failed create symlink "
 
-                            "installation may be incomplete: ");
 
-       message += newName.toAscii().data();
 
-       QString title = tr("Error Creating Symlink");
 
-       QMessageBox::StandardButton btn =
 
-         QMessageBox::critical(this, title, message, 
 
-                               QMessageBox::Ok|QMessageBox::Abort);
 
-       if(btn == QMessageBox::Abort)
 
-         {
 
-         return;
 
-         }
 
-       }
 
-     }
 
-   this->done(0);
 
- }
 
- void QMacInstallDialog::SkipInstall()
 
- {
 
-   this->done(0);
 
- }
 
- void QMacInstallDialog::ShowBrowser()
 
- {
 
-   QString dir = QFileDialog::getExistingDirectory(this, 
 
-     tr("Enter Install Prefix"), this->Internals->InstallPrefix->text());
 
-   if(!dir.isEmpty())
 
-     {
 
-     this->Internals->InstallPrefix->setText(dir);
 
-     }
 
- }
 
 
  |