[rkward-cvs] SF.net SVN: rkward:[4265] trunk/rkward/rkward/plugin/rkoptionset.cpp
tfry at users.sourceforge.net
tfry at users.sourceforge.net
Mon May 28 16:05:41 UTC 2012
Revision: 4265
http://rkward.svn.sourceforge.net/rkward/?rev=4265&view=rev
Author: tfry
Date: 2012-05-28 16:05:41 +0000 (Mon, 28 May 2012)
Log Message:
-----------
A few more bits.
Modified Paths:
--------------
trunk/rkward/rkward/plugin/rkoptionset.cpp
Modified: trunk/rkward/rkward/plugin/rkoptionset.cpp
===================================================================
--- trunk/rkward/rkward/plugin/rkoptionset.cpp 2012-05-25 15:34:41 UTC (rev 4264)
+++ trunk/rkward/rkward/plugin/rkoptionset.cpp 2012-05-28 16:05:41 UTC (rev 4265)
@@ -193,16 +193,25 @@
RK_TRACE (PLUGIN);
int row = current_row->intValue () + 1; // append feels more natural than insert, here
- if (row <= 0) row = row_count->intValue ();
+ int nrows = row_count->intValue ();
+ if (row <= 0) row = nrows;
- QMap<RKComponentPropertyStringList *, ColumnInfo>::const_iterator it = column_map.constBegin ();
- for (; it != column_map.constEnd (); ++it) {
+ // adjust values
+ QMap<RKComponentPropertyStringList *, ColumnInfo>::iterator it = column_map.begin ();
+ for (; it != column_map.end (); ++it) {
RKComponentPropertyStringList* col = it.key ();
- const ColumnInfo &column = it.value ();
+ ColumnInfo &column = it.value ();
QStringList values = col->values ();
values.insert (row, getDefaultValue (column, row));
col->setValues (values);
+ column.old_values = values;
}
+ // adjust status info
+ for (int i = nrows - 1; i > row; --i) {
+ if (unfinished_rows.remove (i)) unfinished_rows.insert (i+1);
+ if (invalid_rows.remove (i)) invalid_rows.insert (i+1);
+ }
+ unfinished_rows.insert (row);
current_row->setIntValue (row);
}
@@ -211,22 +220,32 @@
RK_TRACE (PLUGIN);
int row = current_row->intValue ();
- int nrow = row_count->intValue ();
+ int nrows = row_count->intValue ();
if (row < 0) {
RK_ASSERT (false);
return;
}
- QMap<RKComponentPropertyStringList *, ColumnInfo>::const_iterator it = column_map.constBegin ();
- for (; it != column_map.constEnd (); ++it) {
+ // adjust values
+ QMap<RKComponentPropertyStringList *, ColumnInfo>::iterator it = column_map.begin ();
+ for (; it != column_map.end (); ++it) {
RKComponentPropertyStringList* col = it.key ();
+ ColumnInfo &column = it.value ();
QStringList values = col->values ();
values.removeAt (row);
col->setValues (values);
+ column.old_values = values;
}
+ // adjust status info
+ invalid_rows.remove (row);
+ unfinished_rows.remove (row);
+ for (int i = row + 1; i < nrows; ++i) {
+ if (unfinished_rows.remove (i)) unfinished_rows.insert (i-1);
+ if (invalid_rows.remove (i)) invalid_rows.insert (i-1);
+ }
--row;
- if ((row < 0) && (nrow > 1)) row = 0;
+ if ((row < 0) && (nrows > 1)) row = 0;
current_row->setIntValue (row);
}
@@ -470,14 +489,12 @@
}
QPalette palette = display->header ()->palette ();
- if (!isSatisfied ()) { // implies that it is enabled
+ if (isInactive ()) {
+ palette.setColor (QPalette::Window, QColor (200, 200, 200));
+ } else if (!isSatisfied ()) {
palette.setColor (QPalette::Window, QColor (255, 0, 0));
} else {
- if (isEnabled ()) {
- palette.setColor (QPalette::Window, QColor (255, 255, 255));
- } else {
- palette.setColor (QPalette::Window, QColor (200, 200, 200));
- }
+ palette.setColor (QPalette::Window, QColor (255, 255, 255));
}
display->header ()->setPalette (palette);
}
@@ -510,9 +527,8 @@
ComponentStatus s = RKComponent::recursiveStatus ();
if (s == Dead) return s;
-#warning TODO
-// if (!unfinished_rows.isEmpty ()) return Processing;
-// if (update_timer.isActive ()) return Processing;
+ if (!unfinished_rows.isEmpty ()) return Processing;
+ if (update_timer.isActive ()) return Processing;
return s;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the rkward-tracker
mailing list