Common subdirectories: kdenliveCVS/kdenlive/.deps and kdenlive/kdenlive/.deps
Common subdirectories: kdenliveCVS/kdenlive/.libs and kdenlive/kdenlive/.libs
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/avlistviewitem.cpp kdenlive/kdenlive/avlistviewitem.cpp
--- kdenliveCVS/kdenlive/avlistviewitem.cpp	2004-03-22 10:31:46.000000000 -0500
+++ kdenlive/kdenlive/avlistviewitem.cpp	2004-08-02 21:33:20.000000000 -0400
@@ -84,7 +84,6 @@
 QString AVListViewItem::text ( int column ) const
 {
 	QString text;
-
  	if(m_listView->columnText(column) == i18n("Filename")) {
  		text = m_node->name();
 	} else 	if(m_listView->columnText(column) == i18n("Duration")) {
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/clippropertiesdialog.cpp kdenlive/kdenlive/clippropertiesdialog.cpp
--- kdenliveCVS/kdenlive/clippropertiesdialog.cpp	2003-11-16 14:01:58.000000000 -0500
+++ kdenlive/kdenlive/clippropertiesdialog.cpp	2004-08-02 20:43:08.000000000 -0400
@@ -14,20 +14,125 @@
  *   (at your option) any later version.                                   *
  *                                                                         *
  ***************************************************************************/
+ #include <cmath>
+ 
+#include <klocale.h>
+
+#include <qnamespace.h>
+#include <qhgroupbox.h>
+#include <qhbox.h>
 
 #include "clippropertiesdialog.h"
+#include "docclipavfile.h"
+#include "docclipref.h"
 
 ClipPropertiesDialog::ClipPropertiesDialog(QWidget *parent, const char *name ):
-                          KDialog(parent,name),
-			  m_clip(0)
+			QVBox( parent, name ),
+			m_clip(0)
 {
+	//video info layout
+	QHGroupBox *m_videoGBox = new QHGroupBox( i18n( "Video Stream" ), this, "videoStream" );
+	m_videoGBox->setAlignment( 0 );
+	m_videoGBox->setOrientation( Horizontal );
+	m_videoGBox->setInsideSpacing( 3 );
+	QHBox *m_videoHBox = new QHBox( m_videoGBox );
+	QVBox *m_videoVBoxL = new QVBox( m_videoHBox );
+	QVBox *m_videoVBoxR = new QVBox( m_videoHBox );
+	//video stream headers
+	new QLabel( i18n( "Filename:" ), m_videoVBoxL );
+	new QLabel( i18n( "Frame size, (fps):" ), m_videoVBoxL );
+	new QLabel( i18n( "Length (hh:mm:ss):" ), m_videoVBoxL );
+	new QLabel( i18n( "System:" ), m_videoVBoxL );
+	new QLabel( i18n( "Decompressor:" ), m_videoVBoxL );
+	//video stream info data
+	filenameLabel = new QLabel( m_videoVBoxR );
+	filenameLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken );
+	frameSizeLabel = new QLabel( m_videoVBoxR );
+	frameSizeLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken );
+	videoLength = new QLabel( m_videoVBoxR );
+	videoLength->setFrameStyle( QFrame::Panel | QFrame::Sunken );
+	systemLabel = new QLabel( m_videoVBoxR );
+	systemLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken );
+	decompressorLabel = new QLabel( m_videoVBoxR );
+	decompressorLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken );
+	
+	//audio info layout
+	QHGroupBox *m_audioGBox = new QHGroupBox( i18n( "Audio Stream" ), this, "audioStream" );
+	m_audioGBox->setAlignment( 0 );
+	m_audioGBox->setOrientation( Horizontal );
+	m_audioGBox->setInsideSpacing( 3 );
+	QHBox *m_audioHBox = new QHBox( m_audioGBox );
+	QVBox *m_audioVBoxL = new QVBox( m_audioHBox );
+	QVBox *m_audioVBoxR = new QVBox( m_audioHBox );
+	//audio stream headers
+	new QLabel( i18n( "Sampling Rate:" ), m_audioVBoxL );
+	new QLabel( i18n( "Channels:" ), m_audioVBoxL );
+	new QLabel( i18n( "Format:" ), m_audioVBoxL );
+	new QLabel( i18n( "Bits per Sample:" ), m_audioVBoxL );
+	//audio stream info data
+	samplingRateLabel = new QLabel( m_audioVBoxR );
+	samplingRateLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken );
+	channelsLabel = new QLabel( m_audioVBoxR );
+	channelsLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken );
+	formatLabel = new QLabel( m_audioVBoxR );
+	formatLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken );
+	audiobitLabel = new QLabel( m_audioVBoxR );
+	audiobitLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken );
 }
 
 ClipPropertiesDialog::~ClipPropertiesDialog()
 {
 }
 
