summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/launcher/launcher.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp
index e9e17f7..02124d2 100644
--- a/core/launcher/launcher.cpp
+++ b/core/launcher/launcher.cpp
@@ -195,193 +195,193 @@ void CategoryTabWidget::initializeCategories(AppLnkSet* rootFolder,
if ( *it == l->type() )
((LauncherView*)stack->widget(i))->addItem(l,FALSE);
i++;
}
}
++it;
}
rootFolder->detachChildren();
for (int i=0; i<tabs; i++)
((LauncherView*)stack->widget(i))->sort();
// all documents
docview = newView( QString::null, Resource::loadPixmap("DocsIcon"), tr("Documents"));
docview->populate( docFolder, QString::null );
docFolder->detachChildren();
docview->setFileSystems(fs);
docview->setToolsEnabled(TRUE);
connect( categoryBar, SIGNAL(selected(int)), stack, SLOT(raiseWidget(int)) );
((LauncherView*)stack->widget(0))->setFocus();
categoryBar->show();
stack->show();
}
void CategoryTabWidget::updateDocs(AppLnkSet* docFolder, const QList<FileSystem> &fs)
{
docview->populate( docFolder, QString::null );
docFolder->detachChildren();
docview->setFileSystems(fs);
docview->updateTools();
}
LauncherView* CategoryTabWidget::newView( const QString& id, const QPixmap& pm, const QString& label )
{
LauncherView* view = new LauncherView( stack );
connect( view, SIGNAL(clicked(const AppLnk*)),
this, SIGNAL(clicked(const AppLnk*)));
connect( view, SIGNAL(rightPressed(AppLnk*)),
this, SIGNAL(rightPressed(AppLnk*)));
ids.append(id);
categoryBar->addTab( new QTab( pm, label ) );
stack->addWidget( view, tabs++ );
return view;
}
void CategoryTabWidget::updateLink(const QString& linkfile)
{
int i=0;
LauncherView* view;
while ((view = (LauncherView*)stack->widget(i++))) {
if ( view->removeLink(linkfile) )
break;
}
addItem(linkfile);
docview->updateTools();
}
void CategoryTabWidget::paletteChange( const QPalette &p )
{
QVBox::paletteChange( p );
QPalette pal = palette();
pal.setColor( QColorGroup::Light, pal.color(QPalette::Active,QColorGroup::Shadow) );
pal.setColor( QColorGroup::Background, pal.active().background().light(110) );
categoryBar->setPalette( pal );
categoryBar->update();
}
void CategoryTabWidget::setBusy(bool on)
{
if ( on )
((LauncherView*)stack->visibleWidget())->setBusy(TRUE);
else
for (int i=0; i<tabs; i++)
((LauncherView*)stack->widget(i))->setBusy(FALSE);
}
CategoryTabBar::CategoryTabBar( QWidget *parent, const char *name )
: QTabBar( parent, name )
{
setFocusPolicy( NoFocus );
connect( this, SIGNAL( selected(int) ), this, SLOT( layoutTabs() ) );
}
CategoryTabBar::~CategoryTabBar()
{
}
void CategoryTabBar::layoutTabs()
{
if ( !count() )
return;
// int percentFalloffTable[] = { 100, 70, 40, 12, 6, 3, 1, 0 };
- int hiddenTabWidth = -12;
+ int hiddenTabWidth = -7;
int middleTab = currentTab();
int hframe, vframe, overlap;
style().tabbarMetrics( this, hframe, vframe, overlap );
QFontMetrics fm = fontMetrics();
int x = 0;
QRect r;
QTab *t;
int available = width()-1;
int required = 0;
for ( int i = 0; i < count(); i++ ) {
t = tab(i);
// if (( i < (middleTab - 1) ) || ( i > (middleTab + 1) )) {
if ( i != middleTab ) {
// required += hiddenTabWidth + hframe - overlap;
available -= hiddenTabWidth + hframe - overlap;
if ( t->iconSet() != 0 )
available -= t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width();
} else {
required += fm.width( t->text() ) + hframe - overlap;
if ( t->iconSet() != 0 )
required += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width();
}
}
for ( int i = 0; i < count(); i++ ) {
t = tab(i);
// if (( i < (middleTab - 1) ) || ( i > (middleTab + 1) )) {
if ( i != middleTab ) {
int w = hiddenTabWidth;
int ih = 0;
if ( t->iconSet() != 0 ) {
w += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width();
ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height();
}
int h = QMAX( fm.height(), ih );
h = QMAX( h, QApplication::globalStrut().height() );
h += vframe;
w += hframe;
t->setRect( QRect(x, 0, w, h) );
x += t->rect().width() - overlap;
r = r.unite( t->rect() );
} else {
int w = fm.width( t->text() );
int ih = 0;
if ( t->iconSet() != 0 ) {
w += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width();
ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height();
}
int h = QMAX( fm.height(), ih );
h = QMAX( h, QApplication::globalStrut().height() );
h += vframe;
w += hframe;
// t->setRect( QRect(x, 0, w * available/required, h) );
t->setRect( QRect(x, 0, available, h) );
x += t->rect().width() - overlap;
r = r.unite( t->rect() );
}
}
QRect rr = tab(count()-1)->rect();
rr.setRight(width()-1);
tab(count()-1)->setRect( rr );
for ( t = tabList()->first(); t; t = tabList()->next() ) {
QRect tr = t->rect();
tr.setHeight( r.height() );
t->setRect( tr );
}
update();
}
void CategoryTabBar::paint( QPainter * p, QTab * t, bool selected ) const
{
#if QT_VERSION >= 300
QStyle::SFlags flags = QStyle::Style_Default;
if ( selected )
flags |= QStyle::Style_Selected;
style().drawControl( QStyle::CE_TabBarTab, p, this, t->rect(),
colorGroup(), flags, QStyleOption(t) );
#else
style().drawTab( p, this, t, selected );
#endif
QRect r( t->rect() );
QFont f( font() );
if ( selected )
f.setBold( TRUE );
p->setFont( f );
int iw = 0;
int ih = 0;