many bugfixes and updated projects
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@49 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
69
ChangeLog
69
ChangeLog
@@ -1,3 +1,72 @@
|
||||
2006-01-16 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
|
||||
* src/lib/mmp.cpp:
|
||||
do not add "mmp"-extensions if there's already "mpt" (multimedia-
|
||||
project-template) as extension
|
||||
|
||||
* include/arp_and_chords_tab_widget.h:
|
||||
* src/core/arp_and_chords_tab_widget.cpp:
|
||||
- added new sync-mode to arpeggiator
|
||||
- arpeggiator-modes are now selectable from combobox
|
||||
|
||||
2006-01-15 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
|
||||
* src/core/file_browser.cpp:
|
||||
use 7.5 instead of 8 as font-size
|
||||
|
||||
* src/widgets/led_checkbox.cpp:
|
||||
use 7.5 instead of 7 as font-size
|
||||
|
||||
* include/gui_templates.h:
|
||||
- added more precise pointSizeF()-method
|
||||
- more precise point-size-calculation for pointSize()-method which
|
||||
makes all fonts inside LMMS a bit bigger and everything more
|
||||
readable
|
||||
|
||||
* include/setup_dialog.h:
|
||||
* src/core/note_play_handle.cpp:
|
||||
* src/core/setup_dialog.cpp:
|
||||
* src/tracks/channel_track.cpp:
|
||||
added switches for disabling several UI-effects for a better
|
||||
performance even on older hardware
|
||||
|
||||
* include/preset_preview_play_handle.h:
|
||||
* src/core/preset_preview_play_handle.cpp:
|
||||
global-data-mutex is not a pointer anymore, instead it's a normal
|
||||
QMutex - fixes crashes with sort-arpeggio if no preset was previewed
|
||||
before
|
||||
|
||||
2006-01-14 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
|
||||
* src/widgets/kmultitabbar.cpp:
|
||||
made KMultiTabBar working with Qt4
|
||||
|
||||
* src/audio/audio_jack.cpp:
|
||||
return if connection to JACK-server failed with old JACK-API
|
||||
(jack_client_new(...)) - fixes crash when using old JACK-API with
|
||||
LMMS and JACK-server is not running
|
||||
|
||||
* include/preset_preview_play_handle.h:
|
||||
* src/core/arp_and_chords_tab_widget.cpp:
|
||||
* src/core/preset_preview_play_handle.cpp:
|
||||
as preset-note-play-handle is not registered at mixer, it cannot be
|
||||
returned in notePlayHandle::nphsOfChannelTrack() and therefore
|
||||
previewing presets with sort-mode arpeggios doesn't work - now the
|
||||
arpeggiator also checks preview-note for being the only note there
|
||||
|
||||
* src/core/arp_and_chords_tab_widget.cpp:
|
||||
fixed some bugs in arpeggiator
|
||||
|
||||
* src/core/piano_roll.cpp:
|
||||
lock qapp-thread in recordNote() - hopefully fixes some
|
||||
xlib-async-errors
|
||||
|
||||
* src/tracks/channel_track.cpp:
|
||||
- do not process note-on-out-events if according key is already pressed
|
||||
- when invalidating note-play-handles, also reset m_notes-array for not
|
||||
crashing when applying another preset while key is pressed and
|
||||
released afterwards
|
||||
|
||||
2006-01-10 Alexey Kouznetsov <alexey.kouznetsov/at/gmail.com>
|
||||
|
||||
* locale/ru.ts:
|
||||
|
||||
@@ -56,6 +56,7 @@ lmms_MOC = \
|
||||
./file_browser.moc \
|
||||
./group_box.moc \
|
||||
./kmultitabbar.moc \
|
||||
./kmultitabbar-qt3.moc \
|
||||
./knob.moc \
|
||||
./lcd_spinbox.moc \
|
||||
./led_checkbox.moc \
|
||||
@@ -227,6 +228,7 @@ lmms_SOURCES = \
|
||||
$(srcdir)/include/gui_templates.h \
|
||||
$(srcdir)/include/surround_area.h \
|
||||
$(srcdir)/include/kmultitabbar.h \
|
||||
$(srcdir)/include/kmultitabbar-qt3.h \
|
||||
$(srcdir)/include/side_bar.h \
|
||||
$(srcdir)/include/side_bar_widget.h \
|
||||
$(srcdir)/include/track.h \
|
||||
|
||||
7
TODO
7
TODO
@@ -1,10 +1,9 @@
|
||||
to be done as soon as possible:
|
||||
|
||||
- debug arpeggio with certain times (TB303-arp!)
|
||||
- fix bug with recording on arpeggio-channel
|
||||
- do not skip samples because of rounding when resampling in src/lib/sample_buffer.cpp
|
||||
- performance-settings
|
||||
- arp-sync-mode
|
||||
- do not skip samples because of rounding-errors when resampling in src/lib/sample_buffer.cpp
|
||||
- MIDI-program/MIDI-mapping/process program-/channel-change-events from MIDI-files
|
||||
- do not allow to connect output-port of channel to own input-port!
|
||||
- add note-len- and note-alignment-selectbox to piano-roll
|
||||
- DSSI-support
|
||||
- somehow avoid hidden plugin-descriptor-widgets plugin-browser if height of window is too small -> add scrollbar
|
||||
|
||||
@@ -9,7 +9,7 @@ AC_ARG_WITH([qtdir], [ --with-qtdir=DIR Qt installation directory [defau
|
||||
# Check that QTDIR is defined or that --with-qtdir given
|
||||
if test x"$QTDIR" = x ; then
|
||||
# some usual Qt-locations
|
||||
QT_SEARCH="/usr /usr/lib/qt /usr/lib/qt3 /usr/lib/qt31 /usr/lib/qt32 /usr/lib/qt33 /usr/lib/qt-3.0 /usr/lib/qt-3.1 /usr/lib/qt-3.2 /usr/lib/qt-3.3 usr/local/qt /usr/local/qt3 /usr/local/qt31/ /usr/local/qt32 /usr/local/qt33 /usr/X11R6 /usr/local/Trolltech/Qt-4.0.0"
|
||||
QT_SEARCH="/usr /usr/lib/qt /usr/lib/qt3 /usr/lib/qt31 /usr/lib/qt32 /usr/lib/qt33 /usr/lib/qt-3.0 /usr/lib/qt-3.1 /usr/lib/qt-3.2 /usr/lib/qt-3.3 usr/local/qt /usr/local/qt3 /usr/local/qt31/ /usr/local/qt32 /usr/local/qt33 /usr/share/qt3 /usr/X11R6 /usr/share/qt4 /usr/local/Trolltech/Qt-4.0.0 /usr/local/Trolltech/Qt-4.0.1 /usr/local/Trolltech/Qt-4.1.0"
|
||||
else
|
||||
QT_SEARCH=$QTDIR
|
||||
QTDIR=""
|
||||
@@ -141,6 +141,7 @@ case "${host}" in
|
||||
QT_IS_MT="yes"
|
||||
QT_LIB="-lQtCore -lQtGui -lQtXml -lQt3Support"
|
||||
else
|
||||
QT_CXXFLAGS="-DQT3 $QT_CXXFLAGS"
|
||||
if test "x`ls $QTDIR/lib/libqt-mt.* 2> /dev/null`" != x ; then
|
||||
QT_LIB="-lqt-mt"
|
||||
QT_IS_MT="yes"
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_PREREQ(2.50)
|
||||
AC_INIT(lmms, 0.1.2-cvs20060110, tobydox/at/users.sourceforge.net)
|
||||
AM_INIT_AUTOMAKE(lmms, 0.1.2-cvs20060110)
|
||||
AC_INIT(lmms, 0.1.2-cvs20060116, tobydox/at/users.sourceforge.net)
|
||||
AM_INIT_AUTOMAKE(lmms, 0.1.2-cvs20060116)
|
||||
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
|
||||
|
||||
@@ -115,6 +115,13 @@ private:
|
||||
RANDOM
|
||||
} m_arpDirection;
|
||||
|
||||
enum arpModes
|
||||
{
|
||||
FREE,
|
||||
SORT,
|
||||
SYNC
|
||||
} ;
|
||||
|
||||
// chord-stuff
|
||||
groupBox * m_chordsGroupBox;
|
||||
QComboBox * m_chordsComboBox;
|
||||
@@ -133,7 +140,7 @@ private:
|
||||
pixmapButton * m_arpUpAndDownBtn;
|
||||
pixmapButton * m_arpRandomBtn;
|
||||
|
||||
ledCheckBox * m_sortMode;
|
||||
QComboBox * m_arpModeComboBox;
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* gui_templates.h - GUI-specific templates
|
||||
*
|
||||
* Copyright (c) 2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
* Copyright (c) 2005-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
|
||||
*
|
||||
@@ -48,6 +48,20 @@
|
||||
// the same size in pixels
|
||||
template<int SIZE>
|
||||
inline QFont pointSize( QFont _f )
|
||||
{
|
||||
static const int DPI = 96;
|
||||
#ifdef QT4
|
||||
_f.setPointSizeF( (float) SIZE * DPI /
|
||||
QApplication::desktop()->logicalDpiY() );
|
||||
#else
|
||||
_f.setPointSizeFloat( (float) SIZE * DPI /
|
||||
QPaintDeviceMetrics( qApp->desktop() ).logicalDpiY() );
|
||||
#endif
|
||||
return( _f );
|
||||
}
|
||||
|
||||
|
||||
inline QFont pointSizeF( QFont _f, float SIZE )
|
||||
{
|
||||
static const int DPI = 96;
|
||||
#ifdef QT4
|
||||
|
||||
296
include/kmultitabbar-qt3.h
Normal file
296
include/kmultitabbar-qt3.h
Normal file
@@ -0,0 +1,296 @@
|
||||
/***************************************************************************
|
||||
kmultitabbar.h - description
|
||||
-------------------
|
||||
begin : 2001
|
||||
copyright : (C) 2001,2002,2003 by Joseph Wenninger <jowenn@kde.org>
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
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., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef _KMultitabbar_qt3_h_
|
||||
#define _KMultitabbar_qt3_h_
|
||||
|
||||
#include "qt3support.h"
|
||||
|
||||
#include <qscrollview.h>
|
||||
#include <qvbox.h>
|
||||
#include <qhbox.h>
|
||||
#include <qabstractlayout.h>
|
||||
#include <qstring.h>
|
||||
#include <qptrlist.h>
|
||||
#include <qpushbutton.h>
|
||||
|
||||
class KMultiTabBarButton;
|
||||
class KMultiTabBarTab;
|
||||
|
||||
typedef QPtrList<KMultiTabBarButton> buttonList;
|
||||
typedef QPtrList<KMultiTabBarTab> tabList;
|
||||
|
||||
|
||||
class QPixmap;
|
||||
class QPainter;
|
||||
class QFrame;
|
||||
|
||||
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};
|
||||
|
||||
/**
|
||||
* 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), this one is disabled
|
||||
* at the moment, but will be renabled soon too
|
||||
*/
|
||||
enum KMultiTabBarStyle{VSNET=0, KDEV3=1, KONQSBC=2, KDEV3ICON=3,STYLELAST=0xffff};
|
||||
|
||||
KMultiTabBar(KMultiTabBarMode m,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::null);
|
||||
/**
|
||||
* 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::null);
|
||||
/**
|
||||
* 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);
|
||||
/**
|
||||
* set the display style of the tabs
|
||||
*/
|
||||
void setStyle(KMultiTabBarStyle style);
|
||||
/**
|
||||
* be carefull, don't delete tabs yourself and don't delete the list itself
|
||||
*/
|
||||
tabList * tabs();
|
||||
/**
|
||||
* be carefull, don't delete buttons yourself and don't delete the list itself
|
||||
*/
|
||||
buttonList * 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;
|
||||
buttonList 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() ); }
|
||||
virtual inline const QColorGroup & palette( void ) const
|
||||
{
|
||||
return( colorGroup() );
|
||||
}
|
||||
private:
|
||||
bool m_showActiveTabText;
|
||||
int m_expandedSize;
|
||||
KMultiTabBarTabPrivate *d;
|
||||
protected:
|
||||
friend class KMultiTabBarInternal;
|
||||
void setSize(int);
|
||||
int neededSize();
|
||||
void updateState();
|
||||
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&);
|
||||
};
|
||||
|
||||
|
||||
|
||||
class KMultiTabBarInternal: public Q3ScrollView
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
KMultiTabBarInternal(QWidget *parent, KMultiTabBar::KMultiTabBarMode m);
|
||||
int appendTab(const QPixmap &,int=-1,const QString& =QString::null);
|
||||
KMultiTabBarTab *tab(int) const;
|
||||
void removeTab(int);
|
||||
void setPosition(enum KMultiTabBar::KMultiTabBarPosition pos);
|
||||
void setStyle(enum KMultiTabBar::KMultiTabBarStyle style);
|
||||
void showActiveTabTexts(bool show);
|
||||
tabList * tabs(){return &m_tabs;}
|
||||
virtual inline const QColorGroup & palette( void ) const
|
||||
{
|
||||
return( colorGroup() );
|
||||
}
|
||||
private:
|
||||
friend class KMultiTabBar;
|
||||
QWidget *box;
|
||||
QBoxLayout *mainLayout;
|
||||
tabList m_tabs;
|
||||
enum KMultiTabBar::KMultiTabBarPosition m_position;
|
||||
bool m_showActiveTabTexts;
|
||||
enum KMultiTabBar::KMultiTabBarStyle m_style;
|
||||
int m_expandedTabSize;
|
||||
int m_lines;
|
||||
protected:
|
||||
/**
|
||||
* [contentsM|m]ousePressEvent are reimplemented from QScrollView
|
||||
* in order to ignore all mouseEvents on the viewport, so that the
|
||||
* parent can handle them.
|
||||
*/
|
||||
virtual void contentsMousePressEvent(QMouseEvent *);
|
||||
virtual void mousePressEvent(QMouseEvent *);
|
||||
virtual void resizeEvent(QResizeEvent *);
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,8 +1,8 @@
|
||||
/***************************************************************************
|
||||
kmultitabbar.h - description
|
||||
-------------------
|
||||
begin : 2001
|
||||
copyright : (C) 2001,2002,2003 by Joseph Wenninger <jowenn@kde.org>
|
||||
begin : 2001
|
||||
copyright : (C) 2001,2002,2003 by Joseph Wenninger <jowenn@kde.org>
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
@@ -18,50 +18,24 @@
|
||||
|
||||
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., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef _KMultitabbar_h_
|
||||
#define _KMultitabbar_h_
|
||||
|
||||
#include "qt3support.h"
|
||||
#ifndef QT3
|
||||
|
||||
class KMultiTabBarButton;
|
||||
class KMultiTabBarTab;
|
||||
|
||||
#ifdef QT4
|
||||
|
||||
#include <QWidget>
|
||||
#include <QMenu>
|
||||
#include <QLayout>
|
||||
#include <QString>
|
||||
#include <QBoxLayout>
|
||||
#include <QList>
|
||||
#include <QScrollArea>
|
||||
#include <QPushButton>
|
||||
|
||||
typedef QList<KMultiTabBarButton *> buttonList;
|
||||
typedef QList<KMultiTabBarTab *> tabList;
|
||||
|
||||
#else
|
||||
|
||||
#include <qscrollview.h>
|
||||
#include <qvbox.h>
|
||||
#include <qhbox.h>
|
||||
#include <qabstractlayout.h>
|
||||
#include <qstring.h>
|
||||
#include <qptrlist.h>
|
||||
#include <qpushbutton.h>
|
||||
|
||||
typedef QPtrList<KMultiTabBarButton> buttonList;
|
||||
typedef QPtrList<KMultiTabBarTab> tabList;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
class QPixmap;
|
||||
class QPainter;
|
||||
class QFrame;
|
||||
class QMenu;
|
||||
|
||||
class KMultiTabBarPrivate;
|
||||
class KMultiTabBarTabPrivate;
|
||||
@@ -79,18 +53,18 @@ class KMultiTabBar: public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
//enum KMultiTabBarMode{ Horizontal, Vertical };
|
||||
enum KMultiTabBarPosition{DockLeft, DockRight, DockTop, DockBottom};
|
||||
enum KMultiTabBarMode{Horizontal, Vertical};
|
||||
enum KMultiTabBarPosition{Left, Right, Top, Bottom};
|
||||
|
||||
/**
|
||||
* 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), this one is disabled
|
||||
* at the moment, but will be renabled soon too
|
||||
* 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(Qt::Orientation o,QWidget *parent=0);
|
||||
KMultiTabBar(KMultiTabBarMode bm,QWidget *parent=0 );
|
||||
virtual ~KMultiTabBar();
|
||||
|
||||
/**
|
||||
@@ -102,8 +76,8 @@ public:
|
||||
* @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::null);
|
||||
/**
|
||||
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);
|
||||
@@ -113,7 +87,7 @@ public:
|
||||
* @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::null);
|
||||
int appendTab(const QPixmap &pic,int id=-1,const QString& text=QString());
|
||||
/**
|
||||
* remove a tab with a given ID
|
||||
*/
|
||||
@@ -142,18 +116,28 @@ public:
|
||||
* @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
|
||||
*/
|
||||
tabList * tabs();
|
||||
QList<KMultiTabBarTab *>* tabs();
|
||||
/**
|
||||
* be carefull, don't delete buttons yourself and don't delete the list itself
|
||||
*/
|
||||
buttonList * buttons();
|
||||
QList<KMultiTabBarButton *>* buttons();
|
||||
|
||||
/**
|
||||
* might vanish, not sure yet
|
||||
@@ -167,7 +151,7 @@ private:
|
||||
class KMultiTabBarInternal *m_internal;
|
||||
QBoxLayout *m_l;
|
||||
QFrame *m_btnTabSep;
|
||||
buttonList m_buttons;
|
||||
QList<KMultiTabBarButton *> m_buttons;
|
||||
KMultiTabBarPosition m_position;
|
||||
KMultiTabBarPrivate *d;
|
||||
};
|
||||
@@ -245,12 +229,6 @@ public:
|
||||
*/
|
||||
void showActiveTabText(bool show);
|
||||
void resize(){ setSize( neededSize() ); }
|
||||
#ifndef QT4
|
||||
virtual inline const QColorGroup & palette( void ) const
|
||||
{
|
||||
return( colorGroup() );
|
||||
}
|
||||
#endif
|
||||
private:
|
||||
bool m_showActiveTabText;
|
||||
int m_expandedSize;
|
||||
@@ -260,6 +238,7 @@ protected:
|
||||
void setSize(int);
|
||||
int neededSize();
|
||||
void updateState();
|
||||
virtual void paintEvent(QPaintEvent *);
|
||||
virtual void drawButton(QPainter *);
|
||||
virtual void drawButtonLabel(QPainter *);
|
||||
void drawButtonStyled(QPainter *);
|
||||
@@ -272,48 +251,66 @@ public slots:
|
||||
virtual void setIcon(const QString&);
|
||||
virtual void setIcon(const QPixmap&);
|
||||
};
|
||||
/***************************************************************************
|
||||
kmultitabbar_p.h - description
|
||||
-------------------
|
||||
begin : 2003
|
||||
copyright : (C) 2003 by Joseph Wenninger <jowenn@kde.org>
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
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 Q3ScrollView
|
||||
class KMultiTabBarInternal: public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
KMultiTabBarInternal(QWidget *parent,Qt::Orientation o);
|
||||
int appendTab(const QPixmap &,int=-1,const QString& =QString::null);
|
||||
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);
|
||||
tabList * tabs(){return &m_tabs;}
|
||||
#ifndef QT4
|
||||
virtual inline const QColorGroup & palette( void ) const
|
||||
{
|
||||
return( colorGroup() );
|
||||
}
|
||||
#endif
|
||||
QList<KMultiTabBarTab *>* tabs(){return &m_tabs;}
|
||||
private:
|
||||
friend class KMultiTabBar;
|
||||
QWidget *box;
|
||||
QBoxLayout *mainLayout;
|
||||
tabList m_tabs;
|
||||
QList<KMultiTabBarTab *> 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 void drawContents ( QPainter *, int, int, int, int);
|
||||
virtual bool eventFilter(QObject *,QEvent*);
|
||||
// virtual void paintEvent( QPaintEvent * );
|
||||
|
||||
/**
|
||||
* [contentsM|m]ousePressEvent are reimplemented from QScrollView
|
||||
* in order to ignore all mouseEvents on the viewport, so that the
|
||||
* parent can handle them.
|
||||
*/
|
||||
virtual void contentsMousePressEvent(QMouseEvent *);
|
||||
virtual void mousePressEvent(QMouseEvent *);
|
||||
virtual void resizeEvent(QResizeEvent *);
|
||||
};
|
||||
|
||||
|
||||
#else
|
||||
|
||||
#include "kmultitabbar-qt3.h"
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* preset_preview_play_handle.h - play-handle for playing a short preview-sound
|
||||
* of a preset
|
||||
*
|
||||
* Copyright (c) 2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
* Copyright (c) 2005-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
|
||||
*
|
||||
@@ -27,11 +27,11 @@
|
||||
#ifndef _PRESET_PREVIEW_PLAY_HANDLE_H
|
||||
#define _PRESET_PREVIEW_PLAY_HANDLE_H
|
||||
|
||||
#include "play_handle.h"
|
||||
#include "note_play_handle.h"
|
||||
|
||||
#include <qmutex.h>
|
||||
|
||||
class channelTrack;
|
||||
class notePlayHandle;
|
||||
class QMutex;
|
||||
|
||||
|
||||
@@ -41,17 +41,17 @@ public:
|
||||
presetPreviewPlayHandle( const QString & _preset_file );
|
||||
virtual ~presetPreviewPlayHandle();
|
||||
|
||||
static void cleanUp( void );
|
||||
|
||||
|
||||
virtual void play( void );
|
||||
virtual bool done( void ) const;
|
||||
|
||||
static void cleanUp( void );
|
||||
static constNotePlayHandleVector nphsOfChannelTrack(
|
||||
const channelTrack * _ct );
|
||||
|
||||
private:
|
||||
static channelTrack * s_globalChannelTrack;
|
||||
static notePlayHandle * s_globalPreviewNote;
|
||||
static QMutex * s_globalDataMutex;
|
||||
static QMutex s_globalDataMutex;
|
||||
|
||||
notePlayHandle * m_previewNote;
|
||||
|
||||
|
||||
@@ -34,9 +34,17 @@
|
||||
#include <qpair.h>
|
||||
|
||||
#if QT_VERSION >= 0x040000
|
||||
|
||||
#ifndef QT4
|
||||
#define QT4
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#ifndef QT3
|
||||
#define QT3
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -59,11 +59,12 @@ class setupDialog : public QDialog
|
||||
public:
|
||||
enum configTabs
|
||||
{
|
||||
GENERAL_SETTINGS, AUDIO_SETTINGS, MIDI_SETTINGS
|
||||
GENERAL_SETTINGS, DIRECTORY_SETTINGS, PERFORMANCE_SETTINGS,
|
||||
AUDIO_SETTINGS, MIDI_SETTINGS
|
||||
} ;
|
||||
|
||||
setupDialog( configTabs _tab_to_open = GENERAL_SETTINGS );
|
||||
~setupDialog();
|
||||
virtual ~setupDialog();
|
||||
|
||||
|
||||
protected slots:
|
||||
@@ -100,6 +101,10 @@ private slots:
|
||||
void openVSTDir( void );
|
||||
|
||||
|
||||
void toggleDisableChActInd( bool _disabled );
|
||||
void toggleManualChPiano( bool _enabled );
|
||||
|
||||
|
||||
private:
|
||||
tabBar * m_tabBar;
|
||||
|
||||
@@ -121,6 +126,10 @@ private:
|
||||
QString m_vstDir;
|
||||
|
||||
|
||||
bool m_disableChActInd;
|
||||
bool m_manualChPiano;
|
||||
|
||||
|
||||
typedef QMap<QString, audioDevice::setupWidget *> aswMap;
|
||||
typedef QMap<QString, midiClient::setupWidget *> mswMap;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* side_bar.h - code for side-bar in LMMS
|
||||
*
|
||||
* Copyright (c) 2004-2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
|
||||
*
|
||||
@@ -47,10 +47,11 @@ class sideBar : public KMultiTabBar
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
sideBar( Qt::Orientation _o, QWidget * _parent ) :
|
||||
KMultiTabBar( _o, _parent )
|
||||
sideBar( KMultiTabBarMode _m, QWidget * _parent ) :
|
||||
KMultiTabBar( _m, _parent )
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~sideBar()
|
||||
{
|
||||
}
|
||||
|
||||
BIN
resources/setup_performance.png
Normal file
BIN
resources/setup_performance.png
Normal file
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* audio_alsa.cpp - device-class which implements ALSA-PCM-output
|
||||
*
|
||||
* Copyright (c) 2004-2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
|
||||
*
|
||||
@@ -182,8 +182,12 @@ void audioALSA::startProcessing( void )
|
||||
if( !isRunning() )
|
||||
{
|
||||
start(
|
||||
#ifdef QT4
|
||||
QThread::HighPriority
|
||||
#else
|
||||
#if QT_VERSION >= 0x030200
|
||||
QThread::HighestPriority
|
||||
#endif
|
||||
#endif
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* audio_jack.cpp - support for JACK-transport
|
||||
*
|
||||
* Copyright (c) 2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
* Copyright (c) 2005-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
|
||||
*
|
||||
@@ -108,7 +108,9 @@ audioJACK::audioJACK( Uint32 _sample_rate, bool & _success_ful ) :
|
||||
#endif
|
||||
jack_get_client_name( m_client ) );
|
||||
}
|
||||
#else
|
||||
|
||||
#else /* OLD_JACK */
|
||||
|
||||
m_client = jack_client_new( client_name.
|
||||
#ifdef QT4
|
||||
toAscii().constData()
|
||||
@@ -116,6 +118,12 @@ audioJACK::audioJACK( Uint32 _sample_rate, bool & _success_ful ) :
|
||||
ascii()
|
||||
#endif
|
||||
);
|
||||
if( m_client == NULL )
|
||||
{
|
||||
printf( "jack_client_new() failed\n" );
|
||||
return;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
// set process-callback
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* audio_oss.cpp - device-class that implements OSS-PCM-output
|
||||
*
|
||||
* Copyright (c) 2004-2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
|
||||
*
|
||||
@@ -285,8 +285,12 @@ void audioOSS::startProcessing( void )
|
||||
if( !isRunning() )
|
||||
{
|
||||
start(
|
||||
#ifdef QT4
|
||||
QThread::HighPriority
|
||||
#else
|
||||
#if QT_VERSION >= 0x030200
|
||||
QThread::HighestPriority
|
||||
#endif
|
||||
#endif
|
||||
);
|
||||
}
|
||||
|
||||
@@ -41,6 +41,9 @@
|
||||
#include <qcombobox.h>
|
||||
#include <qwhatsthis.h>
|
||||
|
||||
#define setCurrentIndex setCurrentItem
|
||||
#define currentIndex currentItem
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -61,6 +64,7 @@
|
||||
#include "tempo_sync_knob.h"
|
||||
#include "channel_track.h"
|
||||
#include "led_checkbox.h"
|
||||
#include "preset_preview_play_handle.h"
|
||||
|
||||
|
||||
|
||||
@@ -208,7 +212,7 @@ arpAndChordsTabWidget::arpAndChordsTabWidget( channelTrack * _channel_track ) :
|
||||
CHORDS_GROUPBOX_HEIGHT );
|
||||
|
||||
m_chordsComboBox = new QComboBox( m_chordsGroupBox );
|
||||
m_chordsComboBox->setFont( pointSize<9>( m_chordsComboBox->font() ) );
|
||||
m_chordsComboBox->setFont( pointSize<8>( m_chordsComboBox->font() ) );
|
||||
m_chordsComboBox->setGeometry( 10, 25, 140, 22 );
|
||||
|
||||
for( int i = 0; s_chords[i].interval[0] != -1; ++i )
|
||||
@@ -259,7 +263,7 @@ arpAndChordsTabWidget::arpAndChordsTabWidget( channelTrack * _channel_track ) :
|
||||
"major or minor triads. But there're a lot of other "
|
||||
"possible chords, you can select." ) );
|
||||
m_arpComboBox = new QComboBox( m_arpGroupBox );
|
||||
m_arpComboBox->setFont( pointSize<9>( m_arpComboBox->font() ) );
|
||||
m_arpComboBox->setFont( pointSize<8>( m_arpComboBox->font() ) );
|
||||
m_arpComboBox->setGeometry( 10, 25, 140, 22 );
|
||||
|
||||
for( int i = 0; s_chords[i].interval[0] != -1; ++i )
|
||||
@@ -270,6 +274,8 @@ arpAndChordsTabWidget::arpAndChordsTabWidget( channelTrack * _channel_track ) :
|
||||
#endif
|
||||
) );
|
||||
}
|
||||
|
||||
|
||||
m_arpRangeKnob = new knob( knobBright_26, m_arpGroupBox,
|
||||
tr( "Arpeggio range" ) );
|
||||
m_arpRangeKnob->setLabel( tr( "RANGE" ) );
|
||||
@@ -321,8 +327,8 @@ arpAndChordsTabWidget::arpAndChordsTabWidget( channelTrack * _channel_track ) :
|
||||
"arpeggio-tone that should be played. With this you "
|
||||
"can make cool staccato-arpeggios." ) );
|
||||
|
||||
m_arpDirectionLbl = new QLabel( tr( "DIRECTION:" ), m_arpGroupBox );
|
||||
m_arpDirectionLbl->setGeometry( 10, 60, 64, 8 );
|
||||
m_arpDirectionLbl = new QLabel( tr( "Direction:" ), m_arpGroupBox );
|
||||
m_arpDirectionLbl->setGeometry( 10, 60, 64, 10 );
|
||||
m_arpDirectionLbl->setFont( pointSize<7>( m_arpDirectionLbl->font() ) );
|
||||
|
||||
|
||||
@@ -392,9 +398,21 @@ arpAndChordsTabWidget::arpAndChordsTabWidget( channelTrack * _channel_track ) :
|
||||
m_arpDirections_group->hide();
|
||||
#endif
|
||||
|
||||
m_sortMode = new ledCheckBox( tr( "SORT-MODE" ), m_arpGroupBox );
|
||||
m_sortMode->move( 10, 90 );
|
||||
/* m_sortMode = new ledCheckBox( tr( "Sort-mode" ), m_arpGroupBox );
|
||||
m_sortMode->move( 10, 90 );*/
|
||||
|
||||
QLabel * mode_lbl = new QLabel( tr( "Mode:" ), m_arpGroupBox );
|
||||
mode_lbl->setGeometry( 10, 90, 64, 10 );
|
||||
mode_lbl->setFont( pointSize<7>( mode_lbl->font() ) );
|
||||
|
||||
m_arpModeComboBox = new QComboBox( m_arpGroupBox );
|
||||
m_arpModeComboBox->setFont( pointSize<8>( m_arpModeComboBox->font() ) );
|
||||
m_arpModeComboBox->setGeometry( 70, 87, 80, 22 );
|
||||
|
||||
m_arpModeComboBox->addItem( tr( "Free" ) );
|
||||
m_arpModeComboBox->addItem( tr( "Sort" ) );
|
||||
m_arpModeComboBox->addItem( tr( "Sync" ) );
|
||||
m_arpModeComboBox->setCurrentItem( 0 );
|
||||
}
|
||||
|
||||
|
||||
@@ -421,11 +439,8 @@ void arpAndChordsTabWidget::processNote( notePlayHandle * _n )
|
||||
m_chordsGroupBox->isActive() == TRUE )
|
||||
{
|
||||
// then insert sub-notes for chord
|
||||
#ifdef QT4
|
||||
const int selected_chord = m_chordsComboBox->currentIndex();
|
||||
#else
|
||||
const int selected_chord = m_chordsComboBox->currentItem();
|
||||
#endif
|
||||
|
||||
for( int octave_cnt = 0;
|
||||
octave_cnt < m_chordRangeKnob->value(); ++octave_cnt )
|
||||
{
|
||||
@@ -482,18 +497,21 @@ void arpAndChordsTabWidget::processNote( notePlayHandle * _n )
|
||||
}
|
||||
|
||||
|
||||
#ifdef QT4
|
||||
const int selected_arp = m_arpComboBox->currentIndex();
|
||||
#else
|
||||
const int selected_arp = m_arpComboBox->currentItem();
|
||||
#endif
|
||||
|
||||
constNotePlayHandleVector cnphv = notePlayHandle::nphsOfChannelTrack(
|
||||
_n->getChannelTrack() );
|
||||
// VERY unlikely, but better check this before ending in a crash
|
||||
if( cnphv.size() == 0 )
|
||||
if( m_arpModeComboBox->currentIndex() != FREE && cnphv.size() == 0 )
|
||||
{
|
||||
return;
|
||||
// maybe we're playing only a preset-preview-note?
|
||||
cnphv = presetPreviewPlayHandle::nphsOfChannelTrack(
|
||||
_n->getChannelTrack() );
|
||||
if( cnphv.size() == 0 )
|
||||
{
|
||||
// still nothing found here, so lets return
|
||||
//return;
|
||||
cnphv.push_back( _n );
|
||||
}
|
||||
}
|
||||
|
||||
const int cur_chord_size = getChordSize( s_chords[selected_arp] );
|
||||
@@ -509,7 +527,7 @@ void arpAndChordsTabWidget::processNote( notePlayHandle * _n )
|
||||
// used for calculating remaining frames for arp-note, we have to add
|
||||
// arp_frames-1, otherwise the first arp-note will not be setup
|
||||
// correctly... -> arp_frames frames silence at the start of every note!
|
||||
int cur_frame = ( ( m_sortMode->isChecked() == TRUE ) ?
|
||||
int cur_frame = ( ( m_arpModeComboBox->currentIndex() != FREE ) ?
|
||||
cnphv.first()->totalFramesPlayed() :
|
||||
_n->totalFramesPlayed() )
|
||||
+ arp_frames - 1;
|
||||
@@ -533,14 +551,14 @@ void arpAndChordsTabWidget::processNote( notePlayHandle * _n )
|
||||
// init with zero
|
||||
int cur_arp_idx = 0;
|
||||
|
||||
if( m_sortMode->isChecked() == TRUE &&
|
||||
if( m_arpModeComboBox->currentIndex() == SORT &&
|
||||
( ( cur_frame / arp_frames ) % total_range ) /
|
||||
range != (csize) _n->index() )
|
||||
range != (Uint32) _n->index() )
|
||||
{
|
||||
// update counters
|
||||
frames_processed += arp_frames;
|
||||
cur_frame += arp_frames;
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
|
||||
// process according to arpeggio-direction...
|
||||
@@ -609,7 +627,8 @@ void arpAndChordsTabWidget::processNote( notePlayHandle * _n )
|
||||
// and is_arp_note=TRUE
|
||||
notePlayHandle * note_play_handle = new notePlayHandle(
|
||||
_n->getChannelTrack(),
|
||||
( ( m_sortMode->isChecked() == TRUE ) ?
|
||||
( ( m_arpModeComboBox->currentIndex() !=
|
||||
FREE ) ?
|
||||
cnphv.first()->framesAhead() :
|
||||
_n->framesAhead() ) +
|
||||
frames_processed,
|
||||
@@ -628,8 +647,10 @@ void arpAndChordsTabWidget::processNote( notePlayHandle * _n )
|
||||
|
||||
// make sure, note is handled as arp-base-note, even if we didn't add a
|
||||
// sub-note so far
|
||||
_n->setArpNote( TRUE );
|
||||
|
||||
if( m_arpModeComboBox->currentIndex() != FREE )
|
||||
{
|
||||
_n->setArpNote( TRUE );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -640,19 +661,11 @@ void arpAndChordsTabWidget::saveSettings( QDomDocument & _doc,
|
||||
{
|
||||
QDomElement act_de = _doc.createElement( nodeName() );
|
||||
act_de.setAttribute( "chorddisabled", !m_chordsGroupBox->isActive() );
|
||||
#ifdef QT4
|
||||
act_de.setAttribute( "chord", m_chordsComboBox->currentIndex() );
|
||||
#else
|
||||
act_de.setAttribute( "chord", m_chordsComboBox->currentItem() );
|
||||
#endif
|
||||
act_de.setAttribute( "chordrange", m_chordRangeKnob->value() );
|
||||
|
||||
act_de.setAttribute( "arpdisabled", !m_arpGroupBox->isActive() );
|
||||
#ifdef QT4
|
||||
act_de.setAttribute( "arp", m_arpComboBox->currentIndex() );
|
||||
#else
|
||||
act_de.setAttribute( "arp", m_arpComboBox->currentItem() );
|
||||
#endif
|
||||
act_de.setAttribute( "arprange", m_arpRangeKnob->value() );
|
||||
act_de.setAttribute( "arptime", m_arpTimeKnob->value() );
|
||||
act_de.setAttribute( "arpgate", m_arpGateKnob->value() );
|
||||
@@ -660,7 +673,7 @@ void arpAndChordsTabWidget::saveSettings( QDomDocument & _doc,
|
||||
act_de.setAttribute( "arpsyncmode",
|
||||
( int ) m_arpTimeKnob->getSyncMode() );
|
||||
|
||||
act_de.setAttribute( "sortmode", m_sortMode->isChecked() );
|
||||
act_de.setAttribute( "arpmode", m_arpModeComboBox->currentIndex() );
|
||||
_parent.appendChild( act_de );
|
||||
}
|
||||
|
||||
@@ -671,17 +684,9 @@ void arpAndChordsTabWidget::loadSettings( const QDomElement & _this )
|
||||
{
|
||||
m_chordsGroupBox->setState( !_this.attribute
|
||||
( "chorddisabled" ).toInt() );
|
||||
#ifdef QT4
|
||||
m_chordsComboBox->setCurrentIndex( _this.attribute( "chord" ).toInt() );
|
||||
#else
|
||||
m_chordsComboBox->setCurrentItem( _this.attribute( "chord" ).toInt() );
|
||||
#endif
|
||||
m_chordRangeKnob->setValue( _this.attribute( "chordrange" ).toFloat() );
|
||||
#ifdef QT4
|
||||
m_arpComboBox->setCurrentIndex( _this.attribute( "arp" ).toInt() );
|
||||
#else
|
||||
m_arpComboBox->setCurrentItem( _this.attribute( "arp" ).toInt() );
|
||||
#endif
|
||||
m_arpRangeKnob->setValue( _this.attribute( "arprange" ).toFloat() );
|
||||
m_arpTimeKnob->setValue( _this.attribute( "arptime" ).toFloat() );
|
||||
m_arpGateKnob->setValue( _this.attribute( "arpgate" ).toFloat() );
|
||||
@@ -691,7 +696,8 @@ void arpAndChordsTabWidget::loadSettings( const QDomElement & _this )
|
||||
( tempoSyncKnob::tempoSyncMode ) _this.attribute(
|
||||
"arpsyncmode" ).toInt() );
|
||||
|
||||
m_sortMode->setChecked( _this.attribute( "sortmode" ).toInt() );
|
||||
m_arpModeComboBox->setCurrentIndex( _this.attribute( "arpmode"
|
||||
).toInt() );
|
||||
|
||||
m_arpGroupBox->setState( m_arpDirection != OFF &&
|
||||
!_this.attribute( "arpdisabled" ).toInt() );
|
||||
@@ -766,6 +772,8 @@ void arpAndChordsTabWidget::arpRandomToggled( bool _on )
|
||||
|
||||
|
||||
#undef setChecked
|
||||
#undef currentIndex
|
||||
#undef setCurrentIndex
|
||||
|
||||
#include "arp_and_chords_tab_widget.moc"
|
||||
|
||||
|
||||
@@ -780,7 +780,7 @@ bool configManager::loadConfigFile( void )
|
||||
stringPairVector attr;
|
||||
QDomNamedNodeMap node_attr =
|
||||
node.toElement().attributes();
|
||||
for( unsigned int i = 0; i < node_attr.count(); ++i )
|
||||
for( csize i = 0; i < node_attr.count(); ++i )
|
||||
{
|
||||
QDomNode n = node_attr.item( i );
|
||||
if( n.isAttr() )
|
||||
|
||||
@@ -319,7 +319,7 @@ listView::listView( QWidget * _parent ) :
|
||||
setSorting( -1 );
|
||||
setShowToolTips( TRUE );
|
||||
|
||||
setFont( pointSize<8>( font() ) );
|
||||
setFont( pointSizeF( font(), 7.5f ) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -164,7 +164,7 @@ int main( int argc, char * * argv )
|
||||
pal.setColor( QPalette::Text, QColor( 224, 224, 224 ) );
|
||||
pal.setColor( QPalette::Button, QColor( 160, 160, 160 ) );
|
||||
pal.setColor( QPalette::ButtonText, QColor( 255, 255, 255 ) );
|
||||
pal.setColor( QPalette::Highlight, QColor( 255, 224, 224 ) );
|
||||
pal.setColor( QPalette::Highlight, QColor( 224, 224, 224 ) );
|
||||
pal.setColor( QPalette::HighlightedText, QColor( 0, 0, 0 ) );
|
||||
#else
|
||||
pal.setColor( QColorGroup::Background, QColor( 128, 128, 128 ) );
|
||||
|
||||
@@ -93,7 +93,7 @@ midiTabWidget::midiTabWidget( channelTrack * _channel_track,
|
||||
outputChannelChanged( m_outputChannelSpinBox->value() );
|
||||
|
||||
|
||||
m_receiveCheckBox = new ledCheckBox( tr( "RECEIVE MIDI-EVENTS" ),
|
||||
m_receiveCheckBox = new ledCheckBox( tr( "Receive MIDI-events" ),
|
||||
m_setupTabWidget );
|
||||
m_receiveCheckBox->move( 10, 34 );
|
||||
connect( m_receiveCheckBox, SIGNAL( toggled( bool ) ),
|
||||
@@ -102,7 +102,7 @@ midiTabWidget::midiTabWidget( channelTrack * _channel_track,
|
||||
m_inputChannelSpinBox, SLOT( setEnabled( bool ) ) );
|
||||
|
||||
|
||||
m_sendCheckBox = new ledCheckBox( tr( "SEND MIDI-EVENTS" ),
|
||||
m_sendCheckBox = new ledCheckBox( tr( "Send MIDI-events" ),
|
||||
m_setupTabWidget );
|
||||
m_sendCheckBox->move( 10, 94 );
|
||||
connect( m_sendCheckBox, SIGNAL( toggled( bool ) ),
|
||||
|
||||
@@ -51,7 +51,7 @@ nameLabel::nameLabel( const QString & _initial_name, QWidget * _parent,
|
||||
QLabel( _initial_name, _parent ),
|
||||
m_pm( _pm )
|
||||
{
|
||||
#ifndef QT4
|
||||
#ifdef QT3
|
||||
setBackgroundMode( Qt::NoBackground );
|
||||
#endif
|
||||
}
|
||||
@@ -100,6 +100,7 @@ void nameLabel::paintEvent( QPaintEvent * )
|
||||
{
|
||||
#ifdef QT4
|
||||
QPainter p( this );
|
||||
p.fillRect( rect(), palette().color( backgroundRole() ) );
|
||||
#else
|
||||
QPixmap draw_pm( rect().size() );
|
||||
draw_pm.fill( this, rect().topLeft() );
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "midi_port.h"
|
||||
#include "song_editor.h"
|
||||
#include "piano_widget.h"
|
||||
#include "config_mgr.h"
|
||||
|
||||
|
||||
|
||||
@@ -58,7 +59,11 @@ notePlayHandle::notePlayHandle( channelTrack * _chnl_trk,
|
||||
m_muted( FALSE )
|
||||
{
|
||||
setFrames( _frames );
|
||||
m_channelTrack->m_pianoWidget->setKeyState( key(), TRUE );
|
||||
if( !configManager::inst()->value( "ui",
|
||||
"manualchannelpiano" ).toInt() )
|
||||
{
|
||||
m_channelTrack->m_pianoWidget->setKeyState( key(), TRUE );
|
||||
}
|
||||
// send MIDI-note-on-event
|
||||
m_channelTrack->processOutEvent( midiEvent( NOTE_ON,
|
||||
m_channelTrack->m_midiPort->outputChannel(),
|
||||
@@ -243,7 +248,12 @@ void notePlayHandle::noteOff( Uint32 _s )
|
||||
{
|
||||
m_releaseFramesToDo =
|
||||
m_channelTrack->m_envWidget->releaseFrames();
|
||||
m_channelTrack->m_pianoWidget->setKeyState( key(), FALSE );
|
||||
if( !configManager::inst()->value( "ui",
|
||||
"manualchannelpiano" ).toInt() )
|
||||
{
|
||||
m_channelTrack->m_pianoWidget->setKeyState( key(),
|
||||
FALSE );
|
||||
}
|
||||
// send MIDI-note-off-event
|
||||
m_channelTrack->processOutEvent( midiEvent( NOTE_OFF,
|
||||
m_channelTrack->m_midiPort->outputChannel(),
|
||||
|
||||
@@ -2093,8 +2093,14 @@ void pianoRoll::recordNote( const note & _n )
|
||||
note n( _n );
|
||||
n.setPos( songEditor::inst()->getPlayPos(
|
||||
songEditor::PLAY_PATTERN ) - n.length() );
|
||||
#ifndef QT4
|
||||
qApp->lock();
|
||||
#endif
|
||||
m_pattern->addNote( n );
|
||||
update();
|
||||
#ifndef QT4
|
||||
qApp->unlock();
|
||||
#endif
|
||||
songEditor::inst()->setModified();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* preset_preview_play_handle.cpp - implementation of class
|
||||
* presetPreviewPlayHandle
|
||||
*
|
||||
* Copyright (c) 2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
* Copyright (c) 2005-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
|
||||
*
|
||||
@@ -79,13 +79,16 @@ private:
|
||||
{
|
||||
hide();
|
||||
}
|
||||
~blindTrackContainer()
|
||||
|
||||
virtual ~blindTrackContainer()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
static blindTrackContainer * s_instanceOfMe;
|
||||
|
||||
friend void presetPreviewPlayHandle::cleanUp( void );
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
@@ -94,7 +97,7 @@ blindTrackContainer * blindTrackContainer::s_instanceOfMe = NULL;
|
||||
|
||||
channelTrack * presetPreviewPlayHandle::s_globalChannelTrack = NULL;
|
||||
notePlayHandle * presetPreviewPlayHandle::s_globalPreviewNote = NULL;
|
||||
QMutex * presetPreviewPlayHandle::s_globalDataMutex = NULL;
|
||||
QMutex presetPreviewPlayHandle::s_globalDataMutex;
|
||||
|
||||
|
||||
presetPreviewPlayHandle::presetPreviewPlayHandle(
|
||||
@@ -102,12 +105,13 @@ presetPreviewPlayHandle::presetPreviewPlayHandle(
|
||||
playHandle( PRESET_PREVIEW_PLAY_HANDLE ),
|
||||
m_previewNote( NULL )
|
||||
{
|
||||
if( s_globalDataMutex == NULL )
|
||||
/* if( s_globalDataMutex == NULL )
|
||||
{
|
||||
s_globalDataMutex = new QMutex;
|
||||
}
|
||||
|
||||
s_globalDataMutex->lock();
|
||||
s_globalDataMutex->lock();*/
|
||||
s_globalDataMutex.lock();
|
||||
|
||||
if( s_globalPreviewNote != NULL )
|
||||
{
|
||||
@@ -141,7 +145,7 @@ presetPreviewPlayHandle::presetPreviewPlayHandle(
|
||||
|
||||
s_globalPreviewNote = m_previewNote;
|
||||
|
||||
s_globalDataMutex->unlock();
|
||||
s_globalDataMutex.unlock();
|
||||
}
|
||||
|
||||
|
||||
@@ -149,21 +153,13 @@ presetPreviewPlayHandle::presetPreviewPlayHandle(
|
||||
|
||||
presetPreviewPlayHandle::~presetPreviewPlayHandle()
|
||||
{
|
||||
s_globalDataMutex->lock();
|
||||
s_globalDataMutex.lock();
|
||||
if( m_previewNote->muted() == FALSE )
|
||||
{
|
||||
s_globalPreviewNote = NULL;
|
||||
}
|
||||
delete m_previewNote;
|
||||
s_globalDataMutex->unlock();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void presetPreviewPlayHandle::cleanUp( void )
|
||||
{
|
||||
delete blindTrackContainer::inst();
|
||||
s_globalDataMutex.unlock();
|
||||
}
|
||||
|
||||
|
||||
@@ -182,3 +178,31 @@ bool presetPreviewPlayHandle::done( void ) const
|
||||
return( m_previewNote->muted() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void presetPreviewPlayHandle::cleanUp( void )
|
||||
{
|
||||
delete blindTrackContainer::inst();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
constNotePlayHandleVector presetPreviewPlayHandle::nphsOfChannelTrack(
|
||||
const channelTrack * _ct )
|
||||
{
|
||||
constNotePlayHandleVector cnphv;
|
||||
s_globalDataMutex.lock();
|
||||
if( s_globalPreviewNote != NULL &&
|
||||
s_globalPreviewNote->getChannelTrack() == _ct )
|
||||
{
|
||||
cnphv.push_back( s_globalPreviewNote );
|
||||
}
|
||||
s_globalDataMutex.unlock();
|
||||
return( cnphv );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -109,7 +109,12 @@ setupDialog::setupDialog( configTabs _tab_to_open ) :
|
||||
m_noMsgAfterSetup( configManager::inst()->value( "app",
|
||||
"nomsgaftersetup" ).toInt() ),
|
||||
m_workingDir( configManager::inst()->workingDir() ),
|
||||
m_vstDir( configManager::inst()->vstDir() )
|
||||
m_vstDir( configManager::inst()->vstDir() ),
|
||||
m_disableChActInd( configManager::inst()->value( "ui",
|
||||
"disablechannelactivityindicators" ).toInt() ),
|
||||
m_manualChPiano( configManager::inst()->value( "ui",
|
||||
"manualchannelpiano" ).toInt() )
|
||||
|
||||
{
|
||||
setWindowIcon( embed::getIconPixmap( "setup_general" ) );
|
||||
setWindowTitle( tr( "Setup LMMS" ) );
|
||||
@@ -288,6 +293,42 @@ setupDialog::setupDialog( configTabs _tab_to_open ) :
|
||||
|
||||
|
||||
|
||||
QWidget * performance = new QWidget( ws );
|
||||
performance->setFixedSize( 360, 200 );
|
||||
QVBoxLayout * perf_layout = new QVBoxLayout( performance );
|
||||
perf_layout->setSpacing( 0 );
|
||||
perf_layout->setMargin( 0 );
|
||||
labelWidget( performance, tr( "Performance settings" ) );
|
||||
|
||||
tabWidget * ui_fx_tw = new tabWidget( tr( "UI effects vs. "
|
||||
"performance" ).toUpper(),
|
||||
performance );
|
||||
ui_fx_tw->setFixedHeight( 70 );
|
||||
|
||||
ledCheckBox * disable_ch_act_ind = new ledCheckBox(
|
||||
tr( "Disable channel activity indicators" ),
|
||||
ui_fx_tw );
|
||||
disable_ch_act_ind->move( 10, 20 );
|
||||
disable_ch_act_ind->setChecked( m_disableChActInd );
|
||||
connect( disable_ch_act_ind, SIGNAL( toggled( bool ) ),
|
||||
this, SLOT( toggleDisableChActInd( bool ) ) );
|
||||
|
||||
|
||||
ledCheckBox * manual_ch_piano = new ledCheckBox(
|
||||
tr( "Only press keys on channel-piano manually" ),
|
||||
ui_fx_tw );
|
||||
manual_ch_piano->move( 10, 40 );
|
||||
manual_ch_piano->setChecked( m_manualChPiano );
|
||||
connect( manual_ch_piano, SIGNAL( toggled( bool ) ),
|
||||
this, SLOT( toggleManualChPiano( bool ) ) );
|
||||
|
||||
|
||||
|
||||
|
||||
perf_layout->addWidget( ui_fx_tw );
|
||||
perf_layout->addStretch();
|
||||
|
||||
|
||||
|
||||
QWidget * audio = new QWidget( ws );
|
||||
audio->setFixedSize( 360, 200 );
|
||||
@@ -297,7 +338,7 @@ setupDialog::setupDialog( configTabs _tab_to_open ) :
|
||||
labelWidget( audio, tr( "Audio settings" ) );
|
||||
|
||||
tabWidget * audioiface_tw = new tabWidget( tr( "AUDIO INTERFACE" ),
|
||||
audio );
|
||||
audio );
|
||||
audioiface_tw->setFixedHeight( 60 );
|
||||
|
||||
m_audioInterfaces = new QComboBox( audioiface_tw );
|
||||
@@ -466,9 +507,12 @@ setupDialog::setupDialog( configTabs _tab_to_open ) :
|
||||
m_tabBar->addTab( directories, tr( "Directories" ), 1, FALSE, TRUE
|
||||
)->setIcon( embed::getIconPixmap(
|
||||
"setup_directories" ) );
|
||||
m_tabBar->addTab( audio, tr( "Audio settings" ), 2, FALSE, TRUE
|
||||
m_tabBar->addTab( performance, tr( "Performance settings" ), 2, FALSE,
|
||||
TRUE )->setIcon( embed::getIconPixmap(
|
||||
"setup_performance" ) );
|
||||
m_tabBar->addTab( audio, tr( "Audio settings" ), 3, FALSE, TRUE
|
||||
)->setIcon( embed::getIconPixmap( "setup_audio" ) );
|
||||
m_tabBar->addTab( midi, tr( "MIDI settings" ), 3, TRUE, TRUE
|
||||
m_tabBar->addTab( midi, tr( "MIDI settings" ), 4, TRUE, TRUE
|
||||
)->setIcon( embed::getIconPixmap( "setup_midi" ) );
|
||||
|
||||
#undef setIcon
|
||||
@@ -541,6 +585,11 @@ void setupDialog::accept( void )
|
||||
QString::number( m_noWizard ) );
|
||||
configManager::inst()->setValue( "app", "nomsgaftersetup",
|
||||
QString::number( m_noMsgAfterSetup ) );
|
||||
configManager::inst()->setValue( "ui",
|
||||
"disablechannelactivityindicators",
|
||||
QString::number( m_disableChActInd ) );
|
||||
configManager::inst()->setValue( "ui", "manualchannelpiano",
|
||||
QString::number( m_manualChPiano ) );
|
||||
|
||||
configManager::inst()->setWorkingDir( m_workingDir );
|
||||
configManager::inst()->setVSTDir( m_vstDir );
|
||||
@@ -590,7 +639,7 @@ void setupDialog::setBufferSize( int _value )
|
||||
}
|
||||
|
||||
m_bufferSize = _value * 64;
|
||||
m_bufSizeLbl->setText( tr( "FRAMES: %1\nLATENCY: %2 ms" ).arg(
|
||||
m_bufSizeLbl->setText( tr( "Frames: %1\nLatency: %2 ms" ).arg(
|
||||
m_bufferSize ).arg(
|
||||
1000.0f * m_bufferSize /
|
||||
mixer::inst()->sampleRate(),
|
||||
@@ -627,6 +676,62 @@ void setupDialog::displayBufSizeHelp( void )
|
||||
|
||||
|
||||
|
||||
void setupDialog::toggleToolTips( bool _disabled )
|
||||
{
|
||||
m_disableToolTips = _disabled;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void setupDialog::toggleKnobUsability( bool _classical )
|
||||
{
|
||||
m_classicalKnobUsability = _classical;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void setupDialog::toggleGIMPLikeWindows( bool _enabled )
|
||||
{
|
||||
m_gimpLikeWindows = _enabled;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void setupDialog::toggleNoWizard( bool _enabled )
|
||||
{
|
||||
m_noWizard = _enabled;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void setupDialog::toggleNoMsgAfterSetup( bool _enabled )
|
||||
{
|
||||
m_noMsgAfterSetup = _enabled;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void setupDialog::toggleDisableChActInd( bool _disabled )
|
||||
{
|
||||
m_disableChActInd = _disabled;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void setupDialog::toggleManualChPiano( bool _enabled )
|
||||
{
|
||||
m_manualChPiano = _enabled;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void setupDialog::openWorkingDir( void )
|
||||
{
|
||||
#ifdef QT4
|
||||
@@ -761,45 +866,5 @@ void setupDialog::displayMIDIHelp( void )
|
||||
|
||||
|
||||
|
||||
void setupDialog::toggleToolTips( bool _disabled )
|
||||
{
|
||||
m_disableToolTips = _disabled;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void setupDialog::toggleKnobUsability( bool _classical )
|
||||
{
|
||||
m_classicalKnobUsability = _classical;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void setupDialog::toggleGIMPLikeWindows( bool _enabled )
|
||||
{
|
||||
m_gimpLikeWindows = _enabled;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void setupDialog::toggleNoWizard( bool _enabled )
|
||||
{
|
||||
m_noWizard = _enabled;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void setupDialog::toggleNoMsgAfterSetup( bool _enabled )
|
||||
{
|
||||
m_noMsgAfterSetup = _enabled;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#include "setup_dialog.moc"
|
||||
|
||||
|
||||
@@ -920,12 +920,10 @@ trackWidget::trackWidget( track * _track, QWidget * _parent ) :
|
||||
m_initialMouseX( -1 )
|
||||
{
|
||||
#ifdef QT4
|
||||
{
|
||||
QPalette pal;
|
||||
pal.setColor( m_trackOperationsWidget.backgroundRole(),
|
||||
QPalette pal;
|
||||
pal.setColor( m_trackOperationsWidget.backgroundRole(),
|
||||
QColor( 128, 128, 128 ) );
|
||||
m_trackOperationsWidget.setPalette( pal );
|
||||
}
|
||||
m_trackOperationsWidget.setPalette( pal );
|
||||
#else
|
||||
m_trackOperationsWidget.setPaletteBackgroundColor(
|
||||
QColor( 128, 128, 128 ) );
|
||||
@@ -934,9 +932,8 @@ trackWidget::trackWidget( track * _track, QWidget * _parent ) :
|
||||
|
||||
|
||||
#ifdef QT4
|
||||
QPalette pal;
|
||||
pal.setColor( m_trackSettingsWidget.backgroundRole(),
|
||||
QColor( 64, 64, 64 ) );
|
||||
QColor( 64, 64, 64 ) );
|
||||
m_trackSettingsWidget.setPalette( pal );
|
||||
#else
|
||||
m_trackSettingsWidget.setPaletteBackgroundColor( QColor( 64, 64, 64 ) );
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* mmp.cpp - implementation of class multimediaProject
|
||||
*
|
||||
* Copyright (c) 2004-2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
|
||||
*
|
||||
@@ -196,7 +196,8 @@ bool multimediaProject::writeFile( const QString & _fn, bool _overwrite_check )
|
||||
}
|
||||
else if( type() == SONG_PROJECT )
|
||||
{
|
||||
if( fn.section( '.',-1 ) != "mmp" )
|
||||
if( fn.section( '.', -1 ) != "mmp" &&
|
||||
fn.section( '.', -1 ) != "mpt" )
|
||||
{
|
||||
fn += ".mmp";
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* midi_alsa_seq.cpp - ALSA-sequencer-client
|
||||
*
|
||||
* Copyright (c) 2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
* Copyright (c) 2005-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
|
||||
*
|
||||
@@ -101,7 +101,7 @@ midiALSASeq::midiALSASeq( void ) :
|
||||
|
||||
start(
|
||||
#if QT_VERSION >= 0x030200
|
||||
QThread::LowPriority
|
||||
QThread::IdlePriority
|
||||
#endif
|
||||
);
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -73,8 +73,8 @@ ledCheckBox::ledCheckBox( const QString & _text, QWidget * _parent,
|
||||
setBackgroundMode( Qt::PaletteBackground );
|
||||
#endif
|
||||
|
||||
setFont( pointSize<7>( font() ) );
|
||||
setFixedSize( m_ledOffPixmap->width() + 6 +
|
||||
setFont( pointSizeF( font(), 7.5f ) );
|
||||
setFixedSize( m_ledOffPixmap->width() + 4 +
|
||||
QFontMetrics( font() ).width( text() ),
|
||||
m_ledOffPixmap->height() );
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* side_bar_widget.cpp - implementation of base-widget for side-bar
|
||||
*
|
||||
* Copyright (c) 2004-2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
|
||||
*
|
||||
@@ -55,6 +55,7 @@ sideBarWidget::sideBarWidget( const QString & _title, const QPixmap & _icon,
|
||||
m_contents = new QWidget( this );
|
||||
m_layout = new QVBoxLayout( m_contents );
|
||||
m_layout->setSpacing( 5 );
|
||||
m_layout->setMargin( 0 );
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user