+//display properties based on selected clip
 void ClipPropertiesDialog::setClip(DocClipRef *clip)
 {
 	m_clip = clip;
+	if( m_clip )
+	{
+		//video properties
+		filenameLabel->setText( i18n( m_clip->name() ) );
+		frameSizeLabel->setText( i18n( QString::number( m_clip->clipWidth() ) + "x" + QString::number ( m_clip->clipHeight() ) + ", " + QString::number( m_clip->framesPerSecond() ) + " fps" ) );
+		if( m_clip->durationKnown() )
+		{
+			QString length = "";
+			int seconds = (int)m_clip->duration().seconds()%60;
+			int minutes = (int)floor(m_clip->duration().seconds()/60);
+			int hours = (int)floor(minutes/60);
+			if( hours >= 1 )
+			{
+				minutes = (int)hours%60;
+			}else{
+				hours = 0;
+			}
+			length.append(QString::number(hours).rightJustify(1, '0', FALSE));
+			length.append(":");
+			length.append(QString::number(minutes).rightJustify(2, '0', FALSE));
+			length.append(":");
+			length.append(QString::number(seconds).rightJustify(2, '0', FALSE));
+			videoLength->setText( i18n( length ) );
+		}else{
+			videoLength->setText( i18n( "unknown" ) );
+		}
+		systemLabel->setText( i18n( m_clip->avSystem() ) );
+		decompressorLabel->setText( i18n( m_clip->avDecompressor() ) );
+		
+		//audio properties
+		samplingRateLabel->setText( i18n( "0Hz" ) );
+		switch( m_clip->audioChannels() )
+		{
+			case 2:
+				channelsLabel->setText( i18n( QString::number( m_clip->audioChannels() ) + " (stereo)" ) );
+				break;
+			case 1:
+				channelsLabel->setText( i18n( QString::number( m_clip->audioChannels() ) + " (mono)" ) );
+				break;
+			default:
+				channelsLabel->setText( i18n( QString::number( m_clip->audioChannels() ) ) );
+				break;
+		}		
+		formatLabel->setText( i18n( m_clip->audioFormat() ) );
+		audiobitLabel->setText( i18n( QString::number( m_clip->audioBits() ) + " bit") );
+	}
 }
+
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/clippropertiesdialog.h kdenlive/kdenlive/clippropertiesdialog.h
--- kdenliveCVS/kdenlive/clippropertiesdialog.h	2003-11-16 14:01:58.000000000 -0500
+++ kdenlive/kdenlive/clippropertiesdialog.h	2004-08-01 18:48:15.000000000 -0400
@@ -19,22 +19,40 @@
 #define CLIPPROPERTIESDIALOG_H
 
 #include <qwidget.h>
-#include <kdialog.h>
+#include <qlabel.h>
+#include <qvbox.h>
+
+class QVBox;
 
 class DocClipRef;
+class KdenliveDoc;
+class KdenliveApp;
+class DocClipAVFile;
 
 /**Displays the properties of a sepcified clip.
   *@author Jason Wood
   */
 
-class ClipPropertiesDialog : public KDialog  {
+class ClipPropertiesDialog : public QVBox  {
    Q_OBJECT
 public: 
 	ClipPropertiesDialog(QWidget *parent=0, const char *name=0);
-	~ClipPropertiesDialog();
+	virtual ~ClipPropertiesDialog();
 	/** Specifies the clip that we wish to display the properties of. */
 	void setClip(DocClipRef *clip);
 private:
+	//video properties
+	QLabel *filenameLabel;
+	QLabel *frameSizeLabel;
+	QLabel *videoLength;
+	QLabel *systemLabel;
+	QLabel *decompressorLabel;
+	//audio properties
+	QLabel *samplingRateLabel;
+	QLabel *channelsLabel;
+	QLabel *formatLabel;
+	QLabel *audiobitLabel;
+	
   	DocClipRef *m_clip;
 };
 
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/docclipavfile.cpp kdenlive/kdenlive/docclipavfile.cpp
--- kdenliveCVS/kdenlive/docclipavfile.cpp	2004-06-20 11:31:27.000000000 -0400
+++ kdenlive/kdenlive/docclipavfile.cpp	2004-07-31 14:37:33.000000000 -0400
@@ -92,6 +92,36 @@
 	return m_framesPerSecond;
 }
 
