summaryrefslogtreecommitdiff
path: root/muse2/muse/widgets
diff options
context:
space:
mode:
authorRobert Jonsson <spamatica@gmail.com>2010-12-27 00:39:58 +0000
committerRobert Jonsson <spamatica@gmail.com>2010-12-27 00:39:58 +0000
commit8092776083f70a25b8615c7b8d6299e2daba8865 (patch)
tree43b919a724811690dfbff86c043ced76e632e2f8 /muse2/muse/widgets
parent64e73dd6d68da03c6c7fad0d314f237703e3996d (diff)
create new project dialog added
Diffstat (limited to 'muse2/muse/widgets')
-rw-r--r--muse2/muse/widgets/CMakeLists.txt9
-rw-r--r--muse2/muse/widgets/filedialog.cpp10
-rw-r--r--muse2/muse/widgets/filedialog.h9
-rw-r--r--muse2/muse/widgets/projectcreate.ui145
-rw-r--r--muse2/muse/widgets/projectcreateimpl.cpp63
-rw-r--r--muse2/muse/widgets/projectcreateimpl.h26
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