/* write all capture filenames of the menu to the user's recent file */ extern "C" void menu_recent_file_write_all(FILE *rf) { /* we have to iterate backwards through the children's list, * so we get the latest item last in the file. */ QListIterator<recent_item_status *> rii(recent_items_); rii.toBack(); while (rii.hasPrevious()) { QString cf_name; /* get capture filename from the menu item label */ cf_name = rii.previous()->filename; if (cf_name != NULL) { // if(u3_active()) // fprintf (rf, RECENT_KEY_CAPTURE_FILE ": %s\n", u3_contract_device_path(cf_name)); // else fprintf (rf, RECENT_KEY_CAPTURE_FILE ": %s\n", cf_name.toUtf8().constData()); } } }
/* * XXX - We might want to call SHAddToRecentDocs under Windows 7: * http://stackoverflow.com/questions/437212/how-do-you-register-a-most-recently-used-list-with-windows-in-preparation-for-win */ extern "C" void add_menu_recent_capture_file(const gchar *cf_name) { QString normalized_cf_name = QString::fromUtf8(cf_name); QDir cf_path; cf_path.setPath(normalized_cf_name); normalized_cf_name = cf_path.absolutePath(); normalized_cf_name = QDir::cleanPath(normalized_cf_name); normalized_cf_name = QDir::toNativeSeparators(normalized_cf_name); /* Iterate through the recent items list, removing duplicate entries and every * item above count_max */ unsigned int cnt = 1; QMutableListIterator<recent_item_status *> rii(recent_items_); while (rii.hasNext()) { recent_item_status *ri = rii.next(); /* if this element string is one of our special items (separator, ...) or * already in the list or * this element is above maximum count (too old), remove it */ if (ri->filename.length() < 1 || #ifdef _WIN32 /* do a case insensitive compare on win32 */ ri->filename.compare(normalized_cf_name, Qt::CaseInsensitive) == 0 || #else /* _WIN32 */ /* do a case sensitive compare on unix */ ri->filename.compare(normalized_cf_name) == 0 || #endif cnt >= prefs.gui_recent_files_count_max) { rii.remove(); delete(ri); cnt--; } cnt++; } wsApp->addRecentItem(normalized_cf_name, 0, false); }
static void SetUpTestCase() { rii(); }