+//returns clip video properties -reh
+uint DocClipAVFile::clipHeight() const
+{
+	return m_height;
+}
+uint DocClipAVFile::clipWidth() const
+{
+	return m_width;
+}
+QString DocClipAVFile::avDecompressor()
+{
+	return m_decompressor;
+}
+QString DocClipAVFile::avSystem()
+{
+	return m_system;
+}
+//returns clip audio properties -reh
+uint DocClipAVFile::audioChannels() const
+{
+	return m_channels;
+}
+QString DocClipAVFile::audioFormat()
+{
+	return m_format;
+}
+uint DocClipAVFile::audioBits() const
+{
+	return m_bitspersample;
+}
 /*
 // virtual
 QDomDocument DocClipAVFile::generateSceneList() const
@@ -233,7 +263,33 @@
 	  		m_duration = GenTime(0.0);
 			m_durationKnown = false;
 		}
-
+		//extend attributes -reh
+		if(attributes.contains("height"))
+		{
+			m_height = attributes["height"].toInt();
+		}else{
+			m_height = 0;
+		}
+		if(attributes.contains("width"))
+		{
+			m_width = attributes["width"].toInt();
+		}else{
+			m_width = 0;
+		}
+		//decoder name
+		if(attributes.contains("name"))
+		{
+			m_decompressor = attributes["name"];
+		}else{
+			m_decompressor = "n/a";
+		}
+		//video type ntsc/pal
+		if(attributes.contains("system"))
+		{
+			m_system = attributes["system"];
+		}else{
+			m_system = "n/a";
+		}
 		if(attributes.contains("fps"))
 		{
 			m_framesPerSecond = attributes["fps"].toInt();
@@ -241,6 +297,25 @@
 			// No frame rate known.
 			m_framesPerSecond = 0;
 		}
+		//audio attributes -reh
+		if(attributes.contains("channels"))
+		{
+			m_channels = attributes["channels"].toInt();
+		} else {
+			m_channels = 0;
+		}
+		if(attributes.contains("format"))
+		{
+			m_format = attributes["format"];
+		} else {
+			m_format = "n/a";
+		}
+		if(attributes.contains("bitspersample"))
+		{
+			m_bitspersample = attributes["bitspersample"].toInt();
+		} else {
+			m_bitspersample = 0;
+		}
 
 	} else {
 		/** If the file is not local, then no file properties are currently returned */
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/docclipavfile.h kdenlive/kdenlive/docclipavfile.h
--- kdenliveCVS/kdenlive/docclipavfile.h	2004-06-20 11:31:27.000000000 -0400
+++ kdenlive/kdenlive/docclipavfile.h	2004-07-31 13:52:45.000000000 -0400
@@ -54,7 +54,7 @@
 	const GenTime &duration() const;
 	/** Returns the type of this clip */
 	DocClipBase::CLIPTYPE clipType();
-
+		
 	QDomDocument toXML() const;
 	/** Returns the url of the AVFile this clip contains */
 	const KURL &fileURL() const;
@@ -64,6 +64,15 @@
 	/** Returns true if the clip duration is known, false otherwise. */
 	virtual bool durationKnown() const;
 	virtual double framesPerSecond() const;
+	//returns clip video properties -reh
+	virtual uint clipWidth() const;
+	virtual uint clipHeight() const;
+	virtual QString avDecompressor();
+	virtual QString avSystem();
+	//returns audio properties
+	virtual uint audioChannels() const;
+	virtual QString audioFormat();
+	virtual uint audioBits() const;
 	// Appends scene times for this clip to the passed vector.
 	virtual void populateSceneTimes(QValueVector<GenTime> &toPopulate) const;
 	// Returns an XML document that describes part of the current scene.
@@ -95,6 +104,16 @@
 	double m_framesPerSecond;
 	/** The size in bytes of this AVFile */
 	uint m_filesize;
+	
+	//extended video file properties -reh
+	uint m_height;
+	uint m_width;
+	QString m_decompressor;
+	QString m_system;
+	//audio file properties
+	uint m_channels;
+	QString m_format;
+	uint m_bitspersample;
 };
 
 #endif
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/docclipproject.h kdenlive/kdenlive/docclipproject.h
--- kdenliveCVS/kdenlive/docclipproject.h	2004-06-20 11:31:27.000000000 -0400
+++ kdenlive/kdenlive/docclipproject.h	2004-07-31 13:46:40.000000000 -0400
@@ -36,7 +36,7 @@
 	~DocClipProject();
 
 	const GenTime &duration() const;
-
+	
 	/** No descriptions */
 	const KURL &fileURL() const;
 
@@ -46,7 +46,7 @@
 
 	/** Returns the frames per second this clip runs at. */
 	virtual double framesPerSecond() const;
-
+		
   	/** Adds a track to the project */
   	void addTrack(DocTrackBase *track);
 	int trackIndex(DocTrackBase *track);
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/docclipref.cpp kdenlive/kdenlive/docclipref.cpp
--- kdenliveCVS/kdenlive/docclipref.cpp	2004-06-20 11:31:27.000000000 -0400
+++ kdenlive/kdenlive/docclipref.cpp	2004-07-31 18:52:52.000000000 -0400
@@ -263,6 +263,37 @@
 		return m_clip->framesPerSecond();
 	}
 }
