/* ============================================================ * * This file is a part of digiKam project * http://www.digikam.org * * Date : 2007-01-04 * Description : A parent tab class with a navigation bar * * Copyright (C) 2006-2007 by Gilles Caulier * Copyright (C) 2007 by Marcel Wiesweg * * 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, 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. * * ============================================================ */ // TQt includes. #include #include #include // Local includes. #include "statusnavigatebar.h" #include "navigatebarwidget.h" #include "navigatebartab.h" #include "navigatebartab.moc" namespace Digikam { class NavigateBarTabPriv { public: NavigateBarTabPriv() { stack = 0; navigateBar = 0; label = 0; } TQWidgetStack *stack; TQLabel *label; NavigateBarWidget *navigateBar; }; NavigateBarTab::NavigateBarTab(TQWidget* parent) : TQWidget(parent, 0, TQt::WDestructiveClose) { d = new NavigateBarTabPriv; m_navigateBarLayout = 0; } NavigateBarTab::~NavigateBarTab() { delete d; } void NavigateBarTab::setupNavigateBar(bool withBar) { m_navigateBarLayout = new TQVBoxLayout(this); if (withBar) { d->stack = new TQWidgetStack(this); m_navigateBarLayout->addWidget(d->stack); d->navigateBar = new NavigateBarWidget(d->stack, withBar); d->stack->addWidget(d->navigateBar); connect(d->navigateBar, TQ_SIGNAL(signalFirstItem()), this, TQ_SIGNAL(signalFirstItem())); connect(d->navigateBar, TQ_SIGNAL(signalPrevItem()), this, TQ_SIGNAL(signalPrevItem())); connect(d->navigateBar, TQ_SIGNAL(signalNextItem()), this, TQ_SIGNAL(signalNextItem())); connect(d->navigateBar, TQ_SIGNAL(signalLastItem()), this, TQ_SIGNAL(signalLastItem())); d->label = new TQLabel(d->stack); d->label->setAlignment(TQt::AlignCenter); d->stack->addWidget(d->label); } } void NavigateBarTab::setNavigateBarState(bool hasPrevious, bool hasNext) { if (!d->navigateBar) return; d->stack->raiseWidget(d->navigateBar); if (hasPrevious && hasNext) d->navigateBar->setButtonsState(StatusNavigateBar::ItemCurrent); else if (!hasPrevious && hasNext) d->navigateBar->setButtonsState(StatusNavigateBar::ItemFirst); else if (hasPrevious && !hasNext) d->navigateBar->setButtonsState(StatusNavigateBar::ItemLast); else d->navigateBar->setButtonsState(StatusNavigateBar::NoNavigation); } void NavigateBarTab::setNavigateBarState(int itemType) { if (!d->navigateBar) return; d->stack->raiseWidget(d->navigateBar); d->navigateBar->setButtonsState(itemType); } void NavigateBarTab::setNavigateBarFileName(const TQString &name) { if (!d->navigateBar) return; d->stack->raiseWidget(d->navigateBar); d->navigateBar->setFileName(name); } void NavigateBarTab::setLabelText(const TQString &text) { if (!d->label) return; d->stack->raiseWidget(d->label); d->label->setText(text); } } // NameSpace Digikam