13 #include <tqlineedit.h> 14 #include <tqpainter.h> 16 #include <tqfontmetrics.h> 19 #include <tdeglobalsettings.h> 20 #include <tdelocale.h> 21 #include <tdeparts/part.h> 22 #include <tdetexteditor/viewcursorinterface.h> 23 #include <tdeversion.h> 25 #include <tdetexteditor/viewstatusmsginterface.h> 27 #include "statusbar.h" 28 #include "partcontroller.h" 30 KDevStatusBar::KDevStatusBar(TQWidget *parent,
const char *name)
31 : KStatusBar(parent, name), _cursorIface(0), _activePart(0)
33 TQWidget * w =
new TQWidget(
this );
34 addWidget( w, 1,
true );
37 _status =
new TQLabel(
this );
38 _status->setMinimumWidth(_status->fontMetrics().width(
"Line: XXXXX Col: XXX OVR NORM * "));
39 _status->setAlignment(TQWidget::AlignCenter);
40 addWidget(_status, 0,
true);
42 connect(PartController::getInstance(), TQT_SIGNAL(activePartChanged(KParts::Part*)),
43 this, TQT_SLOT(activePartChanged(KParts::Part*)));
47 KDevStatusBar::~KDevStatusBar()
50 void KDevStatusBar::activePartChanged(KParts::Part *part)
52 if ( _activePart && _activePart->widget() )
53 disconnect( _activePart->widget(), 0,
this, 0 );
59 if (part && part->widget())
61 if ((_viewmsgIface = dynamic_cast<KTextEditor::ViewStatusMsgInterface*>(part->widget())))
63 connect( part->widget(), TQT_SIGNAL( viewStatusMsg(
const TQString & ) ),
64 this, TQT_SLOT( setStatus(
const TQString & ) ) );
68 else if ((_cursorIface = dynamic_cast<KTextEditor::ViewCursorInterface*>(part->widget())))
70 connect(part->widget(), TQT_SIGNAL(cursorPositionChanged()),
this, TQT_SLOT(cursorPositionChanged()));
73 cursorPositionChanged();
83 void KDevStatusBar::cursorPositionChanged()
88 _cursorIface->cursorPosition(&line, &col);
89 setCursorPosition(line, col);
93 void KDevStatusBar::setStatus(
const TQString &str)
95 _status->setText(str);
99 void KDevStatusBar::setCursorPosition(
int line,
int col)
101 _status->setText(i18n(
" Line: %1 Col: %2 ").arg(line+1).arg(col));
104 void KDevStatusBar::addWidget ( TQWidget *widget,
int stretch,
bool permanent)
106 KStatusBar::addWidget(widget,stretch,permanent);
108 if(widget->sizeHint().height() + 4 > height())
109 setFixedHeight(widget->sizeHint().height() + 4);
112 #include "statusbar.moc"