void HistoryLog::undo() { int size = ui->HistoryLogList->count(); if(size > 0) { QString last = historyLog.back(); QListWidgetItem* it = ui->HistoryLogList->takeItem(size-1); delete it; QStringList pieces = last.split( ":" ); QString itemPiece = pieces[0].mid(0,pieces[0].count()-4).trimmed(); QString fromPiece = pieces[1].mid(0,pieces[1].count()-4).trimmed(); QString toPiece = pieces[2].trimmed(); QListWidget* from = findWidgetByName(fromPiece); QListWidget* to = findWidgetByName(toPiece); QListWidgetItem* item; for(int idx = 0; idx< to->count(); idx++) { if(to->item(idx)->text() == itemPiece) { item = to->takeItem(idx); from->addItem(item); break; } } historyLog.erase(historyLog.end()-1); } }
void reDrawd(GtkButton *widget,gpointer project) { GtkWidget *layout; layout = gtk_widget_get_parent(widget); GtkWidget *brotherbutton; GtkWidget *windows; GtkWidget *scrollwindows; scrollwindows = gtk_widget_get_parent(layout); windows = gtk_widget_get_parent(scrollwindows); GdkColor color2; color2.red = 10000; color2.green = 50000; color2.blue = 10000; gtk_widget_modify_bg(widget, GTK_STATE_INSENSITIVE, &color2); gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &color2); gtk_widget_set_sensitive(widget,FALSE); gchar *buttonname = gtk_widget_get_name(widget); g_printf("the clicked button is %s\n",buttonname); GList *l = pertnodes; GList *l1; PlannerPertchartNode *clickednode; GList *string = NULL; for(;l;l=l->next) { gchar *pertnodename = mrp_task_get_name(planner_pertchart_node_get_task(l->data)); if(!g_strcmp0(buttonname,pertnodename)) { clickednode = l->data; break; } } GList *brothers = getPertchartNodebrothers(clickednode); for(l1=brothers;l1;l1=l1->next) { gchar *name = mrp_task_get_name(l1->data); brotherbutton = findWidgetByName(buttons,name); GdkColor color; color.red = 50000; color.green = 10000; color.blue = 10000; gtk_widget_modify_bg(brotherbutton, GTK_STATE_INSENSITIVE, &color); gtk_widget_set_sensitive(brotherbutton,FALSE); gtk_button_set_label(brotherbutton, "deleted"); mrp_project_remove_task (project,l1->data); } mrptime lastduration = totalduration(project); displaylastduration(lastduration); }
/** * @param output will be changed if possible, return 0 if changed, * @return widget, or 0 if output value was found (saved in argument), */ CameraWidget * DigitalCameraCapture::setGenericProperty(int propertyId, double /*FUTURE: value*/, bool & output) const { switch (propertyId) { case CV_CAP_PROP_POS_MSEC: case CV_CAP_PROP_POS_FRAMES: case CV_CAP_PROP_FRAME_WIDTH: case CV_CAP_PROP_FRAME_HEIGHT: case CV_CAP_PROP_FPS: case CV_CAP_PROP_FRAME_COUNT: case CV_CAP_PROP_FORMAT: output = false; return NULL; case CV_CAP_PROP_EXPOSURE: return findWidgetByName(PROP_EXPOSURE_COMPENSACTION); case CV_CAP_PROP_TRIGGER_DELAY: return findWidgetByName(PROP_SELF_TIMER_DELAY); case CV_CAP_PROP_ZOOM: return findWidgetByName(PROP_MANUALFOCUS); case CV_CAP_PROP_FOCUS: return findWidgetByName(PROP_AUTOFOCUS); case CV_CAP_PROP_ISO_SPEED: return findWidgetByName(PROP_ISO); case CV_CAP_PROP_SPEED: return findWidgetByName(PROP_SPEED); case CV_CAP_PROP_APERTURE: { CameraWidget * widget = findWidgetByName(PROP_APERTURE_NIKON); return (widget == NULL) ? findWidgetByName(PROP_APERTURE_CANON) : widget; } case CV_CAP_PROP_EXPOSUREPROGRAM: return findWidgetByName(PROP_EXPOSURE_PROGRAM); case CV_CAP_PROP_VIEWFINDER: return findWidgetByName(PROP_VIEWFINDER); } return NULL; }
/** * @brief CameraHandler::setConfigAction * @param p * @param name * @param value * @return */ int QTLCamera::setConfigAction(const char *name, const char *value) { CameraWidget *rootConfig,*child; int rc; const char *label; CameraWidgetType type; rc = findWidgetByName(name, &child, &rootConfig); if (rc != GP_OK) { return rc; } rc = gp_widget_get_type (child, &type); if (rc != GP_OK) { gp_widget_free(rootConfig); return rc; } rc = gp_widget_get_label(child, &label); if (rc != GP_OK) { gp_widget_free(rootConfig); return rc; } switch (type) { case GP_WIDGET_TOGGLE: { } case GP_WIDGET_TEXT: { /* char * */ rc = gp_widget_set_value(child, value); if (rc != GP_OK) { qDebug() << "Failed to set the value of text widget" << name << value; } break; } case GP_WIDGET_RANGE: { /* float */ float floatValue, top, bottom, s; rc = gp_widget_get_range(child, &bottom, &top, &s); if (rc != GP_OK) break; if (!sscanf(value, "%f", &floatValue)) { qDebug() << "The passed value" << value << "is not a floating point value."; rc = GP_ERROR_BAD_PARAMETERS; break; } if ((floatValue < bottom) || (floatValue > top)) { qDebug () << "The passed value" << floatValue << "is not within the expected range" << bottom << "-" << top << "."; rc = GP_ERROR_BAD_PARAMETERS; break; } rc = gp_widget_set_value(child, &floatValue); if (rc != GP_OK) { qDebug() << "Failed to set the value of range widget" << name << "to" << floatValue << "."; } break; } case GP_WIDGET_DATE: { /* int */ int t = -1; if (t == -1) { if (!sscanf(value, "%d", &t)) { qDebug() << "The passed value" << value << "is neither a valid time nor an integer."; rc = GP_ERROR_BAD_PARAMETERS; break; } } rc = gp_widget_set_value(child, &t); if (rc != GP_OK) { qDebug() << "Failed to set new time of date/time widget " << name << " to " << value << "."; } break; } case GP_WIDGET_MENU: case GP_WIDGET_RADIO: { /* char * */ int cnt, i; cnt = gp_widget_count_choices(child); if (cnt < GP_OK) { rc = cnt; break; } rc = GP_ERROR_BAD_PARAMETERS; for (i=0; i<cnt; i++) { const char *choice; rc = gp_widget_get_choice(child, i, &choice); if (rc != GP_OK) { continue; } if (!strcmp(choice, value)) { rc = gp_widget_set_value(child, value); break; } } if (i != cnt) { break; } if (sscanf(value, "%d", &i)) { if ((i >= 0) && (i < cnt)) { const char *choice; rc = gp_widget_get_choice(child, i, &choice); if (rc == GP_OK) { rc = gp_widget_set_value(child, choice); } break; } } qDebug() << "Choice " << value << " not found within list of choices."; break; } /* ignore: */ case GP_WIDGET_WINDOW: case GP_WIDGET_SECTION: case GP_WIDGET_BUTTON: //gp_context_error(p->context, _("The %s widget is not configurable."), name); rc = GP_ERROR_BAD_PARAMETERS; break; } if (rc == GP_OK) { rc = gp_camera_set_config(params->camera, rootConfig, params->context); if (rc != GP_OK) { qDebug() << "Failed to set new configuration value " << value << " for configuration entry " << name << "."; } } gp_widget_free(rootConfig); return rc; }
/** * @brief QTLCamera::_getWidgets * @param widgetList * @param widget * @param prefix */ void QTLCamera::_getWidgets(vector<QTLWidget> *widgetList, CameraWidget *widget, char *prefix) { int rc, n; char *newprefix; const char *label, *name, *uselabel; CameraWidgetType type; CameraWidget *rootConfig, *child; QTLWidget qtlWidget; gp_widget_get_label(widget, &label); gp_widget_get_name(widget, &name); gp_widget_get_type(widget, &type); if (strlen(name)) { uselabel = name; } else { uselabel = label; } n = gp_widget_count_children(widget); newprefix = new char[strlen(prefix) + 1 + strlen(uselabel) + 1]; if (!newprefix) { return; } sprintf(newprefix, "%s/%s", prefix, uselabel); //XXX Was this supposed to be a conditional for the whole section? // Assuming yes due to indenting. qDebug() << "\tDetected widget: " << uselabel; if ((type != GP_WIDGET_WINDOW) && (type != GP_WIDGET_SECTION)) { rc = findWidgetByName(uselabel, &child, &rootConfig); rc = gp_widget_get_type(child, &type); rc = gp_widget_get_label(child, &label); if (type == GP_WIDGET_RADIO) { int count, i; char *current; rc = gp_widget_get_value(child, ¤t); if (rc == GP_OK) { count = gp_widget_count_choices(child); if (type == GP_WIDGET_MENU) { } else { for (i=0; i<count; i++) { const char *choice; rc = gp_widget_get_choice(child, i, &choice); qtlWidget.choices.push_back(choice); qDebug() << "\t\tDetected choice: " << choice; } qtlWidget.title = label; qtlWidget.name = name; qtlWidget.defaultChoice = current; qtlWidget.choiceLabel = uselabel; params->widgetList->push_back(qtlWidget); } } } } for (int i = 0; i < n; i++) { CameraWidget *child; rc = gp_widget_get_child(widget, i, &child); if (rc != GP_OK) { continue; } _getWidgets(widgetList, child, newprefix); } free(newprefix); }
/** * @param output will be changed if possible, return 0 if changed, * @return widget, or NULL if output value was found (saved in argument), */ CameraWidget * DigitalCameraCapture::getGenericProperty(int propertyId, double & output) const { switch (propertyId) { case CV_CAP_PROP_POS_MSEC: { // Only seconds level precision, FUTURE: cross-platform milliseconds output = (time(0) - firstCapturedFrameTime) * 1e2; return NULL; } case CV_CAP_PROP_POS_FRAMES: { output = capturedFrames; return NULL; } case CV_CAP_PROP_FRAME_WIDTH: { if (!frame.empty()) { output = frame.cols; } return NULL; } case CV_CAP_PROP_FRAME_HEIGHT: { if (!frame.empty()) { output = frame.rows; } return NULL; } case CV_CAP_PROP_FORMAT: { if (!frame.empty()) { output = frame.type(); } return NULL; } case CV_CAP_PROP_FPS: // returns average fps from the begin { double wholeProcessTime = 0; getGenericProperty(CV_CAP_PROP_POS_MSEC, wholeProcessTime); wholeProcessTime /= 1e2; output = capturedFrames / wholeProcessTime; return NULL; } case CV_CAP_PROP_FRAME_COUNT: { output = capturedFrames; return NULL; } case CV_CAP_PROP_EXPOSURE: return findWidgetByName(PROP_EXPOSURE_COMPENSACTION); case CV_CAP_PROP_TRIGGER_DELAY: return findWidgetByName(PROP_SELF_TIMER_DELAY); case CV_CAP_PROP_ZOOM: return findWidgetByName(PROP_MANUALFOCUS); case CV_CAP_PROP_FOCUS: return findWidgetByName(PROP_AUTOFOCUS); case CV_CAP_PROP_ISO_SPEED: return findWidgetByName(PROP_ISO); case CV_CAP_PROP_SPEED: return findWidgetByName(PROP_SPEED); case CV_CAP_PROP_APERTURE: { CameraWidget * widget = findWidgetByName(PROP_APERTURE_NIKON); return (widget == 0) ? findWidgetByName(PROP_APERTURE_CANON) : widget; } case CV_CAP_PROP_EXPOSUREPROGRAM: return findWidgetByName(PROP_EXPOSURE_PROGRAM); case CV_CAP_PROP_VIEWFINDER: return findWidgetByName(PROP_VIEWFINDER); } return NULL; }