+//returns clip video properties -reh
+uint DocClipRef::clipHeight() const
+{
+	return m_clip->toDocClipAVFile()->clipHeight();
+}
+uint DocClipRef::clipWidth() const
+{
+	return m_clip->toDocClipAVFile()->clipWidth();
+}
+QString DocClipRef::avDecompressor()
+{
+	return m_clip->toDocClipAVFile()->avDecompressor();
+}
+//type ntsc/pal
+QString DocClipRef::avSystem()
+{
+	return m_clip->toDocClipAVFile()->avSystem();
+}
+//returns clip audio properties -reh
+uint DocClipRef::audioChannels() const
+{
+	return m_clip->toDocClipAVFile()->audioChannels();
+}
+QString DocClipRef::audioFormat()
+{
+	return m_clip->toDocClipAVFile()->audioFormat();
+}
+uint DocClipRef::audioBits() const
+{
+	return m_clip->toDocClipAVFile()->audioBits();
+}
 
 QDomDocument DocClipRef::toXML() const
 {
@@ -337,6 +368,15 @@
 {
 	return m_clip->duration();
 }
+/*int DocClipRef::clipWidth() const
+{
+	return m_clip->clipWidth();
+}
+
+int DocClipRef::clipHeight() const
+{
+	return m_clip->clipHeight();
+}*/
 
 bool DocClipRef::durationKnown() const
 {
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/docclipref.h kdenlive/kdenlive/docclipref.h
--- kdenliveCVS/kdenlive/docclipref.h	2004-03-22 10:32:29.000000000 -0500
+++ kdenlive/kdenlive/docclipref.h	2004-07-31 13:56:15.000000000 -0400
@@ -87,6 +87,7 @@
 
 	/** returns the duration of this clip */
 	const GenTime &duration() const;
+	
 	/** Returns a url to a file describing this clip. Exactly what this url is,
 	whether it is temporary or not, and whether it provokes a render will
 	depend entirely on what the clip consists of. */
@@ -112,6 +113,15 @@
 	bool durationKnown() const;
 	// Returns the number of frames per second that this clip should play at.
 	double framesPerSecond() const;
+	//return clip video properties -reh
+	uint clipWidth() const;
+	uint clipHeight() const;
+	QString avDecompressor();
+	QString avSystem();
+	//returns audio properties -reh
+	uint audioChannels() const;
+	QString audioFormat();
+	uint audioBits() const;
 	/** Returns a scene list generated from this clip. */
 	QDomDocument generateSceneList();
 	/** Returns true if this clip is a project clip, false otherwise. Overridden in DocClipProject,
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/kaddclipcommand.cpp kdenlive/kdenlive/kaddclipcommand.cpp
--- kdenliveCVS/kdenlive/kaddclipcommand.cpp	2004-03-22 10:38:54.000000000 -0500
+++ kdenlive/kdenlive/kaddclipcommand.cpp	2004-07-27 22:24:37.000000000 -0400
@@ -83,7 +83,7 @@
 			m_xmlClip(clip->toXML())
 {
 	if(!m_parent) {
-		kdWarning() << "Error - all clips create with kaddclipcommand should have a parent!" << endl;
+		kdWarning() << "Error - all clips created with kaddclipcommand should have a parent!" << endl;
 	}
 }
 
@@ -94,7 +94,7 @@
 		m_create(create)
 {
 	if(!m_parent) {
-		kdWarning() << "Error - all clips create with kaddclipcommand should have a parent!" << endl;
+		kdWarning() << "Error - all clips created with kaddclipcommand should have a parent!" << endl;
 	}
 
 	DocClipBase *clip = document.clipManager().insertClip(url);
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/kdenlive.cpp kdenlive/kdenlive/kdenlive.cpp
--- kdenliveCVS/kdenlive/kdenlive.cpp	2004-06-20 11:31:28.000000000 -0400
+++ kdenlive/kdenlive/kdenlive.cpp	2004-07-31 18:56:27.000000000 -0400
@@ -53,6 +53,7 @@
 #include "effectlistdialog.h"
 #include "effectparamdialog.h"
 #include "effectstackdialog.h"
+#include "clippropertiesdialog.h"
 #include "exportdialog.h"
 #include "kaddclipcommand.h"
 #include "kaddavfilecommand.h"
@@ -212,7 +213,7 @@
 	projectAddClips->setStatusText( i18n( "Add clips to the project" ) );
 	projectDeleteClips->setStatusText( i18n( "Remove clips from the project" ) );
 	projectClean->setStatusText( i18n( "Remove unused clips from the project" ) );
-	projectClipProperties->setStatusText( i18n( "View the properties of the selected clip" ) );
+	//projectClipProperties->setStatusText( i18n( "View the properties of the selected clip" ) );
 	actionSeekForwards->setStatusText( i18n( "Seek forward one frame" ) );
 	actionSeekBackwards->setStatusText( i18n( "Seek backwards one frame" ) );
 	actionTogglePlay->setStatusText( i18n( "Start or stop playback" ) );
@@ -289,38 +290,45 @@
 
 	KDockWidget *projectDock = createDockWidget( "project list", QPixmap(), 0, i18n( "project list" ) );
 	m_projectList = new ProjectList( this, getDocument(), projectDock );
-	QToolTip::add( projectDock, i18n( "This window show your video files usable in your project" ) );
-	QWhatsThis::add( projectDock, i18n( "This window show your video files usable in your project. "
-		                                    "You can add or remove some files with the contextual menu. "
-		                                    "For add some sequences on your video project, use the drag and drop." ) );
+	QToolTip::add( projectDock, i18n( "Video files usable in current project" ) );
+	QWhatsThis::add( projectDock, i18n( "Video files usable in your project. "
+		                                    "Add or remove files with the contextual menu. "
+		                                    "In order to add some sequences to the current video project, use the drag and drop." ) );
 	projectDock->setWidget( m_projectList );
 	projectDock->setDockSite( KDockWidget::DockFullSite );
 	projectDock->manualDock( mainDock, KDockWidget::DockLeft );
 
 	widget = createDockWidget( "Debug", QPixmap(), 0, i18n( "Debug" ) );
 	m_renderDebugPanel = new RenderDebugPanel( widget );
-	QToolTip::add( widget, i18n( "This window show all debug messages between renderer and Kdenlive" ) );
+	QToolTip::add( widget, i18n( "Current debug messages between renderer and Kdenlive" ) );
 	widget->setWidget( m_renderDebugPanel );
 	widget->setDockSite( KDockWidget::DockFullSite );
 	widget->manualDock( projectDock, KDockWidget::DockCenter );
 
 	widget = createDockWidget( "Effect List", QPixmap(), 0, i18n( "Effect List" ) );
 	m_effectListDialog = new EffectListDialog( getDocument() ->renderer() ->effectList(), widget, "effect list" );
-	QToolTip::add( widget, i18n( "This window shows all effects usable with the renderer" ) );
+	QToolTip::add( widget, i18n( "Current effects usable with the renderer" ) );
 	widget->setWidget( m_effectListDialog );
 	widget->setDockSite( KDockWidget::DockFullSite );
 	widget->manualDock( projectDock, KDockWidget::DockCenter );
 
 	widget = createDockWidget( "Effect Setup", QPixmap(), 0, i18n( "Effect Setup" ) );
 	m_effectParamDialog = new EffectParamDialog( this, getDocument(), widget, "effect setup" );
-	QToolTip::add( widget, i18n( "This window lets you edit the parameters of the currently selected effect." ) );
+	QToolTip::add( widget, i18n( "Edit the parameters of the currently selected effect." ) );
 	widget->setWidget( m_effectParamDialog );
 	widget->setDockSite( KDockWidget::DockFullSite );
 	widget->manualDock( projectDock, KDockWidget::DockCenter );
 
+	clipWidget = createDockWidget( "Clip Properties", QPixmap(), 0, i18n( "Clip Properties" ) );
+	m_clipPropertyDialog = new ClipPropertiesDialog( clipWidget, "clip properties" );
+	QToolTip::add( clipWidget, i18n( "Properties of the currently selected clip." ) );
+	clipWidget->setWidget( m_clipPropertyDialog );
+	clipWidget->setDockSite( KDockWidget::DockFullSite );
+	clipWidget->manualDock( projectDock, KDockWidget::DockCenter );
+	
 	widget = createDockWidget( "Effect Stack", QPixmap(), 0, i18n( "Effect Stack" ) );
 	m_effectStackDialog = new EffectStackDialog( this, getDocument(), widget, "effect stack" );
-	QToolTip::add( widget, i18n( "This window shows all effects on the currently selected widget." ) );
+	QToolTip::add( widget, i18n( "All effects on the currently selected widget." ) );
 	widget->setWidget( m_effectStackDialog );
 	widget->setDockSite( KDockWidget::DockFullSite );
 	widget->manualDock( projectDock, KDockWidget::DockCenter );
@@ -342,6 +350,9 @@
 
 	connect( m_workspaceMonitor, SIGNAL( seekPositionChanged( const GenTime & ) ), m_timeline, SLOT( seek( const GenTime & ) ) );
 	connect( m_workspaceMonitor, SIGNAL( seekPositionChanged( const GenTime & ) ), this, SLOT( slotUpdateCurrentTime( const GenTime & ) ) );
+	//connect editpanel sliders with timeline sliders -reh
+	connect( m_workspaceMonitor, SIGNAL( inpointPositionChanged( const GenTime & ) ), m_timeline, SLOT( setInpointTimeline( const GenTime & ) ) );
+	connect( m_workspaceMonitor, SIGNAL( outpointPositionChanged( const GenTime & ) ), m_timeline, SLOT( setOutpointTimeline( const GenTime & ) ) );
 
 	connect( getDocument(), SIGNAL( signalClipSelected( DocClipRef *) ), this, SLOT( slotSetClipMonitorSource( DocClipRef * ) ) );
 	connect( getDocument(), SIGNAL( signalClipSelected( DocClipRef *) ), m_effectStackDialog, SLOT( slotSetEffectStack( DocClipRef * ) ) );
@@ -380,7 +391,10 @@
 	connect( m_projectList, SIGNAL( dragDropOccured( QDropEvent * ) ), this, SLOT( slot_insertClips( QDropEvent * ) ) );
 
 	connect( m_timeline, SIGNAL( seekPositionChanged( const GenTime & ) ), m_workspaceMonitor, SLOT( seek( const GenTime & ) ) );
-
+	//connect timeline sliders sliders with editpanel sliders
+	//connect( m_timeline, SIGNAL( inpointTimelineChanged( int ) ), m_workspaceMonitor, SLOT( setInpointTimeline( int ) ) );
+	//connect( m_timeline, SIGNAL( outpointTimelineChanged( int ) ), m_workspaceMonitor, SLOT( setOutpointTimeline( int ) ) );
+	
 	connect( m_timeline, SIGNAL( seekPositionChanged( const GenTime & ) ), this, SLOT( activateWorkspaceMonitor() ) );
 
 	connect( m_timeline, SIGNAL( rightButtonPressed() ), this, SLOT(slotDisplayTimeLineContextMenu()));
@@ -983,11 +997,8 @@
 void KdenliveApp::slotProjectClipProperties()
 {
 	slotStatusMsg( i18n( "Viewing clip properties" ) );
-
-	ClipPropertiesDialog dialog;
-	dialog.setClip( m_projectList->currentSelection() );
-	dialog.exec();
-
+	m_clipPropertyDialog->setClip( m_projectList->currentSelection() );
+	makeDockVisible( clipWidget );
 	slotStatusMsg( i18n( "Ready." ) );
 }
 
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/kdenlive.h kdenlive/kdenlive/kdenlive.h
--- kdenliveCVS/kdenlive/kdenlive.h	2004-06-20 11:31:28.000000000 -0400
+++ kdenlive/kdenlive/kdenlive.h	2004-07-25 20:14:46.000000000 -0400
@@ -53,6 +53,7 @@
 class EffectListDialog;
 class EffectParamDialog;
 class EffectStackDialog;
+class ClipPropertiesDialog;
 
 
 /**
@@ -374,6 +375,8 @@
 		EffectListDialog *m_effectListDialog;
 		EffectParamDialog *m_effectParamDialog;
 		EffectStackDialog *m_effectStackDialog;
+		ClipPropertiesDialog *m_clipPropertyDialog;
+		KDockWidget *clipWidget;
 		KRenderManager *m_renderManager;
 		KMMMonitor *m_workspaceMonitor;
 		KMMMonitor *m_clipMonitor;
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/kmmeditpanel.cpp kdenlive/kdenlive/kmmeditpanel.cpp
--- kdenliveCVS/kdenlive/kmmeditpanel.cpp	2004-06-30 13:52:24.000000000 -0400
+++ kdenlive/kdenlive/kmmeditpanel.cpp	2004-07-26 19:00:41.000000000 -0400
@@ -1,3 +1,4 @@
+#include <klocale.h>
 /***************************************************************************
                          kmmeditpanelimplementation.cpp  -  description
                             -------------------
@@ -23,6 +24,7 @@
 
 #include "kiconloader.h"
 #include "qtoolbutton.h"
+#include "qtooltip.h"
 
 #include "kfixedruler.h"
 #include "krulertimemodel.h"
@@ -143,18 +145,20 @@
 void KMMEditPanel::rendererConnected()
 {
 	renderStatus->on();
+	QToolTip::add( renderStatus, i18n( "Renderer connected" ) );
 }
 
 void KMMEditPanel::rendererDisconnected()
 {
 	renderStatus->off();
+	QToolTip::add( renderStatus, i18n( "Renderer not connected" ) );
 }
 
 void KMMEditPanel::setInpoint()
 {
 	int value = m_ruler->getSliderValue( 0 );
 	m_ruler->setSliderValue( 1, value);
-
+	
 	if(value > m_ruler->getSliderValue( 2 )) {
 		m_ruler->setSliderValue( 2, value );
 	}
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/kmmeditpanel.h kdenlive/kdenlive/kmmeditpanel.h
--- kdenliveCVS/kdenlive/kmmeditpanel.h	2004-06-30 13:52:25.000000000 -0400
+++ kdenlive/kdenlive/kmmeditpanel.h	2004-07-26 19:00:48.000000000 -0400
@@ -70,6 +70,7 @@
 
   /** Emitted when the previousSnapMarker button has been clicked */
   void previousSnapMarkerClicked();
+  
 private: // Private attributes
   /** The document associated with this edit panel */
   KdenliveDoc * m_document;
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/kmmmonitor.h kdenlive/kdenlive/kmmmonitor.h
--- kdenliveCVS/kdenlive/kmmmonitor.h	2003-12-15 21:29:57.000000000 -0500
+++ kdenlive/kdenlive/kmmmonitor.h	2004-07-26 18:59:49.000000000 -0400
@@ -146,6 +146,7 @@
 
 	/** go to the next snap marker from the current seek position */
 	void slotNextSnapMarker();
+	
 signals: // Signals
 	/** Emitted when the monitor's current position has changed. */
 	void seekPositionChanged(const GenTime &);
@@ -155,6 +156,7 @@
 	void outpointPositionChanged(const GenTime &);
 	/** Emitted when the mouse is clicked over the window. */
 	void monitorClicked(KMMMonitor *);
+	
 private slots:
 	// Update the edit panel, make sure that it's buttons are in sync.
 	void updateEditPanel(const GenTime &time);
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/krender.cpp kdenlive/kdenlive/krender.cpp
--- kdenliveCVS/kdenlive/krender.cpp	2004-06-30 13:52:25.000000000 -0400
+++ kdenlive/kdenlive/krender.cpp	2004-07-31 13:42:26.000000000 -0400
@@ -535,6 +535,7 @@
 			m_filePropertyMap.clear();
 			m_filePropertyMap[ "filename" ] = atts.value( "filename" );
 			m_filePropertyMap[ "duration" ] = atts.value( "duration" );
+			
 			pushStack( "reply_getFileProperties",
 			           &KRender::reply_getFileProperties_StartElement,
 			           &KRender::reply_getFileProperties_EndElement );
@@ -1049,6 +1050,18 @@
 	if ( localName == "codec" ) {
 		if ( atts.value( "type" ) == "video" ) {
 			m_filePropertyMap[ "fps" ] = atts.value( "fps" );
+			//added extended properties -reh
+			m_filePropertyMap[ "format" ] = atts.value( "format" );
+			m_filePropertyMap[ "height" ] = atts.value( "height" );
+			m_filePropertyMap[ "width" ] = atts.value( "width" );
+			m_filePropertyMap[ "system" ] = atts.value( "system" );
+			m_filePropertyMap[ "name" ] = atts.value( "name" );
+		}
+		//added audio properties -reh
+		if ( atts.value( "type" ) == "audio" ) {
+			m_filePropertyMap[ "channels" ] = atts.value( "channels" );
+			m_filePropertyMap[ "format" ] = atts.value( "format" );
+			m_filePropertyMap[ "bitspersample" ] = atts.value( "bitspersample" );
 		}
 	}
 
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/ktimeline.cpp kdenlive/kdenlive/ktimeline.cpp
--- kdenliveCVS/kdenlive/ktimeline.cpp	2004-06-20 11:31:28.000000000 -0400
+++ kdenlive/kdenlive/ktimeline.cpp	2004-07-26 19:00:26.000000000 -0400
@@ -34,6 +34,7 @@
 #include "ktrackview.h"
 #include "kresizecommand.h"
 #include "kscalableruler.h"
+#include "kdenlive.h"
 
 uint KTimeLine::snapTolerance = 10;
 
@@ -61,6 +62,9 @@
 
 	m_ruler = new KScalableRuler( new KRulerTimeModel(), m_rulerBox, name );
 	m_ruler->addSlider( KRuler::TopMark, 0 );
+	//added inpoint/outpoint markers -reh
+	m_ruler->addSlider( KRuler::StartMark, 0 );
+	m_ruler->addSlider( KRuler::EndMark, m_ruler->maxValue() );
 	m_ruler->setAutoClickSlider( 0 );
 
 	m_scrollToolWidget = scrollToolWidget;
@@ -93,7 +97,7 @@
 	connect( &m_scrollTimer, SIGNAL( timeout() ), this, SLOT( slotTimerScroll() ) );
 
 	connect( m_trackViewArea, SIGNAL( rightButtonPressed() ), this, SIGNAL( rightButtonPressed() ) );
-
+	
 	setAcceptDrops( true );
 
 	m_trackList.setAutoDelete( true );
@@ -396,4 +400,14 @@
 	m_scrollToolWidget->setMaximumWidth( m_panelWidth );
 
 	resizeTracks();
-}
\ No newline at end of file
+}
+
+void KTimeLine::setInpointTimeline( const GenTime &inpoint )
+{
+	m_ruler->setSliderValue( 1, ( int ) floor( inpoint.frames( m_framesPerSecond ) ) );
+}
+
+void KTimeLine::setOutpointTimeline( const GenTime &outpoint )
+{
+	m_ruler->setSliderValue( 2, ( int ) floor( outpoint.frames( m_framesPerSecond ) ) );
+}
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/ktimeline.h kdenlive/kdenlive/ktimeline.h
--- kdenliveCVS/kdenlive/ktimeline.h	2004-06-20 11:31:28.000000000 -0400
+++ kdenlive/kdenlive/ktimeline.h	2004-07-26 18:43:14.000000000 -0400
@@ -236,6 +236,11 @@
 
 	/** Re-syncs the scrollbar project size with the ruler project size. */
 	void resetProjectSize();
