This commit is contained in:
rjc%netscape.com 1998-10-03 06:00:13 +00:00
Родитель b091b3b460
Коммит 561c46bd45
2 изменённых файлов: 55 добавлений и 88 удалений

Просмотреть файл

@ -2325,35 +2325,6 @@ deleteHTNode(HT_Resource node)
}
node->values = NULL;
if (node->flags & HT_FREEICON_URL_FLAG)
{
if (node->url[0] != NULL)
{
freeMem(node->url[0]);
node->url[0] = NULL;
}
if (node->url[1] != NULL)
{
freeMem(node->url[1]);
node->url[1] = NULL;
}
if (node->url[2] != NULL)
{
freeMem(node->url[2]);
node->url[2] = NULL;
}
if (node->url[3] != NULL)
{
freeMem(node->url[3]);
node->url[3] = NULL;
}
if (node->url[4] != NULL)
{
freeMem(node->url[4]);
node->url[4] = NULL;
}
}
if ((!node->view->refreshingItemListp) && (node->view->itemList != NULL))
{
/* set node's associated entry in itemList to NULL */
@ -2672,9 +2643,21 @@ void
resynchItem (HT_Resource node, void *token, void *data, PRBool assertAction)
{
HT_Value *value, *nextValue, tempValue;
RDF_Resource r = (RDF_Resource)token;
XP_ASSERT(node != NULL);
/* special check for handling icons... */
if (token == gNavCenter->RDF_smallIcon)
{
node->url[0] = NULL;
}
else if (token == gNavCenter->RDF_largeIcon)
{
node->url[1] = NULL;
}
value = &(node->values);
while ((*value) != NULL)
{
@ -2684,11 +2667,16 @@ resynchItem (HT_Resource node, void *token, void *data, PRBool assertAction)
if ((*value)->tokenType == HT_COLUMN_STRING ||
(*value)->tokenType == HT_COLUMN_DATE_STRING)
{
if ((*value)->data)
{
freeMem((*value)->data);
(*value)->data = NULL;
}
if ((data == NULL) || (((char *)data)[0] == '\0'))
{
assertAction = false;
}
}
if ((assertAction == false) || (data == NULL))
@ -5657,37 +5645,13 @@ HT_SetNodeData (HT_Resource node, void *token, uint32 tokenType, void *data)
RDF_Assert(node->view->pane->db, node->node,
token, data, RDF_STRING_TYPE);
}
if (token == gNavCenter->RDF_smallIcon ||
token == gNavCenter->RDF_largeIcon)
if (token == gNavCenter->RDF_smallIcon)
{
if (node->flags & HT_FREEICON_URL_FLAG)
{
if (node->url[0] != NULL)
{
freeMem(node->url[0]);
node->url[0] = NULL;
}
if (node->url[1] != NULL)
{
freeMem(node->url[1]);
node->url[1] = NULL;
}
if (node->url[2] != NULL)
{
freeMem(node->url[2]);
node->url[2] = NULL;
}
if (node->url[3] != NULL)
{
freeMem(node->url[3]);
node->url[3] = NULL;
}
if (node->url[4] != NULL)
{
freeMem(node->url[4]);
node->url[4] = NULL;
}
}
node->url[0] = NULL;
}
else if (token == gNavCenter->RDF_largeIcon)
{
node->url[1] = NULL;
}
}
error = HT_NoErr;
@ -6082,9 +6046,10 @@ char *
getIconURL( HT_Resource node, PRBool toolbarIconFlag, PRBool workspaceFlag, int state)
{
RDF_Resource res;
RDF_Resource res = NULL;
PRBool volatileURLFlag;
int iconIndex;
char *iconURL = NULL;
XP_ASSERT(node != NULL);
XP_ASSERT(node->node != NULL);
@ -6112,40 +6077,43 @@ getIconURL( HT_Resource node, PRBool toolbarIconFlag, PRBool workspaceFlag, int
break;
}
/* if volatile URL, flush if needed and re-create */
if (node->flags & HT_VOLATILE_URL_FLAG)
if ((res == gNavCenter->RDF_smallIcon) || (res == gNavCenter->RDF_largeIcon))
{
node->url[0] = NULL;
node->url[1] = NULL;
node->url[2] = NULL;
node->url[3] = NULL;
node->url[4] = NULL;
}
HT_GetNodeData(node, res, HT_COLUMN_STRING, &iconURL);
if (iconURL == NULL)
{
if (res == gNavCenter->RDF_smallIcon) iconIndex = 0;
else iconIndex = 1;
if (node->url[iconIndex] == NULL)
{
if ((node->url[iconIndex] = (char*)RDF_GetSlotValue(node->view->pane->db,
node->node, res, RDF_STRING_TYPE, false, true)) != NULL)
{
node->flags &= (~HT_VOLATILE_URL_FLAG);
node->flags |= HT_FREEICON_URL_FLAG;
}
else
{
node->url[iconIndex] = buildInternalIconURL(node,
&volatileURLFlag, false, workspaceFlag);
if (volatileURLFlag)
/* if volatile URL, flush if needed and re-create */
if (node->flags & HT_VOLATILE_URL_FLAG)
{
node->flags |= HT_VOLATILE_URL_FLAG;
node->url[0] = NULL;
node->url[1] = NULL;
}
else
if ((iconURL = node->url[iconIndex]) == NULL)
{
node->flags &= (~HT_VOLATILE_URL_FLAG);
node->url[iconIndex] = buildInternalIconURL(node,
&volatileURLFlag, false, workspaceFlag);
iconURL = node->url[iconIndex];
if (volatileURLFlag)
{
node->flags |= HT_VOLATILE_URL_FLAG;
}
else
{
node->flags &= (~HT_VOLATILE_URL_FLAG);
}
}
}
}
return(node->url[iconIndex]);
else
{
HT_GetNodeData(node, res, HT_COLUMN_STRING, &iconURL);
}
return(iconURL);
}

Просмотреть файл

@ -177,7 +177,6 @@ typedef struct _HT_ValueStruct {
#define HT_HIDDEN_FLAG 0x0008
#define HT_SELECTED_FLAG 0x0010
#define HT_VOLATILE_URL_FLAG 0x0020
#define HT_FREEICON_URL_FLAG 0x0040
#define HT_PASSWORDOK_FLAG 0x0080
#define HT_INITED_FLAG 0x0100
#define HT_DIRTY_FLAG 0x0200
@ -190,7 +189,7 @@ typedef struct _HT_ResourceStruct {
RDF_Resource node;
void *feData;
char *dataSource;
char *url[5];
char *url[2];
HT_Value values;
HT_Resource child;
HT_Resource *children; /* used by sorting */