void SharedFilesDialog::copyLinkhtml( ) { copyLink(); QString link = QApplication::clipboard()->text(); QClipboard *clipboard = QApplication::clipboard(); clipboard->setText("<a href='" + link + "'> " + link + "</a>"); }
void NetworkDialog::connecttreeWidgetCostumPopupMenu( QPoint /*point*/ ) { //std::cerr << "NetworkDialog::connecttreeWidgetCostumPopupMenu( QPoint point ) called" << std::endl; QTreeWidgetItem *wi = getCurrentNeighbour(); if (!wi) return; QMenu *contextMnu = new QMenu; std::string peer_id = wi->text(COLUMN_PEERID).toStdString() ; // That's what context menus are made for RsPeerDetails detail; if(!rsPeers->getGPGDetails(peer_id, detail)) // that is not suppose to fail. return ; if(peer_id != rsPeers->getGPGOwnId()) { if(detail.accept_connection) { QAction* denyFriendAct = new QAction(QIcon(IMAGE_DENIED), tr( "Deny friend" ), contextMnu ); connect( denyFriendAct , SIGNAL( triggered() ), this, SLOT( denyFriend() ) ); contextMnu->addAction( denyFriendAct); } else // not a friend { QAction* makefriendAct = new QAction(QIcon(IMAGE_MAKEFRIEND), tr( "Make friend" ), contextMnu ); connect( makefriendAct , SIGNAL( triggered() ), this, SLOT( makeFriend() ) ); contextMnu->addAction( makefriendAct); #ifdef TODO if(detail.validLvl > RS_TRUST_LVL_MARGINAL) // it's a denied old friend. { QAction* deleteCertAct = new QAction(QIcon(IMAGE_PEERDETAILS), tr( "Delete certificate" ), contextMnu ); connect( deleteCertAct, SIGNAL( triggered() ), this, SLOT( deleteCert() ) ); contextMnu->addAction( deleteCertAct ); } #endif } } if(peer_id == rsPeers->getGPGOwnId()) { QAction* exportcertAct = new QAction(QIcon(IMAGE_EXPORT), tr( "Export my Cert" ), contextMnu ); connect( exportcertAct , SIGNAL( triggered() ), this, SLOT( on_actionExportKey_activated() ) ); contextMnu->addAction( exportcertAct); } QAction* peerdetailsAct = new QAction(QIcon(IMAGE_PEERDETAILS), tr( "Peer details..." ), contextMnu ); connect( peerdetailsAct , SIGNAL( triggered() ), this, SLOT( peerdetails() ) ); contextMnu->addAction( peerdetailsAct); contextMnu->addAction(QIcon(IMAGE_COPYLINK), tr("Copy RetroShare Link"), this, SLOT(copyLink())); contextMnu->exec(QCursor::pos()); }
void SharedFilesDialog::addLinkToCloud() { copyLink(); AddLinksDialog *nAddLinksDialog = new AddLinksDialog(QApplication::clipboard()->text()); nAddLinksDialog->show(); /* window will destroy itself! */ }
void FLogTextBrowser::contextMenuEvent(QContextMenuEvent *event) { flist_copylink = anchorAt(event->pos()); QTextCursor cursor = textCursor(); QMenu *menu = new QMenu; QAction *action; if(flist_copylink.isEmpty()) { //Plain text selected } else if(flist_copylink.startsWith("https://www.f-list.net/c/")) { flist_copyname = flist_copylink.mid(QString("https://www.f-list.net/c/").length()); if(flist_copyname.endsWith("/")) { flist_copyname = flist_copyname.left(flist_copyname.length() - 1); } menu->addAction(QString("Open Profile"), this, SLOT(openProfile())); //todo: Get the list of available sessions. Create a submenu with all available characters if there is more than one (or this session isn't vlaid). menu->addAction(QString("Open PM"), this, SLOT(openPrivateMessage())); menu->addAction(QString("Copy Profile Link"), this, SLOT(copyLink())); menu->addAction(QString("Copy Name"), this, SLOT(copyName())); menu->addSeparator(); } else if(flist_copylink.startsWith("#AHI-")) { flist_copyname = flist_copylink.mid(5); //todo: Get the list of available sessions. Create a submenu with all available characters if there is more than one (or this session isn't vlaid). menu->addAction(QString("Join Channel"), this, SLOT(joinChannel())); //todo: Maybe get the name the plain text of the link and make that available for copying? menu->addAction(QString("Copy Channel ID"), this, SLOT(copyName())); menu->addSeparator(); } else if(flist_copylink.startsWith("#CSA-")) { flist_copyname = flist_copylink.mid(5); //todo: If possible, get which session this actually came from and use that. menu->addAction(QString("Confirm Staff Report"), this, SLOT(confirmReport())); menu->addAction(QString("Copy Call ID"), this, SLOT(copyName())); menu->addSeparator(); } else { menu->addAction(QString("Copy Link"), this, SLOT(copyLink())); menu->addSeparator(); } action = menu->addAction(QString("Copy Selection"), this, SLOT(copy())); action->setEnabled(cursor.hasSelection()); menu->addAction(QString("Select All"), this, SLOT(selectAll())); menu->exec(event->globalPos()); delete menu; }
/** Constructor */ FeedReaderFeedItem::FeedReaderFeedItem(RsFeedReader *feedReader, FeedReaderNotify *notify, FeedHolder *parent, const FeedInfo &feedInfo, const FeedMsgInfo &msgInfo) : QWidget(NULL), mFeedReader(feedReader), mNotify(notify), mParent(parent), ui(new Ui::FeedReaderFeedItem) { /* Invoke the Qt Designer generated object setup routine */ ui->setupUi(this); setAttribute(Qt::WA_DeleteOnClose, true); connect(ui->expandButton, SIGNAL(clicked(void)), this, SLOT(toggle(void))); connect(ui->clearButton, SIGNAL(clicked(void)), this, SLOT(removeItem(void))); connect(ui->readAndClearButton, SIGNAL(clicked()), this, SLOT(readAndClearItem())); connect(ui->linkButton, SIGNAL(clicked()), this, SLOT(openLink())); connect(mNotify, SIGNAL(msgChanged(QString,QString,int)), this, SLOT(msgChanged(QString,QString,int)), Qt::QueuedConnection); ui->expandFrame->hide(); mFeedId = feedInfo.feedId; mMsgId = msgInfo.msgId; if (feedInfo.icon.empty()) { ui->feedIconLabel->hide(); } else { /* use icon from feed */ QPixmap pixmap; if (pixmap.loadFromData(QByteArray::fromBase64(feedInfo.icon.c_str()))) { ui->feedIconLabel->setPixmap(pixmap.scaled(16, 16, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); } else { ui->feedIconLabel->hide(); } } ui->titleLabel->setText(QString::fromUtf8(feedInfo.name.c_str())); ui->msgTitleLabel->setText(QString::fromUtf8(msgInfo.title.c_str())); ui->descriptionLabel->setText(QString::fromUtf8((msgInfo.descriptionTransformed.empty() ? msgInfo.description : msgInfo.descriptionTransformed).c_str())); ui->dateTimeLabel->setText(DateTime::formatLongDateTime(msgInfo.pubDate)); /* build menu for link button */ mLink = QString::fromUtf8(msgInfo.link.c_str()); if (mLink.isEmpty()) { ui->linkButton->setEnabled(false); } else { QMenu *menu = new QMenu(this); QAction *action = menu->addAction(tr("Open link in browser"), this, SLOT(openLink())); menu->addAction(tr("Copy link to clipboard"), this, SLOT(copyLink())); QFont font = action->font(); font.setBold(true); action->setFont(font); ui->linkButton->setMenu(menu); } }
KAction* BookmarkOwner::createAction(const KBookmark &bookmark, const BookmarkAction &bmAction) { switch (bmAction) { case OPEN: return createAction(i18n("Open"), "tab-new", i18n("Open bookmark in current tab"), SLOT(loadBookmark(KBookmark)), bookmark); case OPEN_IN_TAB: return createAction(i18n("Open in New Tab"), "tab-new", i18n("Open bookmark in new tab"), SLOT(loadBookmarkInNewTab(KBookmark)), bookmark); case OPEN_IN_WINDOW: return createAction(i18n("Open in New Window"), "window-new", i18n("Open bookmark in new window"), SLOT(loadBookmarkInNewWindow(KBookmark)), bookmark); case OPEN_FOLDER: return createAction(i18n("Open Folder in Tabs"), "tab-new", i18n("Open all the bookmarks in folder in tabs"), SLOT(loadBookmarkFolder(KBookmark)), bookmark); case BOOKMARK_PAGE: return createAction(i18n("Add Bookmark"), "bookmark-new", i18n("Bookmark current page"), SLOT(bookmarkCurrentPage(KBookmark)), bookmark); case NEW_FOLDER: return createAction(i18n("New Folder"), "folder-new", i18n("Create a new bookmark folder"), SLOT(newBookmarkFolder(KBookmark)), bookmark); case NEW_SEPARATOR: return createAction(i18n("New Separator"), "edit-clear", i18n("Create a new bookmark separator"), SLOT(newSeparator(KBookmark)), bookmark); case COPY: return createAction(i18n("Copy Link"), "edit-copy", i18n("Copy the bookmark's link address"), SLOT(copyLink(KBookmark)), bookmark); case EDIT: return createAction(i18n("Edit"), "configure", i18n("Edit the bookmark"), SLOT(editBookmark(KBookmark)), bookmark); case DELETE: return createAction(i18n("Delete"), "edit-delete", i18n("Delete the bookmark"), SLOT(deleteBookmark(KBookmark)), bookmark); case SET_TOOLBAR_FOLDER: return createAction(i18n("Set as toolbar folder"), "bookmark-toolbar", "", SLOT(setToolBarFolder(KBookmark)), bookmark); case UNSET_TOOLBAR_FOLDER: return createAction(i18n("Unset this folder as the toolbar folder"), "bookmark-toolbar", "", SLOT(unsetToolBarFolder()), bookmark); default: ASSERT_NOT_REACHED(unknown BookmarkAction); return 0; } }
void SharedFilesDialog::sendLinkTo() { copyLink(); /* create a message */ MessageComposer *nMsgDialog = MessageComposer::newMsg(); if (nMsgDialog == NULL) { return; } /* fill it in * files are receommended already * just need to set peers */ std::cerr << "SharedFilesDialog::sendLinkTo()" << std::endl; nMsgDialog->setTitleText(tr("RetroShare Link")); nMsgDialog->setMsgText(RSLinkClipboard::toHtml(), true); nMsgDialog->show(); /* window will destroy itself! */ }
/** Default constructor */ DetailsDialog::DetailsDialog(QWidget *parent) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint) { /* Invoke Qt Designer generated QObject setup routine */ ui.setupUi(this); setAttribute ( Qt::WA_DeleteOnClose, true ); CommentsModel = new QStandardItemModel(0, 3); CommentsModel->setHeaderData(0, Qt::Horizontal, tr("Rating")); CommentsModel->setHeaderData(1, Qt::Horizontal, tr("Comments")); CommentsModel->setHeaderData(2, Qt::Horizontal, tr("File Name")); //ui.commentsTreeView->setModel(CommentsModel); //ui.commentsTreeView->setSortingEnabled(true); //ui.commentsTreeView->setRootIsDecorated(false); /* Set header resize modes and initial section sizes */ //QHeaderView * _coheader = ui.commentsTreeView->header(); //_coheader->setResizeMode ( 0, QHeaderView::Custom); //_coheader->resizeSection ( 0, 100 ); //_coheader->resizeSection ( 1, 240 ); //_coheader->resizeSection ( 2, 100 ); FileTransferInfoWidget *ftiw = new FileTransferInfoWidget(); ui.fileTransferInfoWidget->setWidget(ftiw); ui.fileTransferInfoWidget->setWidgetResizable(true); ui.fileTransferInfoWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); ui.fileTransferInfoWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); ui.fileTransferInfoWidget->viewport()->setBackgroundRole(QPalette::NoRole); ui.fileTransferInfoWidget->setFrameStyle(QFrame::NoFrame); ui.fileTransferInfoWidget->setFocusPolicy(Qt::NoFocus); setAttribute(Qt::WA_DeleteOnClose,false) ; connect(ui.copylinkdetailsButton,SIGNAL(clicked()),this,SLOT(copyLink())) ; }
FindSubtitlesWindow::FindSubtitlesWindow( QWidget * parent, Qt::WindowFlags f ) : QDialog(parent,f) { setupUi(this); set = 0; // settings subtitles_for_label->setBuddy(file_chooser->lineEdit()); progress->hide(); connect( file_chooser, SIGNAL(fileChanged(QString)), this, SLOT(setMovie(QString)) ); connect( file_chooser->lineEdit(), SIGNAL(textChanged(const QString &)), this, SLOT(updateRefreshButton()) ); connect( refresh_button, SIGNAL(clicked()), this, SLOT(refresh()) ); connect( download_button, SIGNAL(clicked()), this, SLOT(download()) ); /* connect( language_filter, SIGNAL(editTextChanged(const QString &)), this, SLOT(applyFilter(const QString &)) ); */ connect( language_filter, SIGNAL(activated(int)), this, SLOT(applyCurrentFilter()) ); table = new QStandardItemModel(this); table->setColumnCount(COL_USER + 1); proxy_model = new QSortFilterProxyModel(this); proxy_model->setSourceModel(table); proxy_model->setFilterKeyColumn(COL_LANG); proxy_model->setFilterRole(Qt::UserRole); view->setModel(proxy_model); view->setRootIsDecorated(false); view->setSortingEnabled(true); view->setAlternatingRowColors(true); view->header()->setSortIndicator(COL_LANG, Qt::AscendingOrder); view->setEditTriggers(QAbstractItemView::NoEditTriggers); view->setContextMenuPolicy( Qt::CustomContextMenu ); connect(view, SIGNAL(activated(const QModelIndex &)), this, SLOT(itemActivated(const QModelIndex &)) ); connect(view->selectionModel(), SIGNAL(currentChanged(const QModelIndex &,const QModelIndex &)), this, SLOT(currentItemChanged(const QModelIndex &,const QModelIndex &)) ); connect(view, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(showContextMenu(const QPoint &)) ); downloader = new SimpleHttp(this); connect( downloader, SIGNAL(downloadFailed(QString)), this, SLOT(showError(QString)) ); connect( downloader, SIGNAL(downloadFinished(QByteArray)), this, SLOT(downloadFinished()) ); connect( downloader, SIGNAL(downloadFinished(QByteArray)), this, SLOT(parseInfo(QByteArray)) ); connect( downloader, SIGNAL(stateChanged(int)), this, SLOT(updateRefreshButton()) ); connect( downloader, SIGNAL(connecting(QString)), this, SLOT(connecting(QString)) ); connect( downloader, SIGNAL(dataReadProgress(int, int)), this, SLOT(updateDataReadProgress(int, int)) ); #ifdef DOWNLOAD_SUBS include_lang_on_filename = true; file_downloader = new FileDownloader(this); file_downloader->setModal(true); connect( file_downloader, SIGNAL(downloadFailed(QString)), this, SLOT(showError(QString)), Qt::QueuedConnection ); connect( file_downloader, SIGNAL(downloadFinished(const QByteArray &)), this, SLOT(archiveDownloaded(const QByteArray &)), Qt::QueuedConnection ); #endif // Actions downloadAct = new QAction(this); downloadAct->setEnabled(false); connect( downloadAct, SIGNAL(triggered()), this, SLOT(download()) ); copyLinkAct = new QAction(this); copyLinkAct->setEnabled(false); connect( copyLinkAct, SIGNAL(triggered()), this, SLOT(copyLink()) ); context_menu = new QMenu(this); context_menu->addAction(downloadAct); context_menu->addAction(copyLinkAct); retranslateStrings(); language_filter->setCurrentIndex(0); }
void CustomWebView::contextMenuEvent (QGraphicsSceneContextMenuEvent *e) { QPointer<QMenu> menu (new QMenu ()); QWebHitTestResult r = page ()-> mainFrame ()->hitTestContent (e->pos ().toPoint ()); IHookProxy_ptr proxy (new Util::DefaultHookProxy ()); emit hookWebViewContextMenu (proxy, this, e, r, menu, WVSStart); if (!r.linkUrl ().isEmpty ()) { QUrl url = r.linkUrl (); QString text = r.linkText (); if (XmlSettingsManager::Instance ()-> property ("TryToDetectRSSLinks").toBool ()) { bool hasAtom = text.contains ("Atom"); bool hasRSS = text.contains ("RSS"); if (hasAtom || hasRSS) { LeechCraft::Entity e; if (hasAtom) { e.Additional_ ["UserVisibleName"] = "Atom"; e.Mime_ = "application/atom+xml"; } else { e.Additional_ ["UserVisibleName"] = "RSS"; e.Mime_ = "application/rss+xml"; } e.Entity_ = url; e.Parameters_ = LeechCraft::FromUserInitiated | LeechCraft::OnlyHandle; bool ch = false; emit couldHandle (e, &ch); if (ch) { QList<QVariant> datalist; datalist << url << e.Mime_; menu->addAction (tr ("Subscribe"), this, SLOT (subscribeToLink ()))->setData (datalist); menu->addSeparator (); } } } menu->addAction (tr ("Open &here"), this, SLOT (openLinkHere ()))->setData (url); menu->addAction (tr ("Open in new &tab"), this, SLOT (openLinkInNewTab ()))->setData (url); menu->addSeparator (); menu->addAction (tr ("&Save link..."), this, SLOT (saveLink ())); QList<QVariant> datalist; datalist << url << text; menu->addAction (tr ("&Bookmark link..."), this, SLOT (bookmarkLink ()))->setData (datalist); menu->addSeparator (); if (!page ()->selectedText ().isEmpty ()) menu->addAction (pageAction (QWebPage::Copy)); menu->addAction (tr ("&Copy link"), this, SLOT (copyLink ())); if (page ()->settings ()->testAttribute (QWebSettings::DeveloperExtrasEnabled)) menu->addAction (pageAction (QWebPage::InspectElement)); } else if (page ()->selectedText ().contains (UrlInText)) { menu->addAction (tr ("Open as link"), this, SLOT (openLinkInNewTab ()))-> setData (page ()->selectedText ()); } emit hookWebViewContextMenu (proxy, this, e, r, menu, WVSAfterLink); if (!r.imageUrl ().isEmpty ()) { if (!menu->isEmpty ()) menu->addSeparator (); menu->addAction (tr ("Open image here"), this, SLOT (openImageHere ()))->setData (r.imageUrl ()); menu->addAction (tr ("Open image in new tab"), this, SLOT (openImageInNewTab ())); menu->addSeparator (); menu->addAction (tr ("Save image..."), this, SLOT (saveImage ())); QAction *spx = menu->addAction (tr ("Save pixmap..."), this, SLOT (savePixmap ())); spx->setToolTip (tr ("Saves the rendered pixmap without redownloading.")); spx->setProperty ("Poshuku/OrigPX", r.pixmap ()); spx->setProperty ("Poshuku/OrigURL", r.imageUrl ()); menu->addAction (tr ("Copy image"), this, SLOT (copyImage ())); menu->addAction (tr ("Copy image location"), this, SLOT (copyImageLocation ()))->setData (r.imageUrl ()); } emit hookWebViewContextMenu (proxy, this, e, r, menu, WVSAfterImage); bool hasSelected = !page ()->selectedText ().isEmpty (); if (hasSelected) { if (!menu->isEmpty ()) menu->addSeparator (); menu->addAction (pageAction (QWebPage::Copy)); } if (r.isContentEditable ()) menu->addAction (pageAction (QWebPage::Paste)); if (hasSelected) { Browser_->Find_->setData (page ()->selectedText ()); menu->addAction (Browser_->Find_); menu->addAction (tr ("Search..."), this, SLOT (searchSelectedText ())); } emit hookWebViewContextMenu (proxy, this, e, r, menu, WVSAfterSelectedText); if (menu->isEmpty ()) menu = page ()->createStandardContextMenu (); if (!menu->isEmpty ()) menu->addSeparator (); menu->addAction (Browser_->Add2Favorites_); menu->addSeparator (); menu->addAction (Browser_->Print_); menu->addAction (Browser_->PrintPreview_); menu->addSeparator (); menu->addAction (Browser_->ViewSources_); menu->addAction (Browser_->SavePage_); menu->addSeparator (); menu->addAction (pageAction (QWebPage::ReloadAndBypassCache)); menu->addAction (Browser_->ReloadPeriodically_); menu->addAction (Browser_->NotifyWhenFinished_); menu->addSeparator (); menu->addAction (Browser_->ChangeEncoding_->menuAction ()); emit hookWebViewContextMenu (proxy, this, e, r, menu, WVSAfterFinish); if (!menu->isEmpty ()) menu->exec (Browser_->GetGraphicsView ()->viewport ()-> mapToGlobal (e->pos ().toPoint ())); else QGraphicsWebView::contextMenuEvent (e); if (menu) delete menu; }
static int traverseDirs(const shared_ptr<EncFS_Root> &rootInfo, std::string volumeDir, std::string destDir, const std::set<std::string>& toWrite ) { bool fake = toWrite.empty(); if(!endsWith(volumeDir, '/')) volumeDir.append("/"); if(!endsWith(destDir, '/')) destDir.append("/"); std::string test_string = volumeDir; if (endsWith(test_string, '/') && test_string.length() != 1) { test_string = test_string.substr(0, test_string.length()-1); } /* Abort if we're in export mode and this directory * doesn't need to be written */ if (!toWrite.empty() && toWrite.find(test_string) == toWrite.end()) { return EXIT_SUCCESS; } // Lookup directory node so we can create a destination directory // with the same permissions { struct stat st; shared_ptr<FileNode> dirNode = rootInfo->root->lookupNode( volumeDir.c_str(), "encfsctl" ); if(dirNode->getAttr(&st)) return EXIT_FAILURE; // In fake mode, we always create rw: mode_t srcmode = st.st_mode; if (fake) srcmode = S_IRWXU; if (mkdir(destDir.c_str(), srcmode) == -1) { if (errno == EACCES /* sic! */ || errno == EROFS || errno == ENOSPC) { std::ostringstream out; out << "Not creating " << destDir << ": " << strerror(errno); LOGE(out.str().c_str()); return EXIT_FAILURE; } } } // show files in directory DirTraverse dt = rootInfo->root->openDir(volumeDir.c_str()); if(dt.valid()) { for(std::string name = dt.nextPlaintextName(); !name.empty(); name = dt.nextPlaintextName()) { bool skip = !toWrite.empty() && toWrite.find(volumeDir+name) == toWrite.end(); // Recurse to subdirectories if(name != "." && name != ".." && !skip) { std::string plainPath = volumeDir + name; std::string cpath = rootInfo->root->cipherPath(plainPath.c_str()); std::string destName = destDir + name; /*std::ostringstream out; out << "Decoding " << cpath << " to " << plainPath << " in " << destName; LOGI(out.str().c_str()); */ int r = EXIT_SUCCESS; struct stat stBuf; if( !lstat( cpath.c_str(), &stBuf )) { if( S_ISDIR( stBuf.st_mode ) ) { r = traverseDirs(rootInfo, (plainPath + '/').c_str(), destName + '/', toWrite); } else if( S_ISLNK( stBuf.st_mode )) { r = copyLink( stBuf, rootInfo, cpath, destName ); } else { r = copyContents(rootInfo, plainPath.c_str(), destName.c_str(), fake); } } else { r = EXIT_FAILURE; } if(r != EXIT_SUCCESS) return r; } } } return EXIT_SUCCESS; }
void SharedFilesDialog::copyLink() { copyLink ( getSelected() , isRemote()); }
/** Constructor */ SharedFilesDialog::SharedFilesDialog(RetroshareDirModel *_tree_model,RetroshareDirModel *_flat_model,QWidget *parent) : RsAutoUpdatePage(1000,parent),model(NULL) { /* Invoke the Qt Designer generated object setup routine */ ui.setupUi(this); NotifyQt *notify = NotifyQt::getInstance(); connect(notify, SIGNAL(filesPreModChanged(bool)), this, SLOT(preModDirectories(bool))); connect(notify, SIGNAL(filesPostModChanged(bool)), this, SLOT(postModDirectories(bool))); //== connect(ui.localButton, SIGNAL(toggled(bool)), this, SLOT(showFrame(bool))); //== connect(ui.remoteButton, SIGNAL(toggled(bool)), this, SLOT(showFrameRemote(bool))); //== connect(ui.splittedButton, SIGNAL(toggled(bool)), this, SLOT(showFrameSplitted(bool))); connect(ui.viewType_CB, SIGNAL(currentIndexChanged(int)), this, SLOT(changeCurrentViewModel(int))); connect( ui.dirTreeView, SIGNAL( customContextMenuRequested( QPoint ) ), this, SLOT( spawnCustomPopupMenu( QPoint ) ) ); connect(ui.indicatorCBox, SIGNAL(currentIndexChanged(int)), this, SLOT(indicatorChanged(int))); tree_model = _tree_model ; flat_model = _flat_model ; tree_proxyModel = new SFDSortFilterProxyModel(tree_model, this); tree_proxyModel->setSourceModel(tree_model); tree_proxyModel->setSortCaseSensitivity(Qt::CaseInsensitive); tree_proxyModel->setSortRole(RetroshareDirModel::SortRole); tree_proxyModel->sort(COLUMN_NAME); flat_proxyModel = new SFDSortFilterProxyModel(flat_model, this); flat_proxyModel->setSourceModel(flat_model); flat_proxyModel->setSortCaseSensitivity(Qt::CaseInsensitive); flat_proxyModel->setSortRole(RetroshareDirModel::SortRole); flat_proxyModel->sort(COLUMN_NAME); // Mr.Alice: I removed this because it causes a crash for some obscur reason. Apparently when the model is changed, the proxy model cannot // deal with the change by itself. Should I call something specific? I've no idea. Removing this does not seem to cause any harm either. //tree_proxyModel->setDynamicSortFilter(true); //flat_proxyModel->setDynamicSortFilter(true); connect(ui.filterClearButton, SIGNAL(clicked()), this, SLOT(clearFilter())); connect(ui.filterStartButton, SIGNAL(clicked()), this, SLOT(startFilter())); connect(ui.filterPatternLineEdit, SIGNAL(returnPressed()), this, SLOT(startFilter())); connect(ui.filterPatternLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(filterRegExpChanged())); /* Set header resize modes and initial section sizes */ QHeaderView * header = ui.dirTreeView->header () ; header->resizeSection ( COLUMN_NAME, 490 ); header->resizeSection ( COLUMN_SIZE, 70 ); header->resizeSection ( COLUMN_AGE, 100 ); header->resizeSection ( COLUMN_FRIEND,100); header->resizeSection ( COLUMN_DIR, 100 ); header->setStretchLastSection(false); /* Set Multi Selection */ ui.dirTreeView->setSelectionMode(QAbstractItemView::ExtendedSelection); /* Hide platform specific features */ copylinkAct = new QAction(QIcon(IMAGE_COPYLINK), tr( "Copy retroshare Links to Clipboard" ), this ); connect( copylinkAct , SIGNAL( triggered() ), this, SLOT( copyLink() ) ); copylinkhtmlAct = new QAction(QIcon(IMAGE_COPYLINK), tr( "Copy retroshare Links to Clipboard (HTML)" ), this ); connect( copylinkhtmlAct , SIGNAL( triggered() ), this, SLOT( copyLinkhtml() ) ); sendlinkAct = new QAction(QIcon(IMAGE_COPYLINK), tr( "Send retroshare Links" ), this ); connect( sendlinkAct , SIGNAL( triggered() ), this, SLOT( sendLinkTo( ) ) ); #ifdef RS_USE_LINKS sendlinkCloudAct = new QAction(QIcon(IMAGE_COPYLINK), tr( "Send retroshare Links to Cloud" ), this ); connect( sendlinkCloudAct , SIGNAL( triggered() ), this, SLOT( sendLinkToCloud( ) ) ); addlinkCloudAct = new QAction(QIcon(IMAGE_COPYLINK), tr( "Add Links to Cloud" ), this ); connect( addlinkCloudAct , SIGNAL( triggered() ), this, SLOT( addLinkToCloud( ) ) ); #endif collCreateAct= new QAction(QIcon(IMAGE_COLLCREATE), tr("Create Collection..."), this) ; connect(collCreateAct,SIGNAL(triggered()),this,SLOT(collCreate())) ; collModifAct= new QAction(QIcon(IMAGE_COLLMODIF), tr("Modify Collection..."), this) ; connect(collModifAct,SIGNAL(triggered()),this,SLOT(collModif())) ; collViewAct= new QAction(QIcon(IMAGE_COLLVIEW), tr("View Collection..."), this) ; connect(collViewAct,SIGNAL(triggered()),this,SLOT(collView())) ; collOpenAct = new QAction(QIcon(IMAGE_COLLOPEN), tr( "Download from collection file..." ), this ) ; connect(collOpenAct, SIGNAL(triggered()), this, SLOT(collOpen())) ; }