+	
+	//set inpoint/outpoint -reh
+	void setInpointTimeline( const GenTime &inpoint );
+	void setOutpointTimeline( const GenTime &outpoint );
+	
 private slots:   // Private slots
 	/** Scroll the timeline by a set amount. Should be connected to m_scrollTimer */
 	void slotTimerScroll();
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/projectlist.cpp kdenlive/kdenlive/projectlist.cpp
--- kdenliveCVS/kdenlive/projectlist.cpp	2003-12-02 16:02:51.000000000 -0500
+++ kdenlive/kdenlive/projectlist.cpp	2004-07-10 16:14:59.000000000 -0400
@@ -77,7 +77,8 @@
 	DocumentBaseNode *node = m_document->clipHierarch();
 
 	if(node) {
-		new AVListViewItem(m_document, m_listView, node);
+		AVListViewItem *item = new AVListViewItem(m_document, m_listView, node);
+		item->setOpen(true);
 	}
 }
 
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/projectlistview.h kdenlive/kdenlive/projectlistview.h
--- kdenliveCVS/kdenlive/projectlistview.h	2004-06-20 11:31:28.000000000 -0400
+++ kdenlive/kdenlive/projectlistview.h	2004-07-11 19:54:38.000000000 -0400
@@ -55,4 +55,6 @@
 	KdenliveDoc * m_doc;
 };
 
