|
@@ -1,121 +0,0 @@
|
|
|
-#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(clicked(bool)),
|
|
|
- this, SLOT(ShowBrowser()));
|
|
|
- QObject::connect(this->Internals->skipInstallButton, SIGNAL(clicked(bool)),
|
|
|
- this, SLOT(SkipInstall()));
|
|
|
- QObject::connect(this->Internals->doInstallButton, SIGNAL(clicked(bool)),
|
|
|
- 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.toLocal8Bit().data()))
|
|
|
- {
|
|
|
- QString message = tr("Build install does not exist, "
|
|
|
- "should I create it?\n\n"
|
|
|
- "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.toLocal8Bit().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.toLocal8Bit().data()))
|
|
|
- {
|
|
|
- std::cout << "rm [" << newName.toLocal8Bit().data() << "]\n";
|
|
|
- if(!cmSystemTools::RemoveFile(newName.toLocal8Bit().data()))
|
|
|
- {
|
|
|
- QString message = tr("Failed to remove file "
|
|
|
- "installation may be incomplete: ");
|
|
|
- message += newName;
|
|
|
- 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.toLocal8Bit().data() << "] [";
|
|
|
- std::cout << newName.toLocal8Bit().data() << "]\n";
|
|
|
- if(!cmSystemTools::CreateSymlink(file.toLocal8Bit().data(),
|
|
|
- newName.toLocal8Bit().data()))
|
|
|
- {
|
|
|
- QString message = tr("Failed create symlink "
|
|
|
- "installation may be incomplete: ");
|
|
|
- message += newName;
|
|
|
- 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);
|
|
|
- }
|
|
|
-}
|