diff --git a/include/automation_editor.h b/include/automation_editor.h index 6c364077d..933e1b90c 100644 --- a/include/automation_editor.h +++ b/include/automation_editor.h @@ -35,7 +35,6 @@ #include "midi_time.h" #include "automation_pattern.h" #include "combobox_model.h" -#include "fluiq/collapsible_widget.h" class QPainter; @@ -48,8 +47,7 @@ class timeLine; class toolButton; -class automationEditor : public FLUIQ::CollapsibleWidget, - public journallingObject +class automationEditor : public QWidget, public journallingObject { Q_OBJECT public: @@ -150,8 +148,7 @@ private: static const int InitialHeight = 480; static const int ScrollBarSize = 16; - static const int TopMargin = 32 + - FLUIQ::CollapsibleWidgetHeader::MinimalHeight; + static const int TopMargin = 48; static const int DefaultYDelta = 6; static const int DefaultStepsPerTact = 16; diff --git a/include/file_browser.h b/include/file_browser.h index ec84c4647..efff40905 100644 --- a/include/file_browser.h +++ b/include/file_browser.h @@ -30,6 +30,10 @@ #include #include + +#include "side_bar_widget.h" + + class QLineEdit; class fileItem; @@ -40,7 +44,7 @@ class trackContainer; -class fileBrowser : public QWidget +class fileBrowser : public sideBarWidget { Q_OBJECT public: @@ -50,10 +54,6 @@ public: virtual ~fileBrowser(); -protected: - virtual void keyPressEvent( QKeyEvent * _ke ); - - public slots: void filterItems( const QString & _filter ); void reloadTree( void ); @@ -61,6 +61,7 @@ public slots: private: bool filterItems( QTreeWidgetItem * _item, const QString & _filter ); + virtual void keyPressEvent( QKeyEvent * _ke ); void addItems( const QString & _path ); diff --git a/include/fx_mixer_view.h b/include/fx_mixer_view.h index cd707bdbc..75f6dda63 100644 --- a/include/fx_mixer_view.h +++ b/include/fx_mixer_view.h @@ -29,10 +29,9 @@ #include #include "fx_mixer.h" -#include "fluiq/collapsible_widget.h" -class QStackedWidget; +class QStackedLayout; class QButtonGroup; class fader; class fxLine; @@ -41,7 +40,7 @@ class pixmapButton; -class fxMixerView : public FLUIQ::CollapsibleWidget, public modelView, +class fxMixerView : public QWidget, public modelView, public serializingObjectHook { Q_OBJECT @@ -54,7 +53,7 @@ public: fxLine * currentFxLine( void ) { - return m_currentFxLine; + return( m_currentFxLine ); } void setCurrentFxLine( fxLine * _line ); void setCurrentFxLine( int _line ); @@ -67,8 +66,6 @@ private slots: private: - void createFxLine( int _line, QWidget * _parent ); - struct fxChannelView { fxLine * m_fxLine; @@ -79,7 +76,9 @@ private: fxChannelView m_fxChannelViews[NumFxChannels+1]; - QStackedWidget * m_fxRacksView; + QStackedLayout * m_fxRacksLayout; + QStackedLayout * m_fxLineBanks; + QButtonGroup * m_bankButtons; fxLine * m_currentFxLine; } ; diff --git a/include/kmultitabbar.h b/include/kmultitabbar.h new file mode 100644 index 000000000..3bec1ee9d --- /dev/null +++ b/include/kmultitabbar.h @@ -0,0 +1,309 @@ +/*************************************************************************** + kmultitabbar.h - description + ------------------- + begin : 2001 + copyright : (C) 2001,2002,2003 by Joseph Wenninger + ***************************************************************************/ + +/*************************************************************************** + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + ***************************************************************************/ + +#ifndef _KMultitabbar_h_ +#define _KMultitabbar_h_ + +#include +#include +#include +#include + +class QPixmap; +class QPainter; +class QFrame; +class QMenu; + +class KMultiTabBarPrivate; +class KMultiTabBarTabPrivate; +class KMultiTabBarButtonPrivate; +class KMultiTabBarInternal; + +/** + * A Widget for horizontal and vertical tabs. + * It is possible to add normal buttons to the top/left + * The handling if only one tab at a time or multiple tabs + * should be raisable is left to the "user". + *@author Joseph Wenninger + */ +class KMultiTabBar: public QWidget +{ + Q_OBJECT +public: + enum KMultiTabBarMode{Horizontal, Vertical}; + enum KMultiTabBarPosition{Left, Right, Top, Bottom}; + + /** + * The list of available styles for KMultiTabBar + * - VSNET - Visual Studio .Net like (only show the text of active tabs + * - KDEV3 - Kdevelop 3 like (always show the text) + * - KONQSBC - konqy's classic sidebar style (unthemed) (currently disabled) + */ + enum KMultiTabBarStyle{VSNET=0, KDEV3=1, KONQSBC=2, KDEV3ICON=3,STYLELAST=0xffff}; + + KMultiTabBar(KMultiTabBarMode bm,QWidget *parent=0 ); + virtual ~KMultiTabBar(); + + /** + * append a new button to the button area. The button can later on be accessed with button(ID) + * eg for connecting signals to it + * @param pic a pixmap for the button + * @param id an arbitraty ID value. It will be emitted in the clicked signal for identifying the button + * if more than one button is connected to a signals. + * @param popup A popup menu which should be displayed if the button is clicked + * @param not_used_yet will be used for a popup text in the future + */ + int appendButton(const QPixmap &pic,int id=-1,QMenu* popup=0,const QString& not_used_yet=QString()); + /** + * remove a button with the given ID + */ + void removeButton(int id); + /** + * append a new tab to the tab area. It can be accessed lateron with tabb(id); + * @param pic a bitmap for the tab + * @param id an arbitrary ID which can be used later on to identify the tab + * @param text if a mode with text is used it will be the tab text, otherwise a mouse over hint + */ + int appendTab(const QPixmap &pic,int id=-1,const QString& text=QString()); + /** + * remove a tab with a given ID + */ + void removeTab(int id); + /** + * set a tab to "raised" + * @param id The ID of the tab to manipulate + * @param state true == activated/raised, false == not active + */ + void setTab(int id ,bool state); + /** + * return the state of a tab, identified by it's ID + */ + bool isTabRaised(int id) const; + /** + * get a pointer to a button within the button area identified by its ID + */ + class KMultiTabBarButton *button(int id) const; + + /** + * get a pointer to a tab within the tab area, identiifed by its ID + */ + class KMultiTabBarTab *tab(int id) const; + /** + * set the real position of the widget. + * @param pos if the mode is horizontal, only use top, bottom, if it is vertical use left or right + */ + void setPosition(KMultiTabBarPosition pos); + /** + * get the tabbar position. + * @return position + */ + KMultiTabBarPosition position() const; + /** + * set the display style of the tabs + */ + void setStyle(KMultiTabBarStyle style); + /** + * get the display style of the tabs + * @return display style + */ + KMultiTabBarStyle tabStyle() const; + /** + * be carefull, don't delete tabs yourself and don't delete the list itself + */ + QList* tabs(); + /** + * be carefull, don't delete buttons yourself and don't delete the list itself + */ + QList* buttons(); + + /** + * might vanish, not sure yet + */ + void showActiveTabTexts(bool show=true); +protected: + friend class KMultiTabBarButton; + virtual void fontChange( const QFont& ); + void updateSeparator(); +private: + class KMultiTabBarInternal *m_internal; + QBoxLayout *m_l; + QFrame *m_btnTabSep; + QList m_buttons; + KMultiTabBarPosition m_position; + KMultiTabBarPrivate *d; +}; + +/** + * This class should never be created except with the appendButton call of KMultiTabBar + */ +class KMultiTabBarButton: public QPushButton +{ + Q_OBJECT +public: + KMultiTabBarButton(const QPixmap& pic,const QString&, QMenu *popup, + int id,QWidget *parent, KMultiTabBar::KMultiTabBarPosition pos, KMultiTabBar::KMultiTabBarStyle style); + KMultiTabBarButton(const QString&, QMenu *popup, + int id,QWidget *parent, KMultiTabBar::KMultiTabBarPosition pos, KMultiTabBar::KMultiTabBarStyle style); + virtual ~KMultiTabBarButton(); + int id() const; + +public slots: + /** + * this is used internaly, but can be used by the user, if (s)he wants to + * It the according call of KMultiTabBar is invoked though this modifications will be overwritten + */ + void setPosition(KMultiTabBar::KMultiTabBarPosition); + /** + * this is used internaly, but can be used by the user, if (s)he wants to + * It the according call of KMultiTabBar is invoked though this modifications will be overwritten + */ + void setStyle(KMultiTabBar::KMultiTabBarStyle); + + /** + * modify the text of the button + */ + void setText(const QString &); + + QSize sizeHint() const; + +protected: + KMultiTabBar::KMultiTabBarPosition m_position; + KMultiTabBar::KMultiTabBarStyle m_style; + QString m_text; + virtual void hideEvent( class QHideEvent*); + virtual void showEvent( class QShowEvent*); +private: + int m_id; + KMultiTabBarButtonPrivate *d; +signals: + /** + * this is emitted if the button is clicked + * @param id the ID identifying the button + */ + void clicked(int id); +protected slots: + virtual void slotClicked(); +}; + +/** + * This class should never be created except with the appendTab call of KMultiTabBar + */ +class KMultiTabBarTab: public KMultiTabBarButton +{ + Q_OBJECT +public: + KMultiTabBarTab(const QPixmap& pic,const QString&,int id,QWidget *parent, + KMultiTabBar::KMultiTabBarPosition pos,KMultiTabBar::KMultiTabBarStyle style); + virtual ~KMultiTabBarTab(); + /** + * set the active state of the tab + * @param state true==active false==not active + */ + void setState(bool state); + /** + * choose if the text should always be displayed + * this is only used in classic mode if at all + */ + void showActiveTabText(bool show); + void resize(){ setSize( neededSize() ); } +private: + bool m_showActiveTabText; + int m_expandedSize; + KMultiTabBarTabPrivate *d; +protected: + friend class KMultiTabBarInternal; + void setSize(int); + int neededSize(); + void updateState(); + virtual void paintEvent(QPaintEvent *); + virtual void drawButton(QPainter *); + virtual void drawButtonLabel(QPainter *); + void drawButtonStyled(QPainter *); + void drawButtonClassic(QPainter *); +protected slots: + virtual void slotClicked(); + void setTabsPosition(KMultiTabBar::KMultiTabBarPosition); + +public slots: + virtual void setIcon(const QString&); + virtual void setIcon(const QPixmap&); +}; +/*************************************************************************** + kmultitabbar_p.h - description + ------------------- + begin : 2003 + copyright : (C) 2003 by Joseph Wenninger + ***************************************************************************/ + +/*************************************************************************** + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + ***************************************************************************/ + + +class KMultiTabBarInternal: public QWidget +{ + Q_OBJECT +public: + KMultiTabBarInternal(QWidget *parent,KMultiTabBar::KMultiTabBarMode bm); + int appendTab(const QPixmap &,int=-1,const QString& =QString()); + KMultiTabBarTab *tab(int) const; + void removeTab(int); + void setPosition(enum KMultiTabBar::KMultiTabBarPosition pos); + void setStyle(enum KMultiTabBar::KMultiTabBarStyle style); + void showActiveTabTexts(bool show); + QList* tabs(){return &m_tabs;} +private: + friend class KMultiTabBar; + QWidget *box; + QBoxLayout *mainLayout; + QList m_tabs; + enum KMultiTabBar::KMultiTabBarPosition m_position; + bool m_showActiveTabTexts; + enum KMultiTabBar::KMultiTabBarStyle m_style; + int m_expandedTabSize; + int m_lines; + KMultiTabBar::KMultiTabBarMode m_barMode; +protected: + virtual bool eventFilter(QObject *,QEvent*); +// virtual void paintEvent( QPaintEvent * ); + + virtual void resizeEvent(QResizeEvent *); +}; + + + +#endif diff --git a/include/main_window.h b/include/main_window.h index f73b74ccc..2bd032cae 100644 --- a/include/main_window.h +++ b/include/main_window.h @@ -47,11 +47,6 @@ class textFloat; class configManager; class pluginView; class toolButton; -namespace FLUIQ -{ -class WidgetContainer; -class CollapsibleWidget; -} enum ProjectPlaybackMode { @@ -69,11 +64,6 @@ public: return( m_workspace ); } - inline FLUIQ::WidgetContainer * centralWidgetContainer( void ) - { - return m_centralWidgetContainer; - } - inline QWidget * toolBar( void ) { return( m_toolBar ); @@ -162,11 +152,10 @@ private: void finalize( void ); - void toggleWindow( FLUIQ::CollapsibleWidget * _w ); + void toggleWindow( QWidget * _w ); QMdiArea * m_workspace; - FLUIQ::WidgetContainer * m_centralWidgetContainer; QWidget * m_toolBar; QHBoxLayout * m_toolBarLayout; diff --git a/include/piano_roll.h b/include/piano_roll.h index 7c0a78e3b..02cdab999 100644 --- a/include/piano_roll.h +++ b/include/piano_roll.h @@ -28,12 +28,13 @@ #ifndef _PIANO_ROLL_H #define _PIANO_ROLL_H +#include + #include "combobox_model.h" #include "serializing_object.h" #include "note.h" #include "lmms_basics.h" #include "song.h" -#include "fluiq/collapsible_widget.h" class QPainter; @@ -50,7 +51,7 @@ class timeLine; class toolButton; -class pianoRoll : public FLUIQ::CollapsibleWidget, public serializingObject +class pianoRoll : public QWidget, public serializingObject { Q_OBJECT public: diff --git a/include/plugin_browser.h b/include/plugin_browser.h index 488277f2f..f49290593 100644 --- a/include/plugin_browser.h +++ b/include/plugin_browser.h @@ -1,7 +1,7 @@ /* * plugin_browser.h - include file for pluginBrowser * - * Copyright (c) 2005-2008 Tobias Doerffel + * Copyright (c) 2005-2007 Tobias Doerffel * * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net * @@ -28,27 +28,29 @@ #include #include -#include #include +#include "side_bar_widget.h" #include "plugin.h" class trackContainer; -class pluginBrowser : public QWidget +class pluginBrowser : public sideBarWidget { Q_OBJECT public: - pluginBrowser( QWidget * _parent = NULL ); + pluginBrowser( QWidget * _parent ); virtual ~pluginBrowser(); private: QVector m_pluginDescriptors; + QWidget * m_view; + } ; diff --git a/include/side_bar.h b/include/side_bar.h new file mode 100644 index 000000000..fd9f7ade9 --- /dev/null +++ b/include/side_bar.h @@ -0,0 +1,97 @@ +/* + * side_bar.h - code for side-bar in LMMS + * + * Copyright (c) 2004-2008 Tobias Doerffel + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _SIDE_BAR_H +#define _SIDE_BAR_H + +#include + +#include "kmultitabbar.h" +#include "side_bar_widget.h" + + +class sideBar : public KMultiTabBar +{ + Q_OBJECT +public: + sideBar( KMultiTabBarMode _m, QWidget * _parent ) : + KMultiTabBar( _m, _parent ) + { + } + + virtual ~sideBar() + { + } + + inline int appendTab( sideBarWidget * _sbw, int _id ) + { + int ret = KMultiTabBar::appendTab( _sbw->icon(), _id, + _sbw->title() ); + m_widgets[_id] = _sbw; + _sbw->hide(); + _sbw->setMinimumWidth( 200 ); + connect( tab( _id ), SIGNAL( clicked( int ) ), this, + SLOT( tabClicked( int ) ) ); + return( ret ); + } + + +private slots: + inline void tabClicked( int _id ) + { + // disable all other tabbar-buttons + QMap::Iterator it; + for( it = m_widgets.begin(); it != m_widgets.end(); ++it ) + { + if( it.key() != _id/* && isTabRaised(it.key()) == TRUE*/ ) + { + setTab( it.key(), FALSE ); + } + if( m_widgets[it.key()] != NULL ) + { + m_widgets[it.key()]->hide(); + } + } + if( m_widgets[_id] != NULL ) + { + if( isTabRaised( _id ) ) + { + m_widgets[_id]->show(); + } + else + { + m_widgets[_id]->hide(); + } + } + } + + +private: + QMap m_widgets; + +} ; + + +#endif diff --git a/include/side_bar_widget.h b/include/side_bar_widget.h new file mode 100644 index 000000000..dd9dfe536 --- /dev/null +++ b/include/side_bar_widget.h @@ -0,0 +1,77 @@ +/* + * side_bar_widget.h - base-class for all side-bar-widgets + * + * Copyright (c) 2004-2007 Tobias Doerffel + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _SIDE_BAR_WIDGET_H +#define _SIDE_BAR_WIDGET_H + +#include +#include +#include + + +class sideBarWidget : public QWidget +{ + Q_OBJECT +public: + sideBarWidget( const QString & _title, const QPixmap & _icon, + QWidget * _parent ); + virtual ~sideBarWidget(); + inline const QPixmap & icon( void ) const + { + return( m_icon ); + } + inline const QString & title( void ) const + { + return( m_title ); + } + + +protected: + virtual void paintEvent( QPaintEvent * _pe ); + virtual void resizeEvent( QResizeEvent * _re ); + inline virtual void contextMenuEvent( QContextMenuEvent * ) + { + } + + inline QWidget * contentParent( void ) + { + return( m_contents ); + } + inline void addContentWidget( QWidget * _w ) + { + m_layout->addWidget( _w ); + } + + +private: + QWidget * m_contents; + QVBoxLayout * m_layout; + QString m_title; + QPixmap m_icon; + +} ; + + +#endif diff --git a/include/track_container_view.h b/include/track_container_view.h index 4555d385e..83ed9bcb2 100644 --- a/include/track_container_view.h +++ b/include/track_container_view.h @@ -33,15 +33,13 @@ #include "track.h" #include "journalling_object.h" -#include "fluiq/collapsible_widget.h" class QVBoxLayout; class trackContainer; -class trackContainerView : public FLUIQ::CollapsibleWidget, - public modelView, +class trackContainerView : public QWidget, public modelView, public journallingObject, public serializingObjectHook { @@ -55,22 +53,22 @@ public: QWidget * contentWidget( void ) { - return m_scrollArea; + return( m_scrollArea ); } inline const midiTime & currentPosition( void ) const { - return m_currentPosition; + return( m_currentPosition ); } virtual bool fixedTCOs( void ) const { - return false; + return( FALSE ); } inline float pixelsPerTact( void ) const { - return m_ppt; + return( m_ppt ); } void setPixelsPerTact( int _ppt ); @@ -81,27 +79,27 @@ public: inline bool rubberBandActive( void ) const { - return m_rubberBand->isVisible(); + return( m_rubberBand->isVisible() ); } inline QVector selectedObjects( void ) { - if( allowRubberband() == true ) + if( allowRubberband() == TRUE ) { - return m_rubberBand->selectedObjects(); + return( m_rubberBand->selectedObjects() ); } - return QVector(); + return( QVector() ); } trackContainer * model( void ) { - return m_tc; + return( m_tc ); } const trackContainer * model( void ) const { - return m_tc; + return( m_tc ); } void moveTrackViewUp( trackView * _tv ); @@ -116,7 +114,7 @@ public: virtual QString nodeName( void ) const { - return "trackcontainerview"; + return( "trackcontainerview" ); } @@ -131,7 +129,7 @@ protected: const QList & trackViews( void ) const { - return m_trackViews; + return( m_trackViews ); } virtual void dragEnterEvent( QDragEnterEvent * _dee ); diff --git a/src/core/engine.cpp b/src/core/engine.cpp index 89eb386c9..2145d99bc 100644 --- a/src/core/engine.cpp +++ b/src/core/engine.cpp @@ -97,12 +97,12 @@ void engine::init( const bool _has_gui ) { s_mainWindow = new mainWindow; s_songEditor = new songEditor( s_song, s_songEditor ); - s_bbEditor = new bbEditor( s_bbTrackContainer ); - s_pianoRoll = new pianoRoll; - s_automationEditor = new automationEditor; s_fxMixerView = new fxMixerView; s_controllerRackView = new controllerRackView; s_projectNotes = new projectNotes; + s_bbEditor = new bbEditor( s_bbTrackContainer ); + s_pianoRoll = new pianoRoll; + s_automationEditor = new automationEditor; s_mainWindow->finalize(); } diff --git a/src/gui/automation_editor.cpp b/src/gui/automation_editor.cpp index f4518c9cc..4283a82d5 100644 --- a/src/gui/automation_editor.cpp +++ b/src/gui/automation_editor.cpp @@ -65,7 +65,6 @@ #include "bb_track_container.h" #include "piano_roll.h" #include "debug.h" -#include "fluiq/widget_container.h" @@ -76,7 +75,7 @@ QPixmap * automationEditor::s_toolMove = NULL; automationEditor::automationEditor( void ) : - FLUIQ::CollapsibleWidget( Qt::Vertical ), + QWidget(), m_zoomingXModel(), m_zoomingYModel(), m_quantizeModel(), @@ -134,9 +133,8 @@ automationEditor::automationEditor( void ) : m_toolBar = new QWidget( this ); m_toolBar->setFixedHeight( 32 ); + m_toolBar->move( 0, 0 ); m_toolBar->setAutoFillBackground( true ); - addWidget( m_toolBar ); - QPalette pal; pal.setBrush( m_toolBar->backgroundRole(), embed::getIconPixmap( "toolbar_bg" ) ); @@ -358,7 +356,18 @@ automationEditor::automationEditor( void ) : setMinimumSize( tb_layout->minimumSize().width(), 128 ); - engine::getMainWindow()->centralWidgetContainer()->addWidget( this ); + // add us to workspace + if( engine::getMainWindow()->workspace() ) + { + engine::getMainWindow()->workspace()->addSubWindow( this ); + parentWidget()->resize( InitialWidth, InitialHeight ); + parentWidget()->hide(); + } + else + { + resize( InitialWidth, InitialHeight ); + hide(); + } } diff --git a/src/gui/bb_editor.cpp b/src/gui/bb_editor.cpp index 3d477ae8b..166f365f4 100644 --- a/src/gui/bb_editor.cpp +++ b/src/gui/bb_editor.cpp @@ -50,8 +50,7 @@ bbEditor::bbEditor( bbTrackContainer * _tc ) : pal.setBrush( m_toolBar->backgroundRole(), embed::getIconPixmap( "toolbar_bg" ) ); m_toolBar->setPalette( pal ); - insertWidget( 1, m_toolBar ); -// static_cast( layout() )->insertWidget( 0, m_toolBar ); + static_cast( layout() )->insertWidget( 0, m_toolBar ); QHBoxLayout * tb_layout = new QHBoxLayout( m_toolBar ); tb_layout->setSpacing( 0 ); @@ -59,8 +58,7 @@ bbEditor::bbEditor( bbTrackContainer * _tc ) : setWindowIcon( embed::getIconPixmap( "bb_track" ) ); - setWindowTitle( tr( "PATTERN EDITOR" ) ); - + setWindowTitle( tr( "Beat+Bassline Editor" ) ); // TODO: Use style sheet setMinimumWidth( TRACK_OP_WIDTH + DEFAULT_SETTINGS_WIDGET_WIDTH + 2 * TCO_BORDER_WIDTH + 192 ); @@ -114,12 +112,12 @@ bbEditor::bbEditor( bbTrackContainer * _tc ) : tb_layout->addWidget( l ); tb_layout->addSpacing( 15 ); -/* engine::getMainWindow()->workspace()->addSubWindow( this ); + engine::getMainWindow()->workspace()->addSubWindow( this ); parentWidget()->setAttribute( Qt::WA_DeleteOnClose, FALSE ); parentWidget()->layout()->setSizeConstraint( QLayout::SetMinimumSize ); parentWidget()->resize( minimumWidth(), 300 ); parentWidget()->move( 610, 5 ); - parentWidget()->show();*/ + parentWidget()->show(); setModel( _tc ); diff --git a/src/gui/file_browser.cpp b/src/gui/file_browser.cpp index 575c45190..531466005 100644 --- a/src/gui/file_browser.cpp +++ b/src/gui/file_browser.cpp @@ -63,19 +63,16 @@ enum TreeWidgetItemTypes fileBrowser::fileBrowser( const QString & _directories, const QString & _filter, const QString & _title, const QPixmap & _pm, QWidget * _parent, bool _dirs_as_items ) : - QWidget( _parent ), + sideBarWidget( _title, _pm, _parent ), m_directories( _directories ), m_filter( _filter ), m_dirsAsItems( _dirs_as_items ) { - QVBoxLayout * viewLayout = new QVBoxLayout( this ); - viewLayout->setMargin( 5 ); - viewLayout->setSpacing( 5 ); + setWindowTitle( tr( "Browser" ) ); + m_l = new fileBrowserTreeWidget( contentParent() ); + addContentWidget( m_l ); - m_l = new fileBrowserTreeWidget( this ); - viewLayout->addWidget( m_l ); - - QWidget * ops = new QWidget( this ); + QWidget * ops = new QWidget( contentParent() ); ops->setFixedHeight( 24 ); QHBoxLayout * opl = new QHBoxLayout( ops ); @@ -95,9 +92,10 @@ fileBrowser::fileBrowser( const QString & _directories, const QString & _filter, opl->addSpacing( 5 ); opl->addWidget( reload_btn ); - viewLayout->addWidget( ops ); + addContentWidget( ops ); reloadTree(); + show(); } diff --git a/src/gui/fx_mixer_view.cpp b/src/gui/fx_mixer_view.cpp index 8a145aa39..58627b302 100644 --- a/src/gui/fx_mixer_view.cpp +++ b/src/gui/fx_mixer_view.cpp @@ -29,9 +29,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include #include "fx_mixer_view.h" #include "fader.h" @@ -44,8 +44,6 @@ #include "tooltip.h" #include "pixmap_button.h" -#include "fluiq/widget_container.h" - class fxLine : public QWidget @@ -100,7 +98,7 @@ private: fxMixerView::fxMixerView() : - FLUIQ::CollapsibleWidget( Qt::Vertical ), + QWidget(), modelView( NULL, this ), serializingObjectHook() { @@ -111,66 +109,111 @@ fxMixerView::fxMixerView() : //pal.setColor( QPalette::Background, QColor( 72, 76, 88 ) ); //setPalette( pal ); setAutoFillBackground( true ); - setSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::Fixed ); - setFixedHeight( 280 ); + setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Minimum ); - setWindowTitle( tr( "FX MIXER" ) ); + setWindowTitle( tr( "FX-Mixer" ) ); setWindowIcon( embed::getIconPixmap( "fx_mixer" ) ); + m_fxLineBanks = new QStackedLayout; + m_fxLineBanks->setSpacing( 0 ); + m_fxLineBanks->setMargin( 1 ); + + m_fxRacksLayout = new QStackedLayout; + m_fxRacksLayout->setSpacing( 0 ); + m_fxRacksLayout->setMargin( 0 ); + // main-layout - QWidget * mainWidget = new QWidget; - QHBoxLayout * mainLayout = new QHBoxLayout; - mainLayout->setMargin( 5 ); - mainLayout->setSpacing( 5 ); - mainLayout->addSpacing( 0 ); - mainWidget->setLayout( mainLayout ); + QHBoxLayout * ml = new QHBoxLayout; + ml->setMargin( 0 ); + ml->setSpacing( 0 ); + ml->addSpacing( 6 ); - m_fxRacksView = new QStackedWidget; - m_fxRacksView->setFixedSize( 250, 250 ); - mainLayout->addWidget( m_fxRacksView, 0, Qt::AlignTop ); - mainLayout->addSpacing( 8 ); - QScrollArea * scrollArea = new QScrollArea( mainWidget ); - scrollArea->setWidget( new QWidget ); - scrollArea->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff ); - scrollArea->setFrameShape( QScrollArea::NoFrame ); - scrollArea->setFixedHeight( 250 ); - scrollArea->horizontalScrollBar()->setSingleStep( 33 ); - scrollArea->horizontalScrollBar()->setPageStep( 33 ); - - QWidget * scrollAreaWidget = scrollArea->widget(); - QHBoxLayout * scrollAreaLayout = new QHBoxLayout( scrollAreaWidget ); - scrollAreaLayout->setSizeConstraint( QLayout::SetMinAndMaxSize ); - scrollAreaLayout->setMargin( 0 ); - scrollAreaLayout->setSpacing( 1 ); + QHBoxLayout * banks[NumFxChannels/16]; + for( int i = 0; i < NumFxChannels/16; ++i ) + { + QWidget * w = new QWidget( this ); + banks[i] = new QHBoxLayout( w ); + banks[i]->setMargin( 5 ); + banks[i]->setSpacing( 1 ); + m_fxLineBanks->addWidget( w ); + } for( int i = 0; i < NumFxChannels+1; ++i ) { - fxChannelView * view = &m_fxChannelViews[i]; - createFxLine( i, i == 0 ? mainWidget : scrollAreaWidget ); + fxChannelView * cv = &m_fxChannelViews[i]; if( i == 0 ) { - mainLayout->addWidget( view->m_fxLine, 0, - Qt::AlignTop ); - mainLayout->addSpacing( 5 ); + cv->m_fxLine = new fxLine( NULL, this, + m->m_fxChannels[i]->m_name ); + ml->addWidget( cv->m_fxLine ); + ml->addSpacing( 10 ); } else { - scrollAreaLayout->addWidget( view->m_fxLine ); + const int bank = (i-1) / 16; + cv->m_fxLine = new fxLine( NULL, this, + m->m_fxChannels[i]->m_name ); + banks[bank]->addWidget( cv->m_fxLine ); + } + lcdSpinBox * l = new lcdSpinBox( 2, cv->m_fxLine ); + l->model()->setRange( i, i ); + l->model()->setValue( i ); + l->move( 2, 4 ); + l->setMarginWidth( 1 ); + + + cv->m_fader = new fader( &m->m_fxChannels[i]->m_volumeModel, + cv->m_fxLine ); + cv->m_fader->move( 15-cv->m_fader->width()/2, + cv->m_fxLine->height()- + cv->m_fader->height()-5 ); + + cv->m_muteBtn = new pixmapButton( cv->m_fxLine, tr( "Mute" ) ); + cv->m_muteBtn->setModel( &m->m_fxChannels[i]->m_muteModel ); + cv->m_muteBtn->setActiveGraphic( + embed::getIconPixmap( "led_off" ) ); + cv->m_muteBtn->setInactiveGraphic( + embed::getIconPixmap( "led_green" ) ); + cv->m_muteBtn->setCheckable( true ); + cv->m_muteBtn->move( 9, cv->m_fader->y()-16); + toolTip::add( cv->m_muteBtn, tr( "Mute this FX channel" ) ); + + cv->m_rackView = new effectRackView( + &m->m_fxChannels[i]->m_fxChain, this ); + m_fxRacksLayout->addWidget( cv->m_rackView ); + if( i == 0 ) + { + QVBoxLayout * l = new QVBoxLayout; + l->addSpacing( 10 ); + QButtonGroup * g = new QButtonGroup( this ); + m_bankButtons = g; + g->setExclusive( true ); + for( int j = 0; j < 4; ++j ) + { + QToolButton * btn = new QToolButton; + btn->setText( QString( 'A'+j ) ); + btn->setCheckable( true ); + btn->setSizePolicy( QSizePolicy::Preferred, + QSizePolicy::Expanding ); + l->addWidget( btn ); + g->addButton( btn, j ); + btn->setChecked( j == 0); + } + l->addSpacing( 10 ); + ml->addLayout( l ); + connect( g, SIGNAL( buttonClicked( int ) ), + m_fxLineBanks, SLOT( setCurrentIndex( int ) ) ); } - - view->m_rackView = new effectRackView( - &m->m_fxChannels[i]->m_fxChain ); - view->m_rackView->setFixedWidth( 240 ); - view->m_rackView->mainLayout()->setMargin( 0 ); - m_fxRacksView->addWidget( view->m_rackView ); } - mainLayout->addWidget( scrollArea, 0, Qt::AlignTop ); - - addWidget( mainWidget ); + ml->addLayout( m_fxLineBanks ); + ml->addLayout( m_fxRacksLayout ); + setLayout( ml ); + updateGeometry(); + m_fxLineBanks->setCurrentIndex( 0 ); setCurrentFxLine( m_fxChannelViews[0].m_fxLine ); // timer for updating faders @@ -178,7 +221,17 @@ fxMixerView::fxMixerView() : this, SLOT( updateFaders() ) ); - engine::getMainWindow()->centralWidgetContainer()->addWidget( this ); + // add ourself to workspace + QMdiSubWindow * subWin = + engine::getMainWindow()->workspace()->addSubWindow( this ); + Qt::WindowFlags flags = subWin->windowFlags(); + flags |= Qt::MSWindowsFixedSizeDialogHint; + flags &= ~Qt::WindowMaximizeButtonHint; + subWin->setWindowFlags( flags ); + subWin->layout()->setSizeConstraint(QLayout::SetFixedSize); + + parentWidget()->setAttribute( Qt::WA_DeleteOnClose, false ); + parentWidget()->move( 5, 310 ); // we want to receive dataChanged-signals in order to update setModel( m ); @@ -217,7 +270,7 @@ void fxMixerView::setCurrentFxLine( fxLine * _line ) { if( m_fxChannelViews[i].m_fxLine == _line ) { - m_fxRacksView->setCurrentIndex( i ); + m_fxRacksLayout->setCurrentIndex( i ); } m_fxChannelViews[i].m_fxLine->update(); } @@ -230,6 +283,8 @@ void fxMixerView::setCurrentFxLine( int _line ) if ( _line >= 0 && _line < NumFxChannels+1 ) { setCurrentFxLine( m_fxChannelViews[_line].m_fxLine ); + + m_bankButtons->button( (_line-1) / 16 )->click(); } } @@ -278,37 +333,5 @@ void fxMixerView::updateFaders( void ) -void fxMixerView::createFxLine( int _line, QWidget * _parent ) -{ - fxMixer * m = engine::getFxMixer(); - fxChannelView * view = &m_fxChannelViews[_line]; - view->m_fxLine = new fxLine( _parent, this, - m->m_fxChannels[_line]->m_name ); - - lcdSpinBox * l = new lcdSpinBox( 2, view->m_fxLine ); - l->model()->setRange( _line, _line ); - l->model()->setValue( _line ); - l->move( 2, 4 ); - l->setMarginWidth( 1 ); - - - view->m_fader = new fader( &m->m_fxChannels[_line]->m_volumeModel, - view->m_fxLine ); - view->m_fader->move( 15-view->m_fader->width()/2, - view->m_fxLine->height()- - view->m_fader->height()-5 ); - - view->m_muteBtn = new pixmapButton( view->m_fxLine, tr( "Mute" ) ); - view->m_muteBtn->setModel( &m->m_fxChannels[_line]->m_muteModel ); - view->m_muteBtn->setActiveGraphic( - embed::getIconPixmap( "led_off" ) ); - view->m_muteBtn->setInactiveGraphic( - embed::getIconPixmap( "led_green" ) ); - view->m_muteBtn->setCheckable( true ); - view->m_muteBtn->move( 9, view->m_fader->y()-16 ); - toolTip::add( view->m_muteBtn, tr( "Mute this FX channel" ) ); -} - - #include "moc_fx_mixer_view.cxx" diff --git a/src/gui/main_window.cpp b/src/gui/main_window.cpp index 7f13d431f..a4f162687 100644 --- a/src/gui/main_window.cpp +++ b/src/gui/main_window.cpp @@ -31,7 +31,6 @@ #include #include #include -#include #include #include #include @@ -58,6 +57,7 @@ #include "controller_rack_view.h" #include "file_browser.h" #include "plugin_browser.h" +#include "side_bar.h" #include "config_mgr.h" #include "mixer.h" #include "plugin_view.h" @@ -77,17 +77,8 @@ #include "cpuload_widget.h" #include "visualization_widget.h" -#include "resources_db.h" -#include "resources_tree_model.h" -#include "resources_tree_view.h" - #include "gui/tracks/track_container_scene.h" -#include "fluiq/workspace.h" -#include "fluiq/widget_container.h" -#include "fluiq/collapsible_widget.h" - - mainWindow::mainWindow( void ) : m_workspace( NULL ), @@ -97,14 +88,13 @@ mainWindow::mainWindow( void ) : { setAttribute( Qt::WA_DeleteOnClose ); - QWidget * mainWidget = new QWidget( this ); - QVBoxLayout * vbox = new QVBoxLayout( mainWidget ); + QWidget * main_widget = new QWidget( this ); + QVBoxLayout * vbox = new QVBoxLayout( main_widget ); vbox->setSpacing( 0 ); vbox->setMargin( 0 ); -#if 0 - QWidget * w = new QWidget( mainWidget ); + QWidget * w = new QWidget( main_widget ); QHBoxLayout * hbox = new QHBoxLayout( w ); hbox->setSpacing( 0 ); hbox->setMargin( 0 ); @@ -165,94 +155,6 @@ mainWindow::mainWindow( void ) : ), ++id ); m_workspace = new QMdiArea( splitter ); -#endif - FLUIQ::Workspace * ws = new FLUIQ::Workspace( mainWidget ); - - - FLUIQ::CollapsibleWidget * componentWidget = - new FLUIQ::CollapsibleWidget( Qt::Horizontal, ws ); - componentWidget->setWindowTitle( tr( "COMPONENTS" ) ); - - FLUIQ::WidgetContainer * componentContainer = - new FLUIQ::WidgetContainer( Qt::Vertical, componentWidget ); - componentWidget->addWidget( componentContainer ); - - - - FLUIQ::CollapsibleWidget * resourcesWidget = - new FLUIQ::CollapsibleWidget( Qt::Vertical, - componentContainer ); - resourcesWidget->setWindowTitle( tr( "RESOURCES" ) ); - - ResourcesTreeModel * rtm = new ResourcesTreeModel( - engine::getResourcesDB() ); - - ResourcesTreeView * tv = new ResourcesTreeView( rtm, resourcesWidget ); - - QLineEdit * le = new QLineEdit; - resourcesWidget->addWidget( tv ); - resourcesWidget->addWidget( le ); - - connect( le, SIGNAL( textChanged( const QString & ) ), - tv, SLOT( setFilter( const QString & ) ) ); - - - componentContainer->addWidget( resourcesWidget ); - - - - FLUIQ::CollapsibleWidget * pluginsWidget = - new FLUIQ::CollapsibleWidget( Qt::Vertical, - componentContainer ); - pluginsWidget->setWindowTitle( tr( "INSTRUMENTS" ) ); - - pluginBrowser * pb = new pluginBrowser(); - pluginsWidget->addWidget( pb ); - - componentContainer->addWidget( pluginsWidget ); - - - FLUIQ::CollapsibleWidget * homeBrowserW = - new FLUIQ::CollapsibleWidget( Qt::Vertical, - componentContainer ); - homeBrowserW->setWindowTitle( tr( "HOME DIRECTORY" ) ); - fileBrowser * hb = new fileBrowser( QDir::homePath(), "*", - tr( "My home" ), - embed::getIconPixmap( "home" ), - NULL ); - homeBrowserW->addWidget( hb ); - componentContainer->addWidget( homeBrowserW ); - - componentWidget->setMaximumWidth( 300 ); - - ws->addWidget( componentWidget ); - - - - - FLUIQ::CollapsibleWidget * editorsWidget = - new FLUIQ::CollapsibleWidget( Qt::Horizontal, ws ); - editorsWidget->setWindowTitle( tr( "EDITORS" ) ); - - - m_centralWidgetContainer = new FLUIQ::WidgetContainer( Qt::Vertical, - editorsWidget ); - editorsWidget->addWidget( m_centralWidgetContainer ); - - FLUIQ::CollapsibleWidget * workspaceWidget = - new FLUIQ::CollapsibleWidget( Qt::Vertical, - m_centralWidgetContainer ); - workspaceWidget->setWindowTitle( tr( "WORKSPACE" ) ); - - m_workspace = new QMdiArea; - workspaceWidget->addWidget( m_workspace ); - - m_centralWidgetContainer->addWidget( workspaceWidget ); - - - ws->addWidget( editorsWidget ); - - // Load background QString bgArtwork = configManager::inst()->backgroundArtwork(); @@ -274,9 +176,12 @@ mainWindow::mainWindow( void ) : m_workspace->setHorizontalScrollBarPolicy( Qt::ScrollBarAsNeeded ); m_workspace->setVerticalScrollBarPolicy( Qt::ScrollBarAsNeeded ); + hbox->addWidget( side_bar ); + hbox->addWidget( splitter ); + // create global-toolbar at the top of our window - m_toolBar = new QWidget( mainWidget ); + m_toolBar = new QWidget( main_widget ); m_toolBar->setObjectName( "mainToolbar" ); m_toolBar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); m_toolBar->setFixedHeight( 64 ); @@ -288,9 +193,8 @@ mainWindow::mainWindow( void ) : m_toolBarLayout->setSpacing( 0 ); vbox->addWidget( m_toolBar ); - vbox->addWidget( ws ); - - setCentralWidget( mainWidget ); + vbox->addWidget( w ); + setCentralWidget( main_widget ); /// HACK TO CREATE EXTRA SONG EDITOR FOR NOW /// //Fun test @@ -1212,15 +1116,18 @@ void mainWindow::help( void ) -void mainWindow::toggleWindow( FLUIQ::CollapsibleWidget * _w ) +void mainWindow::toggleWindow( QWidget * _w ) { - if( _w->isCollapsed() ) + if( m_workspace->activeSubWindow() != _w->parentWidget() + || _w->parentWidget()->isHidden() ) { - _w->expand(); + _w->parentWidget()->show(); + _w->show(); + _w->setFocus(); } else { - _w->collapse(); + _w->parentWidget()->hide(); } } @@ -1245,20 +1152,7 @@ void mainWindow::toggleSongEditorWin( void ) void mainWindow::toggleProjectNotesWin( void ) { - //toggleWindow( engine::getProjectNotes() ); - // TODO - QWidget * _w = engine::getProjectNotes(); - if( m_workspace->activeSubWindow() != _w->parentWidget() - || _w->parentWidget()->isHidden() ) - { - _w->parentWidget()->show(); - _w->show(); - _w->setFocus(); - } - else - { - _w->parentWidget()->hide(); - } + toggleWindow( engine::getProjectNotes() ); } @@ -1290,18 +1184,7 @@ void mainWindow::toggleFxMixerWin( void ) void mainWindow::toggleControllerRack( void ) { - QWidget * _w = engine::getControllerRackView(); - if( m_workspace->activeSubWindow() != _w->parentWidget() - || _w->parentWidget()->isHidden() ) - { - _w->parentWidget()->show(); - _w->show(); - _w->setFocus(); - } - else - { - _w->parentWidget()->hide(); - } + toggleWindow( engine::getControllerRackView() ); } diff --git a/src/gui/piano_roll.cpp b/src/gui/piano_roll.cpp index 07e57b0e6..4a8523b3c 100644 --- a/src/gui/piano_roll.cpp +++ b/src/gui/piano_roll.cpp @@ -69,7 +69,6 @@ #include "timeline.h" #include "tool_button.h" #include "tooltip.h" -#include "fluiq/widget_container.h" typedef automationPattern::timeMap timeMap; @@ -79,6 +78,9 @@ extern Keys whiteKeys[]; // defined in piano_widget.cpp // some constants... +static const int InitialPianoRollWidth = 840; +static const int InitialPianoRollHeight = 480; + static const int ScrollBarSize = 16; static const int PianoX = 0; @@ -250,9 +252,8 @@ pianoRoll::pianoRoll( void ) : m_toolBar = new QWidget( this ); m_toolBar->setFixedHeight( 32 ); + m_toolBar->move( 0, 0 ); m_toolBar->setAutoFillBackground( true ); - addWidget( m_toolBar ); - QPalette pal; pal.setBrush( m_toolBar->backgroundRole(), embed::getIconPixmap( "toolbar_bg" ) ); @@ -509,7 +510,19 @@ pianoRoll::pianoRoll( void ) : setMinimumSize( tb_layout->minimumSize().width(), 160 ); - engine::getMainWindow()->centralWidgetContainer()->addWidget( this ); + // add us to workspace + if( engine::getMainWindow()->workspace() ) + { + engine::getMainWindow()->workspace()->addSubWindow( this ); + parentWidget()->resize( InitialPianoRollWidth, + InitialPianoRollHeight ); + parentWidget()->hide(); + } + else + { + resize( InitialPianoRollWidth, InitialPianoRollHeight ); + hide(); + } connect( engine::getSong(), SIGNAL( timeSignatureChanged( int, int ) ), this, SLOT( update() ) ); diff --git a/src/gui/plugin_browser.cpp b/src/gui/plugin_browser.cpp index fb9b03006..a2ccec7af 100644 --- a/src/gui/plugin_browser.cpp +++ b/src/gui/plugin_browser.cpp @@ -29,7 +29,6 @@ #include #include #include -#include #include "plugin_browser.h" @@ -42,27 +41,28 @@ pluginBrowser::pluginBrowser( QWidget * _parent ) : - QWidget( _parent ) + sideBarWidget( tr( "Instrument plugins" ), + embed::getIconPixmap( "plugins" ), _parent ) { -/* setWindowTitle( tr( "Instrument browser" ) ); + setWindowTitle( tr( "Instrument browser" ) ); m_view = new QWidget( contentParent() ); //m_view->setFrameShape( QFrame::NoFrame ); - addContentWidget( m_view );*/ + addContentWidget( m_view ); - QVBoxLayout * viewLayout = new QVBoxLayout( this ); - viewLayout->setMargin( 5 ); - viewLayout->setSpacing( 5 ); + QVBoxLayout * view_layout = new QVBoxLayout( m_view ); + view_layout->setMargin( 5 ); + view_layout->setSpacing( 5 ); QLabel * hint = new QLabel( tr( "Drag an instrument " "into either the Song-Editor, the " "Beat+Bassline Editor or into an " "existing instrument track." ), - this ); + m_view ); hint->setFont( pointSize<8>( hint->font() ) ); - hint->setWordWrap( true ); - viewLayout->addWidget( hint ); + hint->setWordWrap( TRUE ); + view_layout->addWidget( hint ); plugin::getDescriptorsOfAvailPlugins( m_pluginDescriptors ); @@ -73,14 +73,13 @@ pluginBrowser::pluginBrowser( QWidget * _parent ) : if( it->type == plugin::Instrument ) { pluginDescWidget * p = new pluginDescWidget( *it, - this ); + m_view ); p->show(); - viewLayout->addWidget( p ); + view_layout->addWidget( p ); } } - - viewLayout->addStretch(); - viewLayout->setSizeConstraint( QLayout::SetMinimumSize ); + view_layout->addStretch(); + show(); } @@ -102,12 +101,12 @@ pluginDescWidget::pluginDescWidget( const plugin::descriptor & _pd, m_updateTimer( this ), m_pluginDescriptor( _pd ), m_logo( _pd.logo->pixmap() ), - m_mouseOver( false ), + m_mouseOver( FALSE ), m_targetHeight( 24 ) { connect( &m_updateTimer, SIGNAL( timeout() ), SLOT( updateHeight() ) ); setFixedHeight( m_targetHeight ); - setMouseTracking( true ); + setMouseTracking( TRUE ); setCursor( Qt::PointingHandCursor ); } @@ -139,14 +138,14 @@ void pluginDescWidget::paintEvent( QPaintEvent * ) p.drawPixmap( 4, 4, logo ); QFont f = pointSize<8>( p.font() ); - f.setBold( true ); + f.setBold( TRUE ); p.setFont( f ); p.drawText( 10 + logo_size.width(), 15, m_pluginDescriptor.displayName ); if( height() > 24 || m_mouseOver ) { - f.setBold( false ); + f.setBold( FALSE ); p.setFont( pointSize<7>( f ) ); QRect br; p.drawText( 10 + logo_size.width(), 20, width() - 58 - 5, 999, @@ -166,7 +165,7 @@ void pluginDescWidget::paintEvent( QPaintEvent * ) void pluginDescWidget::enterEvent( QEvent * _e ) { - m_mouseOver = true; + m_mouseOver = TRUE; m_targetHeight = height() + 1; updateHeight(); QWidget::enterEvent( _e ); @@ -177,7 +176,7 @@ void pluginDescWidget::enterEvent( QEvent * _e ) void pluginDescWidget::leaveEvent( QEvent * _e ) { - m_mouseOver = false; + m_mouseOver = FALSE; m_targetHeight = 24; updateHeight(); QWidget::leaveEvent( _e ); diff --git a/src/gui/resources_tree_view.cpp b/src/gui/resources_tree_view.cpp index 3182c6160..d3bfe23f4 100644 --- a/src/gui/resources_tree_view.cpp +++ b/src/gui/resources_tree_view.cpp @@ -33,7 +33,6 @@ ResourcesTreeView::ResourcesTreeView( ResourcesTreeModel * _tm, m_tm( _tm ) { setHeaderHidden( true ); - setIconSize( QSize( 24, 24 ) ); setModel( m_tm ); connect( m_tm, SIGNAL( itemsChanged() ), this, SLOT( updateFilter() ) ); diff --git a/src/gui/song_editor.cpp b/src/gui/song_editor.cpp index 158c48cb3..03e793b79 100644 --- a/src/gui/song_editor.cpp +++ b/src/gui/song_editor.cpp @@ -77,7 +77,7 @@ songEditor::songEditor( song * _song, songEditor * & _engine_ptr ) : { _engine_ptr = this; - setWindowTitle( tr( "SONG EDITOR" ) ); + setWindowTitle( tr( "Song-Editor" ) ); setWindowIcon( embed::getIconPixmap( "songeditor" ) ); setFocusPolicy( Qt::StrongFocus ); @@ -99,7 +99,7 @@ songEditor::songEditor( song * _song, songEditor * & _engine_ptr ) : // create own toolbar - m_toolBar = new QWidget;//( this ); + m_toolBar = new QWidget( this ); m_toolBar->setFixedHeight( 32 ); m_toolBar->setAutoFillBackground( TRUE ); QPalette pal; @@ -107,8 +107,8 @@ songEditor::songEditor( song * _song, songEditor * & _engine_ptr ) : embed::getIconPixmap( "toolbar_bg" ) ); m_toolBar->setPalette( pal ); - insertWidget( 1, m_toolBar ); - insertWidget( 2, m_timeLine ); + static_cast( layout() )->insertWidget( 0, m_toolBar ); + static_cast( layout() )->insertWidget( 1, m_timeLine ); QHBoxLayout * tb_layout = new QHBoxLayout( m_toolBar ); tb_layout->setMargin( 0 ); @@ -251,11 +251,11 @@ songEditor::songEditor( song * _song, songEditor * & _engine_ptr ) : this, SLOT( scrolled( int ) ) ); -/* engine::getMainWindow()->workspace()->addSubWindow( this ); + engine::getMainWindow()->workspace()->addSubWindow( this ); parentWidget()->setAttribute( Qt::WA_DeleteOnClose, FALSE ); parentWidget()->resize( 600, 300 ); parentWidget()->move( 5, 5 ); - parentWidget()->show();*/ + parentWidget()->show(); } diff --git a/src/gui/track_container_view.cpp b/src/gui/track_container_view.cpp index da79b6e12..665187cf2 100644 --- a/src/gui/track_container_view.cpp +++ b/src/gui/track_container_view.cpp @@ -47,11 +47,9 @@ #include "string_pair_drag.h" #include "track.h" -#include "fluiq/widget_container.h" - trackContainerView::trackContainerView( trackContainer * _tc ) : - FLUIQ::CollapsibleWidget( Qt::Vertical ), + QWidget(), modelView( NULL, this ), journallingObject(), serializingObjectHook(), @@ -63,11 +61,12 @@ trackContainerView::trackContainerView( trackContainer * _tc ) : m_rubberBand( new rubberBand( m_scrollArea ) ), m_origin() { - engine::getMainWindow()->centralWidgetContainer()->addWidget( this ); - m_tc->setHook( this ); - addWidget( m_scrollArea ); + QVBoxLayout * layout = new QVBoxLayout( this ); + layout->setMargin( 0 ); + layout->setSpacing( 0 ); + layout->addWidget( m_scrollArea ); QWidget * scrollContent = new QWidget; m_scrollLayout = new QVBoxLayout( scrollContent ); @@ -477,7 +476,7 @@ void trackContainerView::resizeEvent( QResizeEvent * _re ) trackContainerView::scrollArea::scrollArea( trackContainerView * _parent ) : - QScrollArea( NULL ), + QScrollArea( _parent ), m_trackContainerView( _parent ) { setFrameStyle( QFrame::NoFrame );