[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src/traverso dialogs/MarkerDialog.cpp ...
From: |
Nicola Doebelin |
Subject: |
[Traverso-commit] traverso/src/traverso dialogs/MarkerDialog.cpp ... |
Date: |
Mon, 09 Apr 2007 14:00:58 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Nicola Doebelin <n_doebelin> 07/04/09 14:00:58
Modified files:
src/traverso/dialogs: MarkerDialog.cpp MarkerDialog.h
src/traverso/dialogs/project: ProjectManagerDialog.cpp
src/traverso/songcanvas: TimeLineView.cpp TimeLineView.h
src/traverso/ui: MarkerDialog.ui ProjectManagerDialog.ui
Log message:
various fixes to markers
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/MarkerDialog.cpp?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/MarkerDialog.h?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/project/ProjectManagerDialog.cpp?cvsroot=traverso&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TimeLineView.cpp?cvsroot=traverso&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TimeLineView.h?cvsroot=traverso&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/MarkerDialog.ui?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/ProjectManagerDialog.ui?cvsroot=traverso&r1=1.8&r2=1.9
Patches:
Index: dialogs/MarkerDialog.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/dialogs/MarkerDialog.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- dialogs/MarkerDialog.cpp 25 Mar 2007 20:01:09 -0000 1.3
+++ dialogs/MarkerDialog.cpp 9 Apr 2007 14:00:57 -0000 1.4
@@ -32,6 +32,10 @@
#include <Marker.h>
#include <Utils.h>
#include <QDebug>
+#include <QTextStream>
+#include <QFileDialog>
+#include <QDateTime>
+#include <AddRemove.h>
MarkerDialog::MarkerDialog(QWidget * parent)
: QDialog(parent)
@@ -49,7 +53,7 @@
lineEditPosition->setInputMask(mask);
// hide the first column if necessary
- markersTreeWidget->header()->setSectionHidden(0,
!checkBoxAllSongs->isChecked());
+ markersTreeWidget->header()->setSectionHidden(0, true);
// connect signals which require an update of the song list
connect(&pm(), SIGNAL(projectLoaded(Project*)), this,
SLOT(set_project(Project*)));
@@ -58,7 +62,6 @@
// connect signals which require an update of the treeWidget's items
connect(comboBoxDisplaySong, SIGNAL(currentIndexChanged(int)), this,
SLOT(update_marker_treeview()));
- connect(checkBoxAllSongs, SIGNAL(toggled(bool)), this,
SLOT(all_songs_toggled(bool)));
// connect other stuff related to the treeWidget
connect(lineEditTitle, SIGNAL(textEdited(const QString &)), this,
SLOT(description_changed(const QString &)));
@@ -85,6 +88,8 @@
connect(toolButtonSongwriterAll, SIGNAL(clicked()), this,
SLOT(songwriter_all()));
connect(toolButtonCopyAll, SIGNAL(clicked()), this, SLOT(copy_all()));
connect(toolButtonPEmphAll, SIGNAL(clicked()), this, SLOT(pemph_all()));
+
+ connect(pushButtonExport, SIGNAL(clicked()), this, SLOT(export_toc()));
}
void MarkerDialog::set_project(Project * project)
@@ -108,7 +113,7 @@
void MarkerDialog::update_marker_treeview()
{
- // since the treeWidget will be cleared, point m_marker somewhere else
+ // since the treeWidget will be cleared, point m_marker to somewhere
else
m_marker = (Marker*)0;
markersTreeWidget->clear();
@@ -116,26 +121,6 @@
return;
}
- if (checkBoxAllSongs->isChecked()) { // loop through all songs
- int i = 1;
- foreach(Song* song, m_project->get_songs()) {
-
- TimeLine* tl = song->get_timeline();
-
- foreach(Marker* marker, tl->get_markers()) {
- QString name = marker->get_description();
- QString pos =
frame_to_smpte(marker->get_when(), m_project->get_rate());
-
- QTreeWidgetItem* item = new
QTreeWidgetItem(markersTreeWidget);
- item->setText(0, QString("%1 %2").arg(i, 2, 10,
QLatin1Char('0')).arg(song->get_title()));
- item->setText(1, pos.simplified());
- item->setText(2, name);
- item->setData(0, Qt::UserRole,
marker->get_id());
- }
- ++i;
- }
- } else { // pick one song
-
if (comboBoxDisplaySong->currentIndex() >= m_songlist.size()) {
return;
}
@@ -155,9 +140,8 @@
item->setText(2, name);
item->setData(0, Qt::UserRole, marker->get_id());
}
- }
- markersTreeWidget->sortItems(0, Qt::AscendingOrder);
+ markersTreeWidget->sortItems(1, Qt::AscendingOrder);
}
void MarkerDialog::item_changed(QTreeWidgetItem * current, QTreeWidgetItem *
previous)
@@ -223,7 +207,7 @@
item->setText(1, s);
m_marker->set_when(smpte_to_frame(s, m_project->get_rate()));
- markersTreeWidget->sortItems(0, Qt::AscendingOrder);
+ markersTreeWidget->sortItems(1, Qt::AscendingOrder);
}
// find the marker based on it's id. Since each song has it's own timeline,
@@ -463,22 +447,66 @@
set_project(m_project);
}
-// resizes the columns in the treeWidget and updates it's content
-void MarkerDialog::all_songs_toggled(bool b)
+void MarkerDialog::remove_marker()
{
- markersTreeWidget->header()->setSectionHidden(0, !b);
+ if (!m_marker) {
+ return;
+ }
+
+ Song *song = m_songlist.at(comboBoxDisplaySong->currentIndex());
+ TimeLine* tl = song->get_timeline();
+
+ AddRemove *ar = (AddRemove*) tl->remove_marker(m_marker);
+ Command::process_command(ar);
update_marker_treeview();
}
-void MarkerDialog::marker_moved()
+void MarkerDialog::export_toc()
{
+ QString fn = QFileDialog::getSaveFileName (0, tr("Export Table of
Contents"), m_project->get_root_dir(), tr("HTML File (*.html)"));
-}
+ // if aborted exit here
+ if (fn.isEmpty()) {
+ return;
+ }
-// Remon, need your help!
-// Couldn't find a working solution to delete markers via the button properly
-void MarkerDialog::remove_marker()
-{
+ QFile file(fn);
+
+ // check if the selected file can be opened for writing
+ if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
+ printf("Could not open file for writing.");
+ return;
+ }
+
+ QTextStream out(&file);
+
+ out << "<html>\n <head>\n </head>\n\n <body>\n";
+
+ out << " <h1>" << m_project->get_title() << "</h1>\n";
+ out << " <h2>" << m_project->get_description() << "</h2>\n";
+
+ out << " <hr>\n";
+ out << " <table>\n <tr><th>Position
(mm:ss.frames)</th><th>Title</th>\n";
+
+ if (comboBoxDisplaySong->currentIndex() >= m_songlist.size()) {
+ return;
+ }
+
+ int i = comboBoxDisplaySong->currentIndex();
+ Song *song = m_songlist.at(i);
+
+ TimeLine* tl = song->get_timeline();
+
+ foreach(Marker* marker, tl->get_markers()) {
+ QString name = marker->get_description();
+ QString pos = frame_to_smpte(marker->get_when(),
m_project->get_rate());
+
+ out << " <tr><td>" << pos << "</td>\n <td>" << name
<< "</td></tr>\n";
+ }
+
+ QDateTime dt = QDateTime::currentDateTime();
+
+ out << " </table>\n <hr>\n " << dt.toString("MMM dd, yyyy, hh:mm")
<< "\n</body>\n</html>\n";
}
//eof
Index: dialogs/MarkerDialog.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/dialogs/MarkerDialog.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- dialogs/MarkerDialog.h 25 Mar 2007 20:01:09 -0000 1.3
+++ dialogs/MarkerDialog.h 9 Apr 2007 14:00:57 -0000 1.4
@@ -52,10 +52,9 @@
void item_changed(QTreeWidgetItem *, QTreeWidgetItem *);
void description_changed(const QString &);
void position_changed(const QString &);
- void marker_moved();
void update_songs();
- void all_songs_toggled(bool);
void remove_marker();
+ void export_toc();
void title_enter();
void position_enter();
Index: dialogs/project/ProjectManagerDialog.cpp
===================================================================
RCS file:
/sources/traverso/traverso/src/traverso/dialogs/project/ProjectManagerDialog.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- dialogs/project/ProjectManagerDialog.cpp 5 Apr 2007 13:15:06 -0000
1.10
+++ dialogs/project/ProjectManagerDialog.cpp 9 Apr 2007 14:00:57 -0000
1.11
@@ -74,12 +74,14 @@
this, SLOT(undo_text_changed(const QString&)));
setWindowTitle("Manage Project - " + m_project->get_title());
descriptionTextEdit->setText(m_project->get_description());
+ lineEditTitle->setText(m_project->get_title());
redoButton->setText(m_project->get_history_stack()->redoText());
undoButton->setText(m_project->get_history_stack()->undoText());
} else {
setWindowTitle("Manage Project - No Project loaded!");
treeSongWidget->clear();
descriptionTextEdit->clear();
+ lineEditTitle->clear();
}
update_song_list();
@@ -270,6 +272,7 @@
}
m_project->set_description(descriptionTextEdit->toPlainText());
+ m_project->set_title(lineEditTitle->text());
hide();
}
@@ -282,6 +285,7 @@
}
descriptionTextEdit->setText(m_project->get_description());
+ lineEditTitle->setText(m_project->get_title());
hide();
}
Index: songcanvas/TimeLineView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/TimeLineView.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- songcanvas/TimeLineView.cpp 6 Apr 2007 10:16:13 -0000 1.16
+++ songcanvas/TimeLineView.cpp 9 Apr 2007 14:00:57 -0000 1.17
@@ -37,6 +37,7 @@
#include <Utils.h>
#include <Command.h>
#include <defines.h>
+#include <AddRemove.h>
#include <QDebug>
@@ -142,7 +143,7 @@
m_newWhen = slist->get_snap_value(m_newWhen);
}
- m_mview->set_position(m_newWhen / m_scalefactor);
+ m_mview->set_position(int(m_newWhen / m_scalefactor));
m_mview->get_songview()->update_shuttle_factor();
return 1;
}
@@ -204,8 +205,6 @@
xstart = 0;
}
-// printf("TimeLineView:: PAINT :: exposed rect is: x=%f, y=%f, w=%f,
h=%f\n", option->exposedRect.x(), option->exposedRect.y(),
option->exposedRect.width(), option->exposedRect.height());
-
int height = TIMELINEHEIGHT;
painter->fillRect(xstart, 0, pixelcount, height,
themer()->get_color("Timeline:background") );
@@ -262,7 +261,26 @@
{
QPointF point = mapFromScene(cpointer().scene_pos());
- Marker* marker = new Marker(m_timeline, (uint) (point.x() *
m_sv->scalefactor));
+ nframes_t when = (uint) (point.x() * m_sv->scalefactor);
+
+ // check if it is the first marker added to the timeline
+ if (!m_timeline->get_markers().size()) {
+ if (when > 0) { // add one at the beginning of the song
+ Marker* m = new Marker(m_timeline, 0);
+ m->set_description("");
+ AddRemove *ca = (AddRemove*) m_timeline->add_marker(m);
+ Command::process_command(ca);
+ }
+
+ if (when < m_sv->get_song()->get_last_frame()) { // add one at
the end of the song
+ Marker* me = new Marker(m_timeline,
m_sv->get_song()->get_last_frame(), 10);
+ me->set_description(tr("End"));
+ AddRemove *cb = (AddRemove*) m_timeline->add_marker(me);
+ Command::process_command(cb);
+ }
+ }
+
+ Marker* marker = new Marker(m_timeline, when);
marker->set_description("");
return m_timeline->add_marker(marker);
@@ -355,6 +373,18 @@
return 0;
}
+Command * TimeLineView::clear_markers()
+{
+ QList<Marker*> lst = m_timeline->get_markers();
+
+ foreach(Marker *m, lst) {
+ AddRemove *ar = (AddRemove*) m_timeline->remove_marker(m);
+ Command::process_command(ar);
+ }
+
+ return 0;
+}
+
void TimeLineView::load_theme_data()
{
// TODO Load pixmap, fonts, colors from themer() !!
Index: songcanvas/TimeLineView.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/TimeLineView.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- songcanvas/TimeLineView.h 10 Mar 2007 21:57:01 -0000 1.5
+++ songcanvas/TimeLineView.h 9 Apr 2007 14:00:57 -0000 1.6
@@ -37,6 +37,7 @@
Q_CLASSINFO("add_marker", tr("Add Marker"))
Q_CLASSINFO("remove_marker", tr("Remove Marker"))
Q_CLASSINFO("drag_marker", tr("Drag Marker"))
+ Q_CLASSINFO("clear_markers", tr("Clear all Markers"))
public:
TimeLineView(SongView* view);
@@ -69,6 +70,7 @@
Command* add_marker();
Command* remove_marker();
Command* drag_marker();
+ Command* clear_markers();
private slots:
void add_new_marker_view(Marker* marker);
Index: ui/MarkerDialog.ui
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/ui/MarkerDialog.ui,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- ui/MarkerDialog.ui 25 Mar 2007 20:01:09 -0000 1.3
+++ ui/MarkerDialog.ui 9 Apr 2007 14:00:58 -0000 1.4
@@ -333,6 +333,13 @@
</widget>
</item>
<item>
+ <widget class="QPushButton" name="pushButtonExport" >
+ <property name="text" >
+ <string>&Export</string>
+ </property>
+ </widget>
+ </item>
+ <item>
<spacer>
<property name="orientation" >
<enum>Qt::Horizontal</enum>
Index: ui/ProjectManagerDialog.ui
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/ui/ProjectManagerDialog.ui,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- ui/ProjectManagerDialog.ui 3 Apr 2007 19:57:11 -0000 1.8
+++ ui/ProjectManagerDialog.ui 9 Apr 2007 14:00:58 -0000 1.9
@@ -62,6 +62,32 @@
<number>6</number>
</property>
<item>
+ <widget class="QLabel" name="label_3" >
+ <property name="minimumSize" >
+ <size>
+ <width>100</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Title</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="lineEditTitle" />
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
<widget class="QLabel" name="label" >
<property name="minimumSize" >
<size>
@@ -131,20 +157,7 @@
</property>
</spacer>
</item>
- <item rowspan="2" row="1" column="2" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="0" column="2" >
+ <item row="0" column="1" >
<widget class="QGroupBox" name="groupBox" >
<property name="minimumSize" >
<size>
@@ -179,6 +192,19 @@
</layout>
</widget>
</item>
+ <item rowspan="2" row="1" column="1" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
</layout>
</widget>
<widget class="QWidget" name="tab" >
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso/src/traverso dialogs/MarkerDialog.cpp ...,
Nicola Doebelin <=