bool ShiftManipulator::preProcessing() { if (m_firstrun) { // If we have an NCS, create a child command for each element. if (cells().count() > 1) { // non-contiguous selection // Sort the elements by their top row. if (m_direction == ShiftBottom) { qStableSort(cells().begin(), cells().end(), topRowLessThan); } else { // ShiftRight qStableSort(cells().begin(), cells().end(), leftColumnLessThan); } // Create sub-commands. const KCRegion::ConstIterator end(constEnd()); for (KCRegion::ConstIterator it = constBegin(); it != end; ++it) { ShiftManipulator *const command = new ShiftManipulator(this); command->setSheet(m_sheet); command->add(KCRegion((*it)->rect(), (*it)->sheet())); if (m_mode == Delete) { command->setReverse(true); } command->setDirection(m_direction); } } else { // contiguous selection m_sheet->cellStorage()->startUndoRecording(); } } return KCAbstractRegionCommand::preProcessing(); }
void SM_ModelBackend::sortData() { qStableSort(SubnetList.begin(), SubnetList.end(), SM_ModelBackend::SubnetLessThan); qStableSort(Subnet4List.begin(), Subnet4List.end(), SM_ModelBackend::SubnetLessThan); qStableSort(Subnet6List.begin(), Subnet6List.end(), SM_ModelBackend::SubnetLessThan); }
void QUSongFileData::sort(QList<QUSongFile*> &songs) { if(this->next()) this->next()->sort(songs); if(QString::compare(_property, "path", Qt::CaseInsensitive) == 0) qStableSort(songs.begin(), songs.end(), QUSongFile::pathLessThan); else if(QString::compare(_property, "filePath", Qt::CaseInsensitive) == 0) qStableSort(songs.begin(), songs.end(), QUSongFile::filePathLessThan); else if(QString::compare(_property, "relativeFilePath", Qt::CaseInsensitive) == 0) qStableSort(songs.begin(), songs.end(), QUSongFile::relativeFilePathLessThan); }
void MusicNode::sort() { // Sort any tracks qStableSort(my_tracks.begin(), my_tracks.end(), meta_less_than); // Sort any subnodes qStableSort(my_subnodes.begin(), my_subnodes.end(), music_less_than); // Tell any subnodes to sort themselves MusicNodePtrList::const_iterator sit = my_subnodes.begin(); for (; sit != my_subnodes.end(); ++sit) (*sit)->sort(); }
void SymbianDeviceManager::update(bool emitSignals) { QMutexLocker lock(&d->m_devicesLock); static int n = 0; typedef SymbianDeviceList::iterator SymbianDeviceListIterator; if (debug) qDebug(">SerialDeviceLister::update(#%d, signals=%d)\n%s", n++, int(emitSignals), qPrintable(toString())); d->m_initialized = true; // Get ordered new list SymbianDeviceList newDevices = serialPorts() + blueToothDevices(); if (newDevices.size() > 1) qStableSort(newDevices.begin(), newDevices.end()); if (d->m_devices == newDevices) { // Happy, nothing changed. if (debug) qDebug("<SerialDeviceLister::update: unchanged\n"); return; } // Merge the lists and emit the respective added/removed signals, assuming // no one can plug a different device on the same port at the speed of lightning SymbianDeviceList removedDevices; if (!d->m_devices.isEmpty()) { // Find deleted devices for (SymbianDeviceListIterator oldIt = d->m_devices.begin(); oldIt != d->m_devices.end(); ) { if (newDevices.contains(*oldIt)) { ++oldIt; } else { SymbianDevice toBeDeleted = *oldIt; toBeDeleted.forcedClose(); oldIt = d->m_devices.erase(oldIt); removedDevices.append(toBeDeleted); } } } SymbianDeviceList addedDevices; if (!newDevices.isEmpty()) { // Find new devices and insert in order foreach(const SymbianDevice &newDevice, newDevices) { if (!d->m_devices.contains(newDevice)) { d->m_devices.append(newDevice); addedDevices.append(newDevice); } } if (d->m_devices.size() > 1) qStableSort(d->m_devices.begin(), d->m_devices.end()); }
void DesktopSortingStrategy::sortItems(ItemList &items) { GroupManager *gm = qobject_cast<GroupManager *>(parent()); qStableSort(items.begin(), items.end(), (gm && gm->separateLaunchers()) ? DesktopSortingStrategy::lessThanSeperateLaunchers : DesktopSortingStrategy::lessThan); }
void GitoriousRepositoryWizardPage::initializePage() { // Populate the model ui->repositoryTreeView->selectionModel()->clearSelection(); if (const int oldRowCount = m_model->rowCount()) m_model->removeRows(0, oldRowCount); ui->filterLineEdit->clear(); // fill model const QSharedPointer<GitoriousProject> proj = m_projectPage->project(); setSubTitle(tr("Choose a repository of the project '%1'.").arg(proj->name)); // Create a hierarchical list by repository type, sort by type QList<GitoriousRepository> repositories = proj->repositories; QStandardItem *firstEntry = 0; if (!repositories.empty()) { int lastRepoType = -1; QStandardItem *header = 0; qStableSort(repositories.begin(), repositories.end(), gitRepoLessThanByType); const QString types[GitoriousRepository::PersonalRepository + 1] = { tr("Mainline Repositories"), tr("Clones"), tr("Baseline Repositories"), tr("Shared Project Repositories"), tr("Personal Repositories") }; foreach(const GitoriousRepository &r, repositories) { // New Header? if (r.type != lastRepoType || !header) { lastRepoType = r.type; const QList<QStandardItem *> headerRow = headerEntry(types[r.type]); m_model->appendRow(headerRow); header = headerRow.front(); } // Repository row const QList<QStandardItem *> row = repositoryEntry(r); header->appendRow(row); if (!firstEntry) firstEntry = row.front(); } }
void TwitterSipPlugin::accountAuthenticated( const QWeakPointer< TomahawkOAuthTwitter > &twitterAuth, const QTweetUser &user ) { Q_UNUSED( user ); if ( !m_account->enabled() || !m_account->isAuthenticated() ) return; m_cachedTwitterAuth = twitterAuth; m_friendsTimeline = QWeakPointer<QTweetFriendsTimeline>( new QTweetFriendsTimeline( m_cachedTwitterAuth.data(), this ) ); m_mentions = QWeakPointer<QTweetMentions>( new QTweetMentions( m_cachedTwitterAuth.data(), this ) ); m_directMessages = QWeakPointer<QTweetDirectMessages>( new QTweetDirectMessages( m_cachedTwitterAuth.data(), this ) ); m_directMessageNew = QWeakPointer<QTweetDirectMessageNew>( new QTweetDirectMessageNew( m_cachedTwitterAuth.data(), this ) ); m_directMessageDestroy = QWeakPointer<QTweetDirectMessageDestroy>( new QTweetDirectMessageDestroy( m_cachedTwitterAuth.data(), this ) ); connect( m_friendsTimeline.data(), SIGNAL( parsedStatuses(const QList< QTweetStatus > &) ), SLOT( friendsTimelineStatuses(const QList<QTweetStatus> &) ) ); connect( m_mentions.data(), SIGNAL( parsedStatuses(const QList< QTweetStatus > &) ), SLOT( mentionsStatuses(const QList<QTweetStatus> &) ) ); connect( m_directMessages.data(), SIGNAL( parsedDirectMessages(const QList<QTweetDMStatus> &)), SLOT( directMessages(const QList<QTweetDMStatus> &) ) ); connect( m_directMessageNew.data(), SIGNAL( parsedDirectMessage(const QTweetDMStatus &)), SLOT( directMessagePosted(const QTweetDMStatus &) ) ); connect( m_directMessageNew.data(), SIGNAL( error(QTweetNetBase::ErrorCode, const QString &) ), SLOT( directMessagePostError(QTweetNetBase::ErrorCode, const QString &) ) ); connect( m_directMessageDestroy.data(), SIGNAL( parsedDirectMessage(const QTweetDMStatus &) ), SLOT( directMessageDestroyed(const QTweetDMStatus &) ) ); m_state = Tomahawk::Accounts::Account::Connected; emit stateChanged( m_state ); QStringList peerList = m_cachedPeers.keys(); qStableSort( peerList.begin(), peerList.end() ); registerOffers( peerList ); m_connectTimer.start(); m_checkTimer.start(); m_dmPollTimer.start(); QMetaObject::invokeMethod( this, "checkTimerFired", Qt::AutoConnection ); QTimer::singleShot( 20000, this, SLOT( connectTimerFired() ) ); }
void FunctionConfig::reload() { _size = 0; if (_points.size()) qStableSort(_points.begin(), _points.end(), sortFn); if (_data) delete[] _data; _data = NULL; if (_points.size()) { _data = new float[_size = MEMOIZE_PRECISION * _points[_points.size() - 1].x()]; for (int i = 0; i < _size; i++) _data[i] = -1e6; for (int k = 0; k < _points[0].x() * MEMOIZE_PRECISION; k++) { if (k < _size) _data[k] = _points[0].y() * k / (_points[0].x() * MEMOIZE_PRECISION); } for (int i = 0; i < _points.size(); i++) { QPointF p0 = ensureInBounds(_points, i - 1); QPointF p1 = ensureInBounds(_points, i); QPointF p2 = ensureInBounds(_points, i + 1); QPointF p3 = ensureInBounds(_points, i + 2); int end = p2.x() * MEMOIZE_PRECISION; int start = p1.x() * MEMOIZE_PRECISION; for (int j = start; j < end && j < _size; j++) { double t = (j - start) / (double) (end - start); double t2 = t*t; double t3 = t*t*t; int x = .5 * ((2. * p1.x()) + (-p0.x() + p2.x()) * t + (2. * p0.x() - 5. * p1.x() + 4. * p2.x() - p3.x()) * t2 + (-p0.x() + 3. * p1.x() - 3. * p2.x() + p3.x()) * t3) * MEMOIZE_PRECISION; float y = .5 * ((2. * p1.y()) + (-p0.y() + p2.y()) * t + (2. * p0.y() - 5. * p1.y() + 4. * p2.y() - p3.y()) * t2 + (-p0.y() + 3. * p1.y() - 3. * p2.y() + p3.y()) * t3); if (x >= 0 && x < _size) _data[x] = y; } } float last = 0; for (int i = 0; i < _size; i++) { if (_data[i] == -1e6) _data[i] = last; last = _data[i]; } } }
bool TwitterPlugin::connectPlugin( bool startup ) { Q_UNUSED( startup ); qDebug() << Q_FUNC_INFO; m_cachedPeers = twitterCachedPeers(); QStringList peerList = m_cachedPeers.keys(); qStableSort( peerList.begin(), peerList.end() ); registerOffers( peerList ); if ( twitterOAuthToken().isEmpty() || twitterOAuthTokenSecret().isEmpty() ) { qDebug() << "TwitterPlugin has empty Twitter credentials; not connecting"; return m_cachedPeers.isEmpty(); } if ( refreshTwitterAuth() ) { QTweetAccountVerifyCredentials *credVerifier = new QTweetAccountVerifyCredentials( m_twitterAuth.data(), this ); connect( credVerifier, SIGNAL( parsedUser(const QTweetUser &) ), SLOT( connectAuthVerifyReply(const QTweetUser &) ) ); credVerifier->verify(); m_state = Connecting; emit stateChanged( m_state ); } return true; }
QString Molecule::rawFormula() const{ QList<const Element*> key = this->keys(); // the list of element qStableSort(key.begin(), key.end(), Element::symbolCompare); // sortened by Alphabetical order QString rawFormula(""); // an for the moment empty raw Formula foreach(const Element* el, key){ // foreach element rawFormula += el->symbol() + this->value(el); // we append its symbol and count }
void Generator::generate() { if (m_classes.size() == 0) { ReportHandler::warning(QString("%1: no java classes, skipping") .arg(metaObject()->className())); return; } qStableSort(m_classes); foreach (AbstractMetaClass *cls, m_classes) { if (!shouldGenerate(cls)) continue; QString fileName = fileNameForClass(cls); ReportHandler::debugSparse(QString("generating: %1").arg(fileName)); FileOut fileOut(outputDirectory() + "/" + subDirectoryForClass(cls) + "/" + fileName); write(fileOut.stream, cls); if( fileOut.done() ) ++m_num_generated_written; ++m_num_generated; } }
void FcitxIMPage::Private::moveUpIM() { QModelIndex curIndex = currentIMView->currentIndex(); if (curIndex.isValid() && curIndex.row() > 0) { QModelIndex nextIndex = currentIMModel->index(curIndex.row() - 1, 0); FcitxIM* curIM = static_cast<FcitxIM*>(curIndex.internalPointer()); FcitxIM* nextIM = static_cast<FcitxIM*>(nextIndex.internalPointer()); if (curIM == NULL || nextIM == NULL) return; int i = 0, curIMIdx = -1, nextIMIdx = -1; for (i = 0; i < m_list.size(); i ++) { if (curIM->uniqueName() == m_list[i].uniqueName()) curIMIdx = i; if (nextIM->uniqueName() == m_list[i].uniqueName()) nextIMIdx = i; } if (curIMIdx >= 0 && nextIMIdx >= 0 && curIMIdx != nextIMIdx) { m_list.swap(curIMIdx, nextIMIdx); qStableSort(m_list.begin(), m_list.end()); emit updateIMList(curIM->uniqueName()); emit changed(); } } }
void Spreadsheet::sort(const SpreadsheetCompare &compare) { QList<QStringList> rows; QTableWidgetSelectionRange range = selectedRange(); int i; for(i = 0; i < range.rowCount(); ++i) { QStringList row; for(int j = 0; j < range.columnCount(); ++j) row.append(formula(range.topRow() + i, range.leftColumn() + j)); rows.append(row); } qStableSort(rows.begin(), rows.end(), compare); for(i = 0; i < range.rowCount(); ++i) { for(int j = 0; j < range.columnCount(); ++j) setFormula(range.topRow() + i, range.leftColumn() + j, rows[i][j]); } clearSelection(); somethingChanged(); }
OrganiseDialog::OrganiseDialog(TaskManager* task_manager, QWidget* parent) : QDialog(parent), ui_(new Ui_OrganiseDialog), task_manager_(task_manager), total_size_(0), resized_by_user_(false) { ui_->setupUi(this); connect(ui_->button_box->button(QDialogButtonBox::Reset), SIGNAL(clicked()), SLOT(Reset())); ui_->aftercopying->setItemIcon(1, IconLoader::Load("edit-delete")); // Valid tags QMap<QString, QString> tags; tags[tr("Title")] = "title"; tags[tr("Album")] = "album"; tags[tr("Artist")] = "artist"; tags[tr("Artist's initial")] = "artistinitial"; tags[tr("Album artist")] = "albumartist"; tags[tr("Composer")] = "composer"; tags[tr("Performer")] = "performer"; tags[tr("Grouping")] = "grouping"; tags[tr("Lyrics")] = "lyrics"; tags[tr("Track")] = "track"; tags[tr("Disc")] = "disc"; tags[tr("BPM")] = "bpm"; tags[tr("Year")] = "year"; tags[tr("Genre")] = "genre"; tags[tr("Comment")] = "comment"; tags[tr("Length")] = "length"; tags[tr("Bitrate", "Refers to bitrate in file organise dialog.")] = "bitrate"; tags[tr("Samplerate")] = "samplerate"; tags[tr("File extension")] = "extension"; // Naming scheme input field new OrganiseFormat::SyntaxHighlighter(ui_->naming); connect(ui_->destination, SIGNAL(currentIndexChanged(int)), SLOT(UpdatePreviews())); connect(ui_->naming, SIGNAL(textChanged()), SLOT(UpdatePreviews())); connect(ui_->replace_ascii, SIGNAL(toggled(bool)), SLOT(UpdatePreviews())); connect(ui_->replace_the, SIGNAL(toggled(bool)), SLOT(UpdatePreviews())); connect(ui_->replace_spaces, SIGNAL(toggled(bool)), SLOT(UpdatePreviews())); // Get the titles of the tags to put in the insert menu QStringList tag_titles = tags.keys(); qStableSort(tag_titles); // Build the insert menu QMenu* tag_menu = new QMenu(this); QSignalMapper* tag_mapper = new QSignalMapper(this); for (const QString& title : tag_titles) { QAction* action = tag_menu->addAction(title, tag_mapper, SLOT(map())); tag_mapper->setMapping(action, tags[title]); } connect(tag_mapper, SIGNAL(mapped(QString)), SLOT(InsertTag(QString))); ui_->insert->setMenu(tag_menu); }
PreviewPluginsModel::PreviewPluginsModel(QObject *parent) : QAbstractListModel(parent) { m_plugins = KServiceTypeTrader::self()->query(QStringLiteral("ThumbCreator")); qStableSort(m_plugins.begin(), m_plugins.end(), lessThan); m_checkedRows = QVector<bool>(m_plugins.size(), false); }
QVector<int> getIntersect(QVector<int> S1, QVector<int> S2, bool sorted) { QVector<int> result; for(int i=0; i<S1.count(); i++) if(S2.contains(S1.at(i))) result.append(S1.at(i)); if(sorted) qStableSort(result); return result; }
PreviewPluginsModel::PreviewPluginsModel(QObject *parent) : QAbstractListModel(parent) { plugins = KServiceTypeTrader::self()->query("ThumbCreator"); // Sort the list alphabetially qStableSort(plugins.begin(), plugins.end(), lessThan); }
void FcitxIMPage::Private::fetchIMList() { if (m_inputmethod->isValid()) { m_list = m_inputmethod->iMList(); qStableSort(m_list.begin(), m_list.end()); emit updateIMList(QString()); } }
QVector<int> getUnion(QVector<int> S1, QVector<int> S2, bool sorted) { QVector<int> result = S1; for(int i=0; i<S2.count(); i++) if(!S1.contains(S2.at(i))) result.append(S2.at(i)); if(sorted) qStableSort(result); return result; }
void AlbumCoverManager::ArtistChanged(QListWidgetItem* current) { if (!current) return; QString artist; if (current->type() == Specific_Artist) artist = current->text(); ui_->albums->clear(); context_menu_items_.clear(); CancelRequests(); // Get the list of albums. How we do it depends on what thing we have // selected in the artist list. LibraryBackend::AlbumList albums; switch (current->type()) { case Various_Artists: albums = library_backend_->GetCompilationAlbums(); break; case Specific_Artist: albums = library_backend_->GetAlbumsByArtist(current->text()); break; case All_Artists: default: albums = library_backend_->GetAllAlbums(); break; } // Sort by album name. The list is already sorted by sqlite but it was done // case sensitively. qStableSort(albums.begin(), albums.end(), CompareAlbumNameNocase); for (const LibraryBackend::Album& info : albums) { // Don't show songs without an album, obviously if (info.album_name.isEmpty()) continue; QListWidgetItem* item = new QListWidgetItem(no_cover_icon_, info.album_name, ui_->albums); item->setData(Role_ArtistName, info.artist); item->setData(Role_AlbumName, info.album_name); item->setData(Role_FirstUrl, info.first_url); item->setData(Qt::TextAlignmentRole, QVariant(Qt::AlignTop | Qt::AlignHCenter)); item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsDragEnabled); item->setToolTip(info.artist + " - " + info.album_name); if (!info.art_automatic.isEmpty() || !info.art_manual.isEmpty()) { quint64 id = app_->album_cover_loader()->LoadImageAsync( cover_loader_options_, info.art_automatic, info.art_manual, info.first_url.toLocalFile()); item->setData(Role_PathAutomatic, info.art_automatic); item->setData(Role_PathManual, info.art_manual); cover_loading_tasks_[id] = item; } } UpdateFilter(); }
bool DNAAlphabetRegistryImpl::registerAlphabet(const DNAAlphabet* a) { if (findById(a->getId())!=NULL) { return false; } alphabets.push_back(a); //WARN: original order for equal alphabets must not be changed (DNA must be before RNA) qStableSort(alphabets.begin(), alphabets.end(), alphabetComplexityComparator); return true; }
QStringList PlaylistParser::mime_types() const { QStringList ret; for (ParserBase* parser : parsers_) { if (!parser->mime_type().isEmpty()) ret << parser->mime_type(); } qStableSort(ret); return ret; }
QStringList PlaylistParser::file_extensions() const { QStringList ret; for (ParserBase* parser : parsers_) { ret << parser->file_extensions(); } qStableSort(ret); return ret; }
void QueueManager::MoveUp() { QModelIndexList indexes = ui_->list->selectionModel()->selectedRows(); qStableSort(indexes); if (indexes.isEmpty() || indexes.first().row() == 0) return; for (const QModelIndex& index : indexes) { current_playlist_->queue()->MoveUp(index.row()); } }
void ToolBarManager::updateToolBarMenu() { // Sort tool bars alphabetically by title qStableSort(m_toolbars.begin(), m_toolbars.end(), toolBarTitleLessThan); // add to menu m_toolBarMenu->clear(); foreach (QToolBar *tb, m_toolbars) m_toolBarMenu->addAction(tb->toggleViewAction()); m_toolBarMenu->addAction(m_configureAction); }
BehaviourSettingsPage::BehaviourSettingsPage(SettingsDialog* dialog) : SettingsPage(dialog), ui_(new Ui_BehaviourSettingsPage) { ui_->setupUi(this); connect(ui_->b_show_tray_icon_, SIGNAL(toggled(bool)), SLOT(ShowTrayIconToggled(bool))); ui_->doubleclick_addmode->setItemData(0, MainWindow::AddBehaviour_Append); ui_->doubleclick_addmode->setItemData(1, MainWindow::AddBehaviour_Load); ui_->doubleclick_addmode->setItemData(2, MainWindow::AddBehaviour_OpenInNew); ui_->doubleclick_addmode->setItemData(3, MainWindow::AddBehaviour_Enqueue); ui_->doubleclick_playmode->setItemData(0, MainWindow::PlayBehaviour_Never); ui_->doubleclick_playmode->setItemData(1, MainWindow::PlayBehaviour_IfStopped); ui_->doubleclick_playmode->setItemData(2, MainWindow::PlayBehaviour_Always); ui_->menu_playmode->setItemData(0, MainWindow::PlayBehaviour_Never); ui_->menu_playmode->setItemData(1, MainWindow::PlayBehaviour_IfStopped); ui_->menu_playmode->setItemData(2, MainWindow::PlayBehaviour_Always); // Populate the language combo box. We do this by looking at all the // compiled in translations. QDir dir(":/translations/"); QStringList codes(dir.entryList(QStringList() << "*.qm")); QRegExp lang_re("^clementine_(.*).qm$"); for (const QString& filename : codes) { // The regex captures the "ru" from "clementine_ru.qm" if (!lang_re.exactMatch(filename)) continue; QString code = lang_re.cap(1); QString language_name = QLocale::languageToString(QLocale(code).language()); #if QT_VERSION >= 0x040800 QString native_name = QLocale(code).nativeLanguageName(); if (!native_name.isEmpty()) { language_name = native_name; } #endif QString name = QString("%1 (%2)").arg(language_name, code); language_map_[name] = code; } language_map_["English (en)"] = "en"; // Sort the names and show them in the UI QStringList names = language_map_.keys(); qStableSort(names.begin(), names.end(), LocaleAwareCompare); ui_->language->addItems(names); #ifdef Q_OS_DARWIN ui_->b_show_tray_icon_->setEnabled(false); ui_->startup_group_->setEnabled(false); #endif }
void QueueManager::MoveDown() { QModelIndexList indexes = ui_->list->selectionModel()->selectedRows(); qStableSort(indexes); if (indexes.isEmpty() || indexes.last().row() == current_playlist_->queue()->rowCount() - 1) return; for (int i = indexes.count() - 1; i >= 0; --i) { current_playlist_->queue()->MoveDown(indexes[i].row()); } }
void MediaView::moveUpSelected() { if (!playlistView->selectionModel()->hasSelection()) return; QModelIndexList indexes = playlistView->selectionModel()->selectedIndexes(); qStableSort(indexes.begin(), indexes.end()); playlistModel->move(indexes, true); // set current index after row moves to something more intuitive int row = indexes.at(0).row(); playlistView->selectionModel()->setCurrentIndex(playlistModel->index(row > 1 ? row : 1), QItemSelectionModel::NoUpdate); }
void MediaView::moveDownSelected() { if (!playlistView->selectionModel()->hasSelection()) return; QModelIndexList indexes = playlistView->selectionModel()->selectedIndexes(); qStableSort(indexes.begin(), indexes.end(), qGreater<QModelIndex>()); playlistModel->move(indexes, false); // set current index after row moves to something more intuitive // (respect 1 static item on bottom) int row = indexes.at(0).row() + 1, max = playlistModel->rowCount() - 2; playlistView->selectionModel()->setCurrentIndex(playlistModel->index(row > max ? max : row), QItemSelectionModel::NoUpdate); }