[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-bugs-dist
Subject: [Bug 142897] More intuitive vector selection for complex data sources
From: Andrew Walker <arwalker () sumusltd ! com>
Date: 2007-07-20 1:42:26
Message-ID: 20070720014226.27631.qmail () ktown ! kde ! org
[Download RAW message or body]
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
http://bugs.kde.org/show_bug.cgi?id=142897
------- Additional Comments From arwalker sumusltd com 2007-07-20 03:42 -------
SVN commit 690077 by arwalker:
CCBUG:142897 continue work for hierarchical data sources
M +10 -5 datasources/planckIDEF/planckIDEF.cpp
M +11 -0 libkst/kstdataplugin.h
M +18 -1 libkst/kstdatasource.cpp
M +3 -0 libkst/kstdatasource.h
M +5 -1 libkstapp/kstdatawizard_i.cpp
--- branches/work/kst/1.5/kst/src/datasources/planckIDEF/planckIDEF.cpp \
#690076:690077 @ -501,7 +501,7 @
iResult = fits_read_keyword( ffits, "EXTNAME", value, \
comment, &iStatus ); if( iResult == 0 )
{
- prefixNew = prefix + QDir::separator() + QString( value \
).remove( QChar( '\'' ) ); + prefixNew = prefix + \
separator() + QString( value ).remove( QChar( '\'' ) ); }
iResult = 0;
@ -554,7 +554,7 @
fileList* folderFields;
folderField folderField;
QString baseName = baseFilename(*it);
- QString pathname = folder.path() + QDir::separator() + *it;
+ QString pathname = folder.path() + separator() + *it;
int numFrames;
folderFields = _basefiles.find( baseName );
@ -574,7 +574,7 @
fld->table = 0;
fld->column = 0;
- strIndex = baseName + QDir::separator() + "INDEX";
+ strIndex = baseName + separator() + "INDEX";
_fields.insert( strIndex, fld );
_fieldList.append( strIndex );
@ -833,7 +833,7 @
fld = _fields.find( fieldName );
if( fld != 0L )
{
- if( fieldName == fld->basefile + QDir::separator() + QString("INDEX") )
+ if( fieldName == fld->basefile + separator() + QString("INDEX") )
{
for( i = 0; i < n; ++i )
{
@ -965,7 +965,7 @
{
for (QStringList::ConstIterator it = files.begin(); it != files.end(); ++it)
{
- pathname = folder.path() + QDir::separator() + *it;
+ pathname = folder.path() + separator() + *it;
if( checkValidPlanckIDEFFile( pathname ) )
{
@ -1190,6 +1190,11 @
return rc;
}
+ bool supportsHierarchy_planckIDEF( )
+ {
+ return true;
+ }
+
int understands_planckIDEF( KConfig*, const QString& filename )
{
QFileInfo fileinfo( filename );
--- branches/work/kst/1.5/kst/src/libkst/kstdataplugin.h #690076:690077
@ -224,6 +224,17 @
return false;
}
+ bool supportsHierarchy() const {
+ bool (*sym)() = (bool(*)())symbol("supportsHierarchy");
+ if (sym) {
+ //kstdDebug() << "Checking if " << service->property("Name").toString() << \
" provides " << type << endl; + bool rc = (sym)();
+ return rc;
+ }
+
+ return false;
+ }
+
bool provides(const QString& type) const {
return provides().contains(type);
}
--- branches/work/kst/1.5/kst/src/libkst/kstdatasource.cpp #690076:690077
@ -318,6 +318,24 @
}
+bool KstDataSource::supportsHierarchy(const QString& filename, const QString& type) \
{ + if (filename.isEmpty() || filename == "stdin" || filename == "-") {
+ return false;
+ }
+
+ QString fn = obtainFile(filename);
+ if (fn.isEmpty()) {
+ return false;
+ }
+
+ QValueList<PluginSortContainer> bestPlugins = bestPluginsForSource(fn, type);
+ if (bestPlugins.isEmpty()) {
+ return false;
+ }
+ return (*bestPlugins.begin()).plugin->supportsHierarchy();
+}
+
+
QStringList KstDataSource::fieldListForSource(const QString& filename, const \
QString& type, QString *outType, bool *complete) { if (filename == "stdin" || \
filename == "-") { return QStringList();
@ -360,7 +378,6 @
}
}
-
return rc;
}
--- branches/work/kst/1.5/kst/src/libkst/kstdatasource.h #690076:690077
@ -19,6 +19,7 @
#define KSTDATASOURCE_H
#include <qdict.h>
+#include <qdir.h>
#include <qdom.h>
#include <qguardedptr.h>
#include <qstring.h>
@ -74,6 +75,8 @
static bool pluginHasConfigWidget(const QString& plugin);
// since 1.1.0
static bool supportsTime(const QString& plugin, const QString& type = \
QString::null); + static bool supportsHierarchy(const QString& filename, const \
QString& type = QString::null); + static char separator() { return \
QDir::separator(); }
KstDataSourceConfigWidget *configWidget() const;
--- branches/work/kst/1.5/kst/src/libkstapp/kstdatawizard_i.cpp #690076:690077
@ -299,6 +299,7 @
ds = 0L;
} else {
fl = KstDataSource::fieldListForSource(file, QString::null, &fileType, \
&complete); + hierarchy = KstDataSource::supportsHierarchy(file, QString::null);
}
if (!fl.isEmpty() && !fileType.isEmpty()) {
@ -337,12 +338,14 @
for (QStringList::ConstIterator it = fl.begin(); it != fl.end(); ++it) {
QListViewItem *item = new QListViewItem(_vectors, *it);
+ QString str;
+
item->setDragEnabled(true);
- QString str;
str.sprintf("%0*d", count, index++);
item->setText(1, str);
_countMap[*it] = str;
}
+
_vectors->sort();
KST::vectorDefaults.sync();
@ -548,6 +551,7 @
_vectors->setSorting(3, true); // Qt 3.1 compat
QRegExp re(filter, true /* case insensitive */, true /* wildcard */);
QListViewItemIterator it(_vectors);
+
while (it.current()) {
QListViewItem *i = it.current();
++it;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic