diff options
| author | Robert Jonsson <spamatica@gmail.com> | 2010-12-27 00:39:58 +0000 |
|---|---|---|
| committer | Robert Jonsson <spamatica@gmail.com> | 2010-12-27 00:39:58 +0000 |
| commit | 8092776083f70a25b8615c7b8d6299e2daba8865 (patch) | |
| tree | 43b919a724811690dfbff86c043ced76e632e2f8 /muse2/muse/widgets | |
| parent | 64e73dd6d68da03c6c7fad0d314f237703e3996d (diff) | |
create new project dialog added
Diffstat (limited to 'muse2/muse/widgets')
| -rw-r--r-- | muse2/muse/widgets/CMakeLists.txt | 9 | ||||
| -rw-r--r-- | muse2/muse/widgets/filedialog.cpp | 10 | ||||
| -rw-r--r-- | muse2/muse/widgets/filedialog.h | 9 | ||||
| -rw-r--r-- | muse2/muse/widgets/projectcreate.ui | 145 | ||||
| -rw-r--r-- | muse2/muse/widgets/projectcreateimpl.cpp | 63 | ||||
| -rw-r--r-- | muse2/muse/widgets/projectcreateimpl.h | 26 |
6 files changed, 252 insertions, 10 deletions
diff --git a/muse2/muse/widgets/CMakeLists.txt b/muse2/muse/widgets/CMakeLists.txt index 24785709..92eacc66 100644 --- a/muse2/muse/widgets/CMakeLists.txt +++ b/muse2/muse/widgets/CMakeLists.txt @@ -55,6 +55,7 @@ QT4_WRAP_CPP (widget_mocs popupmenu.h # posedit.h poslabel.h + projectcreateimpl.h scrollscale.h shortcutcapturedialog.h shortcutconfig.h @@ -98,14 +99,15 @@ file (GLOB widgets_ui_files midisync.ui mittransposebase.ui mixdowndialogbase.ui - mtrackinfobase.ui + mtrackinfobase.ui + projectcreate.ui shortcutcapturedialogbase.ui shortcutconfigbase.ui songinfo.ui synthconfigbase.ui transformbase.ui transposebase.ui - velocitybase.ui + velocitybase.ui ) QT4_WRAP_UI (widget_ui_headers ${widgets_ui_files}) @@ -147,7 +149,8 @@ file (GLOB widgets_source_files pitchlabel.cpp popupmenu.cpp # posedit.cpp - poslabel.cpp + poslabel.cpp + projectcreateimpl.cpp scldiv.cpp scldraw.cpp sclif.cpp diff --git a/muse2/muse/widgets/filedialog.cpp b/muse2/muse/widgets/filedialog.cpp index 81791f6b..02d4efb9 100644 --- a/muse2/muse/widgets/filedialog.cpp +++ b/muse2/muse/widgets/filedialog.cpp @@ -308,15 +308,19 @@ QString getFilterExtension(const QString &filter) //--------------------------------------------------------- // getOpenFileName //--------------------------------------------------------- - QString getOpenFileName(const QString &startWith, - //const char** filters, QWidget* parent, const QString& name, bool* all) - const QStringList& filters, QWidget* parent, const QString& name, bool* all) + const QStringList& filters, QWidget* parent, const QString& name, bool* all, MFileDialog::ViewType viewType) { QString initialSelection; // FIXME Tim. MFileDialog *dlg = new MFileDialog(startWith, QString::null, parent, false); dlg->setNameFilters(filters); dlg->setWindowTitle(name); + if (viewType == MFileDialog::GLOBAL_VIEW) + dlg->globalToggled(true); + else if (viewType == MFileDialog::PROJECT_VIEW) + dlg->projectToggled(true); + else if (viewType == MFileDialog::USER_VIEW) + dlg->userToggled(true); if (all) { dlg->buttons.loadAllGroup->setVisible(true); //dlg->buttons.globalButton->setVisible(false); diff --git a/muse2/muse/widgets/filedialog.h b/muse2/muse/widgets/filedialog.h index a7c8a1f7..0d3dfc8c 100644 --- a/muse2/muse/widgets/filedialog.h +++ b/muse2/muse/widgets/filedialog.h @@ -33,19 +33,20 @@ class FileDialogButtonsWidget : public QWidget, public Ui::FileDialogButtons class MFileDialog : public QFileDialog { Q_OBJECT - enum ViewType { GLOBAL_VIEW, PROJECT_VIEW, USER_VIEW }; //!< The three different viewtypes - static ViewType lastViewUsed; static QString lastUserDir, lastGlobalDir; bool showButtons; QString baseDir; private slots: + void directoryChanged(const QString& directory); + public slots: void globalToggled(bool); void userToggled(bool); void projectToggled(bool); - void directoryChanged(const QString& directory); public: + enum ViewType { GLOBAL_VIEW, PROJECT_VIEW, USER_VIEW }; //!< The three different viewtypes + static ViewType lastViewUsed; FileDialogButtonsWidget buttons; MFileDialog(const QString& dir, const QString& filter = QString::null, QWidget* parent = 0, bool writeFlag = false); @@ -78,7 +79,7 @@ QString getSaveFileName(const QString& startWidth, const QStringList& filters, QWidget* parent, const QString& name); //QString getOpenFileName(const QString& startWidth, const char** filter, QString getOpenFileName(const QString& startWidth, const QStringList& filters, - QWidget* parent, const QString& name, bool* openAll); + QWidget* parent, const QString& name, bool* openAll, MFileDialog::ViewType viewType = MFileDialog::PROJECT_VIEW); //QString getImageFileName(const QString& startWith, const char** filters, QString getImageFileName(const QString& startWith, const QStringList& filters, QWidget* parent, const QString& name); diff --git a/muse2/muse/widgets/projectcreate.ui b/muse2/muse/widgets/projectcreate.ui new file mode 100644 index 00000000..7cb73a82 --- /dev/null +++ b/muse2/muse/widgets/projectcreate.ui @@ -0,0 +1,145 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>ProjectCreate</class> + <widget class="QDialog" name="ProjectCreate"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>569</width> + <height>340</height> + </rect> + </property> + <property name="windowTitle"> + <string>Create Project</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <item> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>Project Name:</string> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <item> + <widget class="QLineEdit" name="projectNameEdit"/> + </item> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>75</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_4"> + <item> + <widget class="QLabel" name="label"> + <property name="text"> + <string>Project Path to song file:</string> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QCheckBox" name="createFolderCheckbox"> + <property name="text"> + <string>Create project folder (always use for audio projects)</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QLineEdit" name="storageDirEdit"> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="browseDirButton"> + <property name="text"> + <string>Browse</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>Song information:</string> + </property> + </widget> + </item> + <item> + <widget class="QPlainTextEdit" name="commentEdit"/> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>ProjectCreate</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>316</x> + <y>260</y> + </hint> + <hint type="destinationlabel"> + <x>286</x> + <y>274</y> + </hint> + </hints> + </connection> + </connections> +</ui> diff --git a/muse2/muse/widgets/projectcreateimpl.cpp b/muse2/muse/widgets/projectcreateimpl.cpp new file mode 100644 index 00000000..5e81cfe4 --- /dev/null +++ b/muse2/muse/widgets/projectcreateimpl.cpp @@ -0,0 +1,63 @@ +#include <stdio.h> +#include <qfiledialog.h> +#include <qdir.h> +#include "projectcreateimpl.h" +#include "gconfig.h" +#include "globals.h" +#include "app.h" + +ProjectCreateImpl::ProjectCreateImpl(QWidget *parent) : + QDialog(parent) +{ + setupUi(this); + + createFolderCheckbox->setChecked(config.projectStoreInFolder); + connect(browseDirButton,SIGNAL(clicked()), this, SLOT(selectDirectory())); + connect(projectNameEdit,SIGNAL(textChanged(QString)), this, SLOT(updateDirectoryPath())); + connect(createFolderCheckbox,SIGNAL(clicked()), this, SLOT(updateDirectoryPath())); + connect(buttonBox, SIGNAL(accepted()), this, SLOT(ok())); +#if QT_VERSION >= 0x040700 + projectNameEdit->setPlaceholderText("<Project Name>"); + commentEdit->setPlaceholderText("<Add information about project here>"); +#endif + directoryPath = config.projectBaseFolder; + updateDirectoryPath(); + show(); +} + +void ProjectCreateImpl::selectDirectory() +{ + QFileDialog qfd; + qfd.selectFile(directoryPath); + qfd.setFileMode(QFileDialog::DirectoryOnly); + if (qfd.exec() == QDialog::Rejected) { + return; + } + directoryPath=qfd.selectedFiles().first(); + updateDirectoryPath(); +} + +void ProjectCreateImpl::updateDirectoryPath() +{ + if (createFolderCheckbox->isChecked()) { + storageDirEdit->setText(directoryPath + projectNameEdit->text() + "/" + projectNameEdit->text() + ".med"); + } else { + storageDirEdit->setText(directoryPath + projectNameEdit->text() + ".med"); + } +} + +QString ProjectCreateImpl::getProjectPath() +{ + return storageDirEdit->text(); +} +QString ProjectCreateImpl::getSongInfo() +{ + return commentEdit->toPlainText(); +} +void ProjectCreateImpl::ok() +{ + config.projectStoreInFolder = createFolderCheckbox->isChecked(); + config.projectBaseFolder = directoryPath; + muse->changeConfig(true); + emit accept(); +} diff --git a/muse2/muse/widgets/projectcreateimpl.h b/muse2/muse/widgets/projectcreateimpl.h new file mode 100644 index 00000000..77547c1a --- /dev/null +++ b/muse2/muse/widgets/projectcreateimpl.h @@ -0,0 +1,26 @@ +#ifndef PROJECTCREATEIMPL_H +#define PROJECTCREATEIMPL_H + +#include <QDialog> +#include "ui_projectcreate.h" + +class ProjectCreateImpl : public QDialog, Ui::ProjectCreate +{ +Q_OBJECT + + QString directoryPath; +public: + explicit ProjectCreateImpl(QWidget *parent = 0); + QString getProjectPath(); + QString getSongInfo(); + +signals: + +public slots: + void updateDirectoryPath(); + void selectDirectory(); + void ok(); + +}; + +#endif // PROJECTCREATEIMPL_H |
