You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
basket/src/basketstatusbar.cpp

177 lines
6.2 KiB

/***************************************************************************
* Copyright (C) 2003 by S<>astien Laot *
* slaout@linux62.org *
* *
* 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; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#include <kparts/statusbarextension.h>
#include <kstatusbar.h>
#include <klocale.h>
#include <kdebug.h>
#include <tqlabel.h>
#include <tqobjectlist.h>
#include "basketstatusbar.h"
#include "clickablelabel.h"
#include "global.h"
#include "bnpview.h"
#include "basket.h"
#include "tools.h"
#include <kiconloader.h>
#include <tqtooltip.h>
BasketStatusBar::BasketStatusBar(KStatusBar *bar)
: m_bar(bar), m_extension(0), m_selectiontqStatus(0), m_locktqStatus(0), m_baskettqStatus(0), m_savedtqStatus(0)
{
}
BasketStatusBar::BasketStatusBar(KParts::StatusBarExtension *extension)
: m_bar(0), m_extension(extension), m_selectiontqStatus(0), m_locktqStatus(0), m_baskettqStatus(0), m_savedtqStatus(0)
{
}
BasketStatusBar::~BasketStatusBar()
{
//delete m_extension;
}
KStatusBar *BasketStatusBar::statusBar () const
{
if(m_extension)
return m_extension->statusBar();
else
return m_bar;
}
void BasketStatusBar::addWidget(TQWidget * widget, int stretch, bool permanent)
{
if(m_extension)
m_extension->addStatusBarItem(widget, stretch, permanent);
else
m_bar->addWidget(widget, stretch, permanent);
}
void BasketStatusBar::setupStatusBar()
{
TQWidget* tqparent = statusBar();
TQObjectList* lst = tqparent->queryList("KRSqueezedTextLabel");
//Tools::printChildren(tqparent);
if(lst->count() == 0)
{
m_baskettqStatus = new TQLabel(tqparent);
m_baskettqStatus->tqsetSizePolicy( TQSizePolicy(TQSizePolicy::Ignored, TQSizePolicy::Ignored, 0, 0, false) );
addWidget( m_baskettqStatus, 1, false ); // Fit all extra space and is hiddable
}
else
m_baskettqStatus = static_cast<TQLabel*>(TQT_TQWIDGET(lst->at(0)));
delete lst;
m_selectiontqStatus = new TQLabel(i18n("Loading..."), tqparent);
addWidget( m_selectiontqStatus, 0, true );
m_locktqStatus = new ClickableLabel(0/*this*/);
m_locktqStatus->setMinimumSize(18, 18);
m_locktqStatus->tqsetAlignment(TQt::AlignCenter);
// addWidget( m_locktqStatus, 0, true );
connect( m_locktqStatus, TQT_SIGNAL(clicked()), Global::bnpView, TQT_SLOT(lockBasket()) );
m_savedStatusPixmap = SmallIcon("filesave");
m_savedtqStatus = new TQLabel(tqparent);
m_savedtqStatus->setPixmap(m_savedStatusPixmap);
m_savedtqStatus->setFixedSize(m_savedtqStatus->tqsizeHint());
m_savedtqStatus->clear();
//m_savedtqStatus->setPixmap(m_savedStatusIconSet.pixmap(TQIconSet::Small, TQIconSet::Disabled));
//m_savedtqStatus->setEnabled(false);
addWidget( m_savedtqStatus, 0, true );
TQToolTip::add(m_savedtqStatus, "<p>" + i18n("Shows if there are changes that have not yet been saved."));
}
void BasketStatusBar::postStatusbarMessage(const TQString& text)
{
if(statusBar())
statusBar()->message(text, 2000);
}
void BasketStatusBar::setStatusText(const TQString &txt)
{
if(m_baskettqStatus && m_baskettqStatus->text() != txt)
m_baskettqStatus->setText(txt);
}
void BasketStatusBar::setStatusBarHint(const TQString &hint)
{
if (hint.isEmpty())
updateStatusBarHint();
else
setStatusText(hint);
}
void BasketStatusBar::updateStatusBarHint()
{
TQString message = "";
if (Global::bnpView->currentBasket()->isDuringDrag())
message = i18n("Ctrl+drop: copy, Shift+drop: move, Shift+Ctrl+drop: link.");
// Too much noise information:
// else if (currentBasket()->inserterShown() && currentBasket()->inserterSplit() && !currentBasket()->inserterGroup())
// message = i18n("Click to insert a note, right click for more options. Click on the right of the line to group instead of insert.");
// else if (currentBasket()->inserterShown() && currentBasket()->inserterSplit() && currentBasket()->inserterGroup())
// message = i18n("Click to group a note, right click for more options. Click on the left of the line to group instead of insert.");
else if (Global::debugWindow)
message = "DEBUG: " + Global::bnpView->currentBasket()->folderName();
setStatusText(message);
}
void BasketStatusBar::setLocktqStatus(bool isLocked)
{
if(!m_locktqStatus)
return;
if (isLocked) {
m_locktqStatus->setPixmap(SmallIcon("encrypted.png"));
TQToolTip::add(m_locktqStatus, i18n(
"<p>This basket is <b>locked</b>.<br>Click to unlock it.</p>").replace(" ", "&nbsp;") );
// TQToolTip::add(m_locktqStatus, i18n("This basket is locked.\nClick to unlock it."));
} else {
m_locktqStatus->clear();
TQToolTip::add(m_locktqStatus, i18n(
"<p>This basket is <b>unlocked</b>.<br>Click to lock it.</p>").replace(" ", "&nbsp;") );
// TQToolTip::add(m_locktqStatus, i18n("This basket is unlocked.\nClick to lock it."));
}
}
void BasketStatusBar::setSelectiontqStatus(const TQString &s)
{
if (m_selectiontqStatus)
m_selectiontqStatus->setText(s);
}
void BasketStatusBar::setUnsavedtqStatus(bool isUnsaved)
{
if (!m_savedtqStatus)
return;
if (isUnsaved) {
if (m_savedtqStatus->pixmap() == 0)
m_savedtqStatus->setPixmap(m_savedStatusPixmap);
} else
m_savedtqStatus->clear();
}
#include "basketstatusbar.moc"