From 8362bf63dea22bbf6736609b0f49c152f975eb63 Mon Sep 17 00:00:00 2001 From: tpearson Date: Wed, 20 Jan 2010 01:29:50 +0000 Subject: Added old abandoned KDE3 version of koffice git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1077364 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kexi/plugins/forms/kexidbtextwidgetinterface.cpp | 71 ++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 kexi/plugins/forms/kexidbtextwidgetinterface.cpp (limited to 'kexi/plugins/forms/kexidbtextwidgetinterface.cpp') diff --git a/kexi/plugins/forms/kexidbtextwidgetinterface.cpp b/kexi/plugins/forms/kexidbtextwidgetinterface.cpp new file mode 100644 index 00000000..47eabe9d --- /dev/null +++ b/kexi/plugins/forms/kexidbtextwidgetinterface.cpp @@ -0,0 +1,71 @@ +/* This file is part of the KDE project + Copyright (C) 2005-2006 Jaroslaw Staniek + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this program; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. +*/ + +#include "kexidbtextwidgetinterface.h" +#include "kexiformdataiteminterface.h" +#include +#include +#include +#include + +KexiDBTextWidgetInterface::KexiDBTextWidgetInterface() + : m_autonumberDisplayParameters(0) +{ +} + +KexiDBTextWidgetInterface::~KexiDBTextWidgetInterface() +{ + delete m_autonumberDisplayParameters; +} + +void KexiDBTextWidgetInterface::setColumnInfo(KexiDB::QueryColumnInfo* cinfo, QWidget *w) +{ + if (cinfo->field->isAutoIncrement()) { + if (!m_autonumberDisplayParameters) + m_autonumberDisplayParameters = new KexiDisplayUtils::DisplayParameters(); + KexiDisplayUtils::initDisplayForAutonumberSign(*m_autonumberDisplayParameters, w); + } +} + +void KexiDBTextWidgetInterface::paint( QFrame *w, QPainter* p, bool textIsEmpty, int alignment, bool hasFocus ) +{ + KexiFormDataItemInterface *dataItemIface = dynamic_cast(w); + KexiDB::QueryColumnInfo *columnInfo = dataItemIface ? dataItemIface->columnInfo() : 0; + if (columnInfo && columnInfo->field && dataItemIface->cursorAtNewRow() && textIsEmpty) { + const int margin = w->lineWidth() + w->midLineWidth(); + if (columnInfo->field->isAutoIncrement() && m_autonumberDisplayParameters) { + if (w->hasFocus()) { + p->setPen( + KexiUtils::blendedColors( + m_autonumberDisplayParameters->textColor, w->palette().active().base(), 1, 3)); + } + KexiDisplayUtils::paintAutonumberSign(*m_autonumberDisplayParameters, p, + 2 + margin + w->margin(), margin, w->width() - margin*2 -2-2, + w->height() - margin*2 -2, alignment, hasFocus); + } + } +} + +void KexiDBTextWidgetInterface::event( QEvent * e, QWidget *w, bool textIsEmpty ) +{ + if (e->type()==QEvent::FocusIn || e->type()==QEvent::FocusOut) { + if (m_autonumberDisplayParameters && textIsEmpty) + w->repaint(); + } +} -- cgit v1.2.1