[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src/traverso Interface.cpp widgets/Tra...
From: |
Nicola Doebelin |
Subject: |
[Traverso-commit] traverso/src/traverso Interface.cpp widgets/Tra... |
Date: |
Sun, 18 May 2008 20:55:33 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Nicola Doebelin <n_doebelin> 08/05/18 20:55:33
Modified files:
src/traverso : Interface.cpp
src/traverso/widgets: TransportConsoleWidget.cpp
TransportConsoleWidget.h
Log message:
* some changes to the transport console to make resizing more reliable
* some mac specific tweaks to the interface (text below icons of
toolbars)
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/Interface.cpp?cvsroot=traverso&r1=1.140&r2=1.141
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/TransportConsoleWidget.cpp?cvsroot=traverso&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/TransportConsoleWidget.h?cvsroot=traverso&r1=1.2&r2=1.3
Patches:
Index: Interface.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/Interface.cpp,v
retrieving revision 1.140
retrieving revision 1.141
diff -u -b -r1.140 -r1.141
--- Interface.cpp 15 May 2008 08:29:26 -0000 1.140
+++ Interface.cpp 18 May 2008 20:55:33 -0000 1.141
@@ -113,7 +113,7 @@
// setMaximumWidth(1024);
// setMaximumHeight(768);
- setUnifiedTitleAndToolBarOnMac(false);
+ setUnifiedTitleAndToolBarOnMac(true);
// CenterAreaWidget
centerAreaWidget = new QStackedWidget(this);
@@ -180,6 +180,14 @@
m_editToolBar->setObjectName("Edit Toolbar");
addToolBar(m_editToolBar);
+ #if defined Q_WS_MAC
+
m_projectToolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
+ m_projectToolBar->setIconSize(QSize(20, 20));
+
+ m_editToolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
+ m_editToolBar->setIconSize(QSize(20, 20));
+ #endif
+
// Some default values.
currentSheetWidget = 0;
m_exportDialog = 0;
Index: widgets/TransportConsoleWidget.cpp
===================================================================
RCS file:
/sources/traverso/traverso/src/traverso/widgets/TransportConsoleWidget.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- widgets/TransportConsoleWidget.cpp 16 May 2008 07:40:13 -0000 1.4
+++ widgets/TransportConsoleWidget.cpp 18 May 2008 20:55:33 -0000 1.5
@@ -29,12 +29,57 @@
#include <QAction>
#include <QSize>
#include <QFrame>
+#include <QApplication>
// Always put me below _all_ includes, this is needed
// in case we run with memory leak detection enabled!
#include "Debugger.h"
static const int HEIGHT_THRESHOLD = 90;
+static const float FONT_HEIGHT = 0.8;
+
+TimeLabel::TimeLabel(QWidget* parent)
+ : QFrame(parent)
+{
+ font = QApplication::font();
+ setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
+ setSizePolicy(QSizePolicy(QSizePolicy::Expanding,
QSizePolicy::Expanding));
+ calc_font_size();
+}
+
+void TimeLabel::set_time(QString s)
+{
+ time = s;
+ update();
+}
+
+void TimeLabel::paintEvent(QPaintEvent *)
+{
+ QPainter p(this);
+ p.setFont(font);
+ p.drawText(0, 0, width(), height(), Qt::AlignCenter, time);
+ p.end();
+}
+
+void TimeLabel::resizeEvent(QResizeEvent *)
+{
+ calc_font_size();
+ update();
+}
+
+void TimeLabel::calc_font_size()
+{
+ font.setPixelSize(int(FONT_HEIGHT * height()));
+
+ QFontMetrics fm(font);
+ int w = fm.width(time);
+
+ if (w >= width())
+ {
+ font.setPixelSize(int((FONT_HEIGHT * height() * width()) / w));
+ }
+}
+
TransportConsoleWidget::TransportConsoleWidget(QWidget* parent)
: QWidget(parent)
@@ -42,12 +87,8 @@
setEnabled(false);
m_layout = new QGridLayout(this);
- m_label = new QLabel(this);
- m_label->setAlignment(Qt::AlignCenter);
- m_label->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,
QSizePolicy::Expanding));
+ m_label = new TimeLabel(this);
m_label->setMinimumWidth(80);
- m_label->setScaledContents(true);
- m_label->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
QToolButton* buttonToStart = new QToolButton(this);
QToolButton* buttonToLeft = new QToolButton(this);
@@ -94,7 +135,12 @@
buttonToEnd->setDefaultAction(m_toEndAction);
buttonToRight->setDefaultAction(m_toRightAction);
+ if (height() < HEIGHT_THRESHOLD)
+ {
+ m_layout->addWidget(m_label, 1, 6, 1, 1);
+ } else {
m_layout->addWidget(m_label, 0, 0, 1, 6);
+ }
m_layout->addWidget(buttonToStart, 1, 0, 1, 1);
m_layout->addWidget(buttonToLeft, 1, 1, 1, 1);
m_layout->addWidget(buttonRec, 1, 2, 1, 1);
@@ -107,7 +153,6 @@
connect(&pm(), SIGNAL(projectLoaded(Project*)), this,
SLOT(set_project(Project*)));
connect(&m_updateTimer, SIGNAL(timeout()), this, SLOT(update_label()));
- resize(width(), height());
}
@@ -198,9 +243,10 @@
void TransportConsoleWidget::transfer_started()
{
- // use an odd number for the update interval.
- // with round numbers the last digit stays the same
- // most of the time, but not always, which looks jerky
+ // use an odd number for the update interval, because
+ // a round number (e.g. 100) lets the last digit stay
+ // the same most of the time, but not always, which
+ // looks jerky
m_updateTimer.start(123);
m_playAction->setChecked(true);
m_playAction->setIcon(QIcon(":/playstop"));
@@ -245,12 +291,6 @@
void TransportConsoleWidget::resizeEvent(QResizeEvent * e)
{
- // scale the font in the text label
- QFont font = m_label->font();
- int fs = 0.5 * m_label->height();
- font.setPixelSize(fs);
- m_label->setFont(font);
-
// position the text label depending on the widget size
if ((e->oldSize().height() >= HEIGHT_THRESHOLD) && (e->size().height()
< HEIGHT_THRESHOLD))
{
@@ -284,7 +324,7 @@
} else {
currentTime =
timeref_to_ms_2(m_sheet->get_transport_location());
}
- m_label->setText(currentTime);
+ m_label->set_time(currentTime);
}
//eof
Index: widgets/TransportConsoleWidget.h
===================================================================
RCS file:
/sources/traverso/traverso/src/traverso/widgets/TransportConsoleWidget.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- widgets/TransportConsoleWidget.h 14 May 2008 17:49:28 -0000 1.2
+++ widgets/TransportConsoleWidget.h 18 May 2008 20:55:33 -0000 1.3
@@ -24,8 +24,11 @@
#include <QWidget>
#include <QGridLayout>
-#include <QLabel>
+#include <QFrame>
#include <QTimer>
+#include <QEvent>
+#include <QFont>
+#include <QString>
#include "defines.h"
@@ -33,6 +36,29 @@
class Sheet;
+class TimeLabel : public QFrame
+{
+Q_OBJECT
+
+public:
+ TimeLabel(QWidget* parent = 0);
+ ~TimeLabel() {};
+
+public slots:
+ void set_time(QString);
+
+protected:
+ void paintEvent(QPaintEvent *);
+ void resizeEvent(QResizeEvent *);
+
+private:
+ QFont font;
+ QString time;
+
+ void calc_font_size();
+};
+
+
class TransportConsoleWidget : public QWidget
{
Q_OBJECT
@@ -53,7 +79,7 @@
QAction* m_playAction;
QAction* m_toEndAction;
QAction* m_toRightAction;
- QLabel* m_label;
+ TimeLabel* m_label;
QTimer m_updateTimer;
QTimer m_skipTimer;
TimeRef m_lastSnapPosition;