Logo Search packages:      
Sourcecode: kdenlive version File versions

newproject.cpp

/***************************************************************************
                          newproject  -  description
                             -------------------
    begin                : Wed Jun 28 2006
    copyright            : (C) 2006 by Jason Wood
    email                : jasonwood@blueyonder.co.uk
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   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.                                   *
 *                                                                         *
 ***************************************************************************/

#include <qstringlist.h>
#include <qtabwidget.h>
#include <qpushbutton.h>

#include <klistbox.h>
#include <klineedit.h>
#include <kurlrequester.h>
#include <kfiledialog.h>
#include <klocale.h>
#include <kmessagebox.h>
#include <kio/netaccess.h>
#include <kdenlivesettings.h>

#include "newproject.h"

namespace Gui {

    newProject::newProject(QString defaultFolder, QStringList list, QWidget *parent, const char *name):newProject_UI(parent, name)
    {
      recentFiles->insertStringList(list);
      m_isNewFile = false;
      m_defaultFolder = defaultFolder;
      projectFolder->setMode(KFile::Directory);
      projectFolder->setURL(defaultFolder);
      if (!list.isEmpty()) recentFiles->setCurrentItem(0);
      projectName->setFocus();
      connect(tabWidget, SIGNAL(currentChanged ( QWidget * )), this, SLOT(adjustButton()));
      connect(projectName, SIGNAL(textChanged (const QString &)), this, SLOT(adjustFolderName()));
      connect(projectFolder, SIGNAL(textChanged (const QString &)), this, SLOT(adjustButton()));
      connect(projectFolder, SIGNAL(urlSelected(const QString&)), this, SLOT(checkFolderName()));
      connect(buttonQuit, SIGNAL(clicked ()), this, SLOT(reject()));
      connect(buttonOpen, SIGNAL(clicked ()), this, SLOT(openProject()));
      connect(buttonOk, SIGNAL(clicked ()), this, SLOT(checkFile()));
      connect(recentFiles, SIGNAL(doubleClicked(QListBoxItem *, const QPoint &)), this, SLOT(checkFile()));
    }

    newProject::~newProject() {}

    void newProject::adjustFolderName()
    {
      if (projectName->text().isEmpty()) buttonOk->setEnabled(false);
      else if (!projectFolder->url().isEmpty()) buttonOk->setEnabled(true);
      /*QString folderUrl = projectFolder->url();
      folderUrl = folderUrl.left(folderUrl.findRev("/", -1) + 1);
      projectFolder->setURL(folderUrl + projectName->text());*/
    }

    void newProject::checkFolderName()
    {
      if (!projectFolder->url().endsWith("/"))
            projectFolder->setURL(projectFolder->url() + "/");
      
    }

    void newProject::adjustButton()
    {
      if (tabWidget->currentPageIndex() != 0 && recentFiles->count()>0) buttonOk->setEnabled(true);
    }

    void newProject::openProject()
    {
      KURL url = KFileDialog::getOpenURL(QString(), i18n( "*.kdenlive|Kdenlive Project Files (*.kdenlive)" ), this, i18n("Open File..."));
      if (!url.isEmpty()) {
            m_selectedProject = url;
            accept();
      }
    }

    void newProject::checkFile()
    {
      if (tabWidget->currentPageIndex() == 0) {
            m_isNewFile = true;
            /*if (!KIO::NetAccess::exists(KURL(KdenliveSettings::defaultfolder()), false, this)) {
                  KIO::NetAccess::mkdir(KURL(KdenliveSettings::defaultfolder()), this);
            }
            if (!KIO::NetAccess::exists(KURL(projectFolder->url()), false, this)) {
                  KIO::NetAccess::mkdir(KURL(projectFolder->url()), this);
                  KIO::NetAccess::mkdir(KURL(projectFolder->url() + "/tmp/"), this);
                  if (!KIO::NetAccess::exists(KURL(projectFolder->url()), false, this)) {
                        KMessageBox::sorry(this, i18n("Unable to access the selected folder.\nPlease chose another project folder."));
                        return;
                  }
            }*/
            accept();
      }
      else {
            m_selectedProject = KURL(recentFiles->currentText());
            accept();
      }
    }

    KURL newProject::selectedFile()
    {
      return m_selectedProject;
    }

    bool newProject::isNewFile()
    {
      return m_isNewFile;
    }

    QString newProject::projectFolderPath()
    {
      return QString(KURL(projectFolder->url()).path());
    }

}

Generated by  Doxygen 1.6.0   Back to index