⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 propertylist.cpp

📁 LINUX 下以 QT/KDE 写的 SVN 客户端
💻 CPP
字号:
/*************************************************************************** *   Copyright (C) 2007 by Rajko Albrecht  ral@alwins-world.de             * *   http://kdesvn.alwins-world.de/                                        * *                                                                         * *   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 "propertylist.h"#include "src/svnfrontend/fronthelpers/propertyitem.h"#include <klocale.h>#include <kdebug.h>#include <kmessagebox.h>Propertylist::Propertylist(QWidget *parent, const char *name)    : KListView(parent, name),m_commitit(false){    addColumn(i18n("Property"));    addColumn(i18n("Value"));    setShowSortIndicator(true);    setAllColumnsShowFocus (true);    setRootIsDecorated(false);    setSortColumn(0);    setAcceptDrops(false);    connect(this,SIGNAL(itemRenamed(QListViewItem*,const QString&,int)),this,SLOT(slotItemRenamed(QListViewItem*,const QString&,int)));    connect(this,SIGNAL(contextMenuRequested(QListViewItem *, const QPoint &, int)),this,            SLOT(slotContextMenuRequested(QListViewItem *, const QPoint &, int)));    //setFullWidth( TRUE );}Propertylist::~Propertylist(){}void Propertylist::displayList(const svn::PathPropertiesMapListPtr&propList,bool editable,const QString&aCur){    viewport()->setUpdatesEnabled(false);    clear();    setItemsRenameable(editable);    setRenameable(0,editable);    setRenameable(1,editable);    if (propList) {        m_current = aCur;        svn::PathPropertiesMapList::const_iterator lit;        svn::PropertiesMap pmap;        for (lit=propList->begin();lit!=propList->end();++lit) {            pmap = (*lit).second;            /* just want the first one */            break;        }        svn::PropertiesMap::const_iterator pit;        for (pit=pmap.begin();pit!=pmap.end();++pit) {            PropertyListViewItem * ki = new PropertyListViewItem(this,                    pit.key(),                    pit.data());        }    }    viewport()->setUpdatesEnabled(true);    viewport()->repaint();}void Propertylist::clear(){    KListView::clear();}/*!    \fn PropertiesDlg::slotItemRenamed(QListViewItem*item,const QString & str,int col ) */void Propertylist::slotItemRenamed(QListViewItem*_item,const QString & text,int col ){    if (!_item || _item->rtti()!=PropertyListViewItem::_RTTI_) return;    PropertyListViewItem*item = static_cast<PropertyListViewItem*> (_item);    kdDebug()<<"Text: "<< text << " in col "<<col << endl;    if (text.isEmpty()&&col == 0) {        // fresh added        if (item->currentName().isEmpty()) {            delete item;        } else {            item->setText(0,item->currentName());        }        return;    }    if (PropertyListViewItem::protected_Property(item->text(0)) ||        PropertyListViewItem::protected_Property(item->currentName())) {        KMessageBox::error(this,i18n("This property may not set by users.\nRejecting it."),i18n("Protected property"));        item->setText(0,item->currentName());        item->setText(1,item->currentValue());        return;    }    if (checkExisting(item->text(0),item)) {        KMessageBox::error(this,i18n("A property with that name exists.\nRejecting it."),i18n("Double property"));        item->setText(0,item->currentName());        item->setText(1,item->currentValue());        return;    }    if (col==0) {        item->checkName();    } else {        item->checkValue();    }    if (commitchanges() && item->different()) {        svn::PropertiesMap pm;        QValueList<QString> dels;        pm[item->currentName()]=item->currentValue();        if (item->currentName()!=item->startName()){            dels.push_back(item->startName());        }        emit sigSetProperty(pm,dels,m_current);    }}bool Propertylist::checkExisting(const QString&aName,QListViewItem*it){    if (!it) {        return findItem(aName,0)!=0;    }    QListViewItemIterator iter(this);    while ( iter.current() ) {        if ( iter.current()==it) {            ++iter;            continue;        }        if (iter.current()->text(0)==aName) {            return true;        }        ++iter;    }    return false;}void Propertylist::addCallback(QObject*ob){    if (ob) {        connect(this,SIGNAL(sigSetProperty(const svn::PropertiesMap&,const QValueList<QString>&,const QString&)),                ob,SLOT(slotChangeProperties(const svn::PropertiesMap&,const QValueList<QString>&,const QString&)));    }}/*!    \fn Propertylist::slotContextMenuRequested(QListViewItem *, const QPoint &, int) */void Propertylist::slotContextMenuRequested(QListViewItem *, const QPoint &, int){    /// @todo implement me}#include "propertylist.moc"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -