changeset 2:ba54bc09cd62

add easaier tab widgets, style and pass the layer characteristics in the main window (remove from panestack)
author lbajardsilogic
date Fri, 11 May 2007 13:59:29 +0000
parents d4e4aa06fe51
children 6b39a4d6b309
files sv/main/MainWindow.cpp sv/main/MainWindow.h sv/main/main.cpp
diffstat 3 files changed, 110 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/sv/main/MainWindow.cpp	Fri May 11 13:57:39 2007 +0000
+++ b/sv/main/MainWindow.cpp	Fri May 11 13:59:29 2007 +0000
@@ -41,6 +41,11 @@
 #include "widgets/ListInputDialog.h"
 #include "widgets/SubdividingMenu.h"
 #include "widgets/NotifyingPushButton.h"
+#include "widgets/InfoWidget.h"
+#include "widgets/SearchWidget.h"
+#include "widgets/QueryResultsWidget.h"
+#include "widgets/ExpandWidget.h"
+#include "widgets/AdvancedToolBox.h"
 #include "audioio/AudioCallbackPlaySource.h"
 #include "audioio/AudioCallbackPlayTarget.h"
 #include "audioio/AudioTargetFactory.h"
@@ -100,6 +105,12 @@
 using std::map;
 using std::set;
 
+MainWindow * MainWindow::m_instance = 0;
+
+MainWindow * MainWindow::instance()
+{
+    return m_instance;
+}
 
 MainWindow::MainWindow(bool withAudioOutput, bool withOSCSupport) :
     m_document(0),
@@ -237,13 +248,39 @@
     m_playMono->setChecked(settings.value("playmono", false).toBool());
     settings.endGroup();
 
-    layout->setSpacing(4);
-    layout->addWidget(m_paneStack, 0, 0, 1, 5);
-    layout->addWidget(m_overview, 1, 0);
-    layout->addWidget(m_fader, 1, 1);
-    layout->addWidget(m_playSpeed, 1, 2);
-    layout->addWidget(m_playSharpen, 1, 3);
-    layout->addWidget(m_playMono, 1, 4);
+	m_infoWidget = new InfoWidget();
+	m_searchWidget = new SearchWidget();
+	m_resultsWidget = new QueryResultsWidget();
+
+	m_qtabwidget = new QTabWidget();
+	m_qtabwidget->addTab(m_searchWidget, tr("Search"));
+	m_qtabwidget->addTab(m_resultsWidget, tr("Result"));
+	m_qtabwidget->addTab(m_infoWidget, tr("Info"));
+	m_qtabwidget->addTab(new QWidget, tr("Related media"));
+
+	QGridLayout *auxlayout = new QGridLayout;
+	auxlayout->addWidget(m_paneStack, 0, 0, 1, 5);
+    auxlayout->addWidget(m_overview, 1, 0);
+    auxlayout->addWidget(m_fader, 1, 1);
+    auxlayout->addWidget(m_playSpeed, 1, 2);
+    auxlayout->addWidget(m_playSharpen, 1, 3);
+    auxlayout->addWidget(m_playMono, 1, 4);
+	QWidget *auxwidget = new QWidget;
+	auxwidget->setLayout(auxlayout);
+
+	ExpandWidget *bottomExpandWidget = new ExpandWidget();
+	bottomExpandWidget->setWidgetLocation(ExpandWidget::Location_Bottom);
+	bottomExpandWidget->setPanes(auxwidget, m_qtabwidget);
+
+	m_toolBox = new AdvancedToolBox();
+	m_toolBox->addItem("Layers", new QWidget);
+	m_toolBox->addItem("Real-time filters", new QWidget);
+
+	ExpandWidget *mainExpandWidget = new ExpandWidget();
+	mainExpandWidget->setWidgetLocation(ExpandWidget::Location_Right);
+	mainExpandWidget->setPanes(bottomExpandWidget, m_toolBox);
+
+	layout->addWidget(mainExpandWidget, 0, 0);
 
     m_paneStack->setPropertyStackMinWidth
         (m_fader->width() + m_playSpeed->width() + m_playSharpen->width() +
@@ -401,6 +438,7 @@
     setupViewMenu();
     setupPaneAndLayerMenus();
     setupTransformsMenu();
+	setupSettingMenu();
     setupHelpMenu();
 
     m_mainMenusCreated = true;
@@ -651,6 +689,26 @@
 }
 
 void
+MainWindow::setupSettingMenu()
+{
+    if (m_mainMenusCreated) return;
+
+	QAction *action = 0;
+	QMenu *menu = 0;
+
+    menu = menuBar()->addMenu(tr("&Settings"));
+    menu->setTearOffEnabled(true);
+    
+	//action = new QAction(tr("&Connection settings"), this);
+	//connect(action, SIGNAL(triggered()), this, SLOT(connectionSettings()));
+	//menu->addAction(action);
+
+	action = new QAction(tr("&Style setting"), this);
+	connect(action, SIGNAL(triggered()), this, SLOT(styleSetting()));
+	menu->addAction(action);
+}
+
+void
 MainWindow::setupViewMenu()
 {
     if (m_mainMenusCreated) return;
@@ -2574,6 +2632,18 @@
     CommandHistory::getInstance()->documentSaved();
     documentRestored();
     updateMenuStates();
+
+	QWidget *properties = 0;
+
+	properties = new PropertyStack(0, m_paneStack->getCurrentPane() );
+	//properties->show();
+	m_toolBox->removeItem(0);
+	m_toolBox->insertItem(0,"Layers", properties);
+
+	/*connect(properties, SIGNAL(propertyContainerSelected(View *, PropertyContainer *)),
+		this, SLOT(propertyContainerSelected(View *, PropertyContainer *)));
+	properties->setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum);
+	*/
 }
 
 void
@@ -4772,3 +4842,7 @@
     QMessageBox::about(this, tr("About Sonic Visualiser"), aboutText);
 }
 
+void MainWindow::styleSetting()
+{
+     m_gallery.show();
+}
\ No newline at end of file
--- a/sv/main/MainWindow.h	Fri May 11 13:57:39 2007 +0000
+++ b/sv/main/MainWindow.h	Fri May 11 13:59:29 2007 +0000
@@ -21,6 +21,7 @@
 #include <QUrl>
 #include <QMainWindow>
 #include <QPointer>
+#include <QTabWidget>
 
 #include "base/Command.h"
 #include "view/ViewManager.h"
@@ -30,6 +31,8 @@
 #include "transform/Transform.h"
 #include "document/SVFileReader.h"
 #include "data/fileio/FileFinder.h"
+#include "widgets/WidgetGallery.h"
+
 #include <map>
 
 class Document;
@@ -52,7 +55,10 @@
 class QPushButton;
 class OSCQueue;
 class OSCMessage;
-
+class InfoWidget;
+class SearchWidget;
+class QueryResultsWidget;
+class AdvancedToolBox;
 
 class MainWindow : public QMainWindow
 {
@@ -84,6 +90,8 @@
     bool saveSessionFile(QString path);
     bool commitData(bool mayAskUser); // on session shutdown
 
+	static MainWindow *instance();
+
 signals:
     // Used to toggle the availability of menu actions
     void canAddPane(bool);
@@ -236,6 +244,8 @@
     void help();
     void about();
 
+	void styleSetting();
+
 protected:
     QString                  m_sessionFile;
     QString                  m_audioFile;
@@ -319,6 +329,7 @@
     void setupMenus();
     void setupFileMenu();
     void setupEditMenu();
+	void setupSettingMenu();
     void setupViewMenu();
     void setupPaneAndLayerMenus();
     void setupTransformsMenu();
@@ -402,6 +413,19 @@
     void updateVisibleRangeDisplay(Pane *p) const;
 
     void toXml(QTextStream &stream);
+
+	static MainWindow	*m_instance;
+
+	InfoWidget			*m_infoWidget;
+	SearchWidget		*m_searchWidget;
+	QueryResultsWidget	*m_resultsWidget;
+
+	QTabWidget			*m_qtabwidget;
+
+	AdvancedToolBox         *m_toolBox; 
+
+	WidgetGallery			m_gallery;
+
 };
 
 
--- a/sv/main/main.cpp	Fri May 11 13:57:39 2007 +0000
+++ b/sv/main/main.cpp	Fri May 11 13:59:29 2007 +0000
@@ -31,6 +31,7 @@
 #include <QSettings>
 #include <QIcon>
 #include <QSessionManager>
+#include <QPlastiqueStyle>
 
 #include <iostream>
 #include <signal.h>
@@ -195,7 +196,7 @@
 main(int argc, char **argv)
 {
     SVApplication application(argc, argv);
-
+	
     QStringList args = application.arguments();
 
     signal(SIGINT,  signalHandler);
@@ -224,7 +225,8 @@
     QApplication::setOrganizationDomain("sonicvisualiser.org");
     QApplication::setApplicationName("sonic-visualiser");
     QApplication::setWindowIcon(QIcon(":icons/svicon16.png"));
-
+	QApplication::setStyle(new QPlastiqueStyle);
+	
     QString language = QLocale::system().name();
 
     QTranslator qtTranslator;