diff sv/main/MainWindow.cpp @ 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 fc9323a41f5a
children 9e054206ed97
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