+
+
 #endif
diff -Nau --exclude='*.moc*' --exclude=kdenlive --exclude='*.o' --exclude='*.ui' --exclude='*.desktop' --exclude='Make*' --exclude=CVS --exclude='*.moc' --exclude='*_ui*' --exclude='*~' kdenliveCVS/kdenlive/renderdebugpanel.cpp kdenlive/kdenlive/renderdebugpanel.cpp
--- kdenliveCVS/kdenlive/renderdebugpanel.cpp	2004-03-22 10:40:52.000000000 -0500
+++ kdenlive/kdenlive/renderdebugpanel.cpp	2004-07-10 19:54:33.000000000 -0400
@@ -21,6 +21,7 @@
 #include <klocale.h>
 #include <kdebug.h>
 #include <kfiledialog.h>
+#include <qtooltip.h>
 
 RenderDebugPanel::RenderDebugPanel( QWidget *parent, const char *name ) :
 		QVBox( parent, name ),
@@ -44,6 +45,15 @@
 	connect( &m_saveMessages, SIGNAL( clicked() ), this, SLOT( saveMessages() ) );
 	connect( &m_sendVemlButton, SIGNAL( clicked() ), this, SLOT( sendDebugVeml() ) );
 	m_ignoreMessages.setChecked( true );
+	
+	//Debug Panel Tooltips
+	QToolTip::add( &m_saveMessages, i18n( "Save debug messages from renderer and Kdenlive" ) );
+	QToolTip::add( &m_sendVemlButton, i18n( "Send VEML messages to the renderer" ) );
+	if( m_ignoreMessages.isChecked() ){
+		QToolTip::add( &m_ignoreMessages, i18n( "Unselect to ignore debug messages" ) );
+	}else{
+		QToolTip::add( &m_ignoreMessages, i18n( "Select to ignore debug messages" ) );
+	}
 }
 
 RenderDebugPanel::~RenderDebugPanel()
@@ -176,4 +186,4 @@
 void RenderDebugPanel::sendDebugVeml()
 {
 	emit debugVemlSendRequest(m_rendererList.currentText(), m_vemlEdit.text());
-}
\ No newline at end of file
+}
Common subdirectories: kdenliveCVS/kdenlive/templates and kdenlive/kdenlive/templates
