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

📄 kcombiview.cpp

📁 PIXIL is a small footprint operating environment, complete with PDA PIM applications, a browser and
💻 CPP
字号:
/* This file is part of the KDE libraries    Copyright (C) 1998 Stephan Kulow <coolo@kde.org>                  1998 Daniel Grana <grana@ie.iwi.unibe.ch>          This library 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 library 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 library; see the file COPYING.LIB.  If not, write to    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,    Boston, MA 02111-1307, USA.*/// $Id: kcombiview.cpp,v 1.1 2003/09/08 19:42:12 jasonk Exp $#include "kcombiview.h"#include "kdirlistbox.h"#include "kfiledetaillist.h"#include "kfileinfo.h"#include "kfilesimpleview.h"#include "config-kfile.h"#include <qpainter.h>#include <qlistbox.h>#include <qdir.h>#include <kapp.h>#ifdef Unsorted // the "I hate X.h" modus#undef Unsorted#endifKCombiView::KCombiView(  FileView dirs,  FileView files,                          bool s, QDir::SortSpec sorting,			 QWidget * parent, const char * name )     : KNewPanner(parent, name, KNewPanner::Vertical) ,       KFileInfoContents(s,sorting){    setSorting( QDir::Unsorted ); // we sort in the part views    switch (dirs) {	    case DirList:	dirList = new KDirListBox(s, sorting, this, "_dirs");	break;    case Custom:	dirList = getDirList();	break;    default:	fatal("this view for dirs not support");    }    switch (files) {	    case DetailView:	fileList = new KFileDetailList(false, sorting, this, "_detail");	break;    case SimpleView:	fileList = new KFileSimpleView(false, sorting, this, "_simple");	break;    case DirList: // who ever wants this	fileList = new KDirListBox(false, sorting, this, "_dirs");	break;    case Custom:	fileList = getFileList();    }    bool showListLabels =  	kapp->getConfig()->readBoolEntry("ShowListLabels", 					 DefaultShowListLabels);        if (showListLabels) {	setLabels(i18n("Folders:"),		  i18n("Contents:"));	showLabels(showListLabels);    }        bool dirsLeft = kapp->getConfig()->readBoolEntry("ShowDirsLeft", 						     DefaultShowDirsLeft);    if (dirsLeft)	activate(dirList->widget(), fileList->widget());    else	activate(fileList->widget(), dirList->widget());    int pan = kapp->getConfig()->readNumEntry("PannerPosition", 					      DefaultPannerPosition);    setSeparatorPos(pan);    dirList->connectDirSelected(this, SLOT(dirActivated(KFileInfo*)));    fileList->connectFileSelected(this, SLOT(fileActivated(KFileInfo*)));    fileList->connectFileHighlighted(this, SLOT(fileHighlighted(KFileInfo*)));}KCombiView::~KCombiView() {    KConfig *c = kapp->getConfig();    QString oldgroup = c->group();    c->writeEntry("PannerPosition", separatorPos(), true, true);    c->setGroup(oldgroup);}void KCombiView::setAutoUpdate(bool f){    fileList->setAutoUpdate(f);    dirList->setAutoUpdate(f);}bool KCombiView::insertItem(const KFileInfo *i, int) {    if (i->isDir()) // for dirs the index is correct	dirList->addItem(i);    else	fileList->addItem(i);    return true;}void KCombiView::clearView(){    dirList->clear();    fileList->clear();}void KCombiView::highlightItem(unsigned int){    warning("KCombiView::highlightItem: does nothing");}void KCombiView::setCurrentItem(const char *item, const KFileInfo *i){    if (item != 0) {	i = 0;	debugC("setCurrentItem %s",item);	for (uint j = 0; j < count(); j++)	    if (at(j)->fileName() == item)		i = at(j);    }        if (!i) {	warning("setCurrentItem: no match found.");	return;     }    if (i->isDir())	dirList->setCurrentItem(0, i);    else	fileList->setCurrentItem(0, i);    }void KCombiView::repaint(bool f){    dirList->repaint(f);    fileList->repaint(f);}QString KCombiView::findCompletion( const char *base, bool ){    // first try the files.    QString found = fileList->findCompletion(base);    // if no file completion possible, try the dirs    if (!found) {	found = dirList->findCompletion(base, true);    } else {        // complete in dirList so possible directories are highlighted        QString foundDir = dirList->findCompletion(base, false);        // if we find anything -> highlight it and least common denominator        // is the last result	if ( foundDir ) {	    unsigned int i;            for ( i=1; (i<=found.length()) && (i<=foundDir.length()) ; i++) {                if ( strncmp( found, foundDir, i) != 0 )                    break;            }            if ( i==1 ) i++;	    found.truncate(i-1);        }    }    return found;}void KCombiView::dirActivated(KFileInfo *i) {    select(i);}void KCombiView::fileActivated(KFileInfo *i){    select(i);}void KCombiView::fileHighlighted(KFileInfo *i){    highlight(i);}#include "kcombiview.moc"

⌨️ 快捷键说明

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