void MainWindow::addBook() { //Multiselection file dialog //http://www.qtcentre.org/threads/34226-QFileDialog-select-multiple-directories?p=220108#post220108 QFileDialog getBookListDialog(this,"Choose Book to Convert",lastSelectDir); getBookListDialog.setFileMode(QFileDialog::DirectoryOnly); getBookListDialog.setOption(QFileDialog::DontUseNativeDialog,true); QListView *l = getBookListDialog.findChild<QListView*>("listView"); if (l) { l->setSelectionMode(QAbstractItemView::ExtendedSelection); } QTreeView *t = getBookListDialog.findChild<QTreeView*>("treeView"); if (t) { t->setSelectionMode(QAbstractItemView::ExtendedSelection); } // if(getBookListDialog.exec() == QDialog::Accepted) { ui->listWidget->addItems(getBookListDialog.selectedFiles()); } this->lastSelectDir = getBookListDialog.directory().absolutePath(); }
void WidgetMain::on_pushButtonFilter_clicked() { filterFolderPaths_.clear(); QFileDialog fileDialog(this, "select folder ", "./"); fileDialog.setFileMode(QFileDialog::DirectoryOnly); fileDialog.setOption(QFileDialog::DontUseNativeDialog, true); QListView *pListView = fileDialog.findChild<QListView*>("listView"); if(NULL != pListView) { qDebug() << "find listview!"; pListView->setSelectionMode(QAbstractItemView::ExtendedSelection); } if(fileDialog.exec()) { QStringList folderPaths = fileDialog.selectedFiles(); if(folderPaths.isEmpty()) { qDebug() << "folders is empty!"; return; } #ifdef WIN32 foreach (QString tmp, folderPaths) { filterFolderPaths_ << tmp.replace("/", "\\"); }
MainWindow::MainWindow() { QMenu *fileMenu = new QMenu(tr("&File")); QAction *quitAction = fileMenu->addAction(tr("E&xit")); quitAction->setShortcut(tr("Ctrl+Q")); menuBar()->addMenu(fileMenu); // For convenient quoting: //! [0] QListView *listView = new QListView(this); listView->setSelectionMode(QAbstractItemView::ExtendedSelection); listView->setDragEnabled(true); listView->setAcceptDrops(true); listView->setDropIndicatorShown(true); //! [0] this->listView = listView; connect(quitAction, SIGNAL(triggered()), this, SLOT(close())); setupListItems(); setCentralWidget(listView); setWindowTitle(tr("List View")); }
void MainWindow::buildFileBrowser() { QString rootPath = qgetenv("HOME"); this->drivesModel->setFilter(QDir::NoDotAndDotDot | QDir::Dirs); QTreeView *treeView = this->treeView = new QTreeView(this->ui->dockDir); treeView->setModel(this->drivesModel); treeView->setRootIndex(this->drivesModel->setRootPath(rootPath + "/../")); treeView->hideColumn(1); treeView->hideColumn(2); treeView->hideColumn(3); treeView->setEditTriggers(QAbstractItemView::NoEditTriggers); treeView->setDragEnabled(true); treeView->setDragDropMode(QAbstractItemView::DragOnly); this->ui->dockDir->setWidget(treeView); this->filesModel->setFilter(QDir::NoDotAndDotDot | QDir::Files); QListView *listView = this->listView = new QListView(this->ui->dockFile); listView->setModel(this->filesModel); listView->setRootIndex(this->filesModel->setRootPath(rootPath)); listView->setEditTriggers(QAbstractItemView::NoEditTriggers); listView->setDragEnabled(true); listView->setSelectionMode(QAbstractItemView::ExtendedSelection); this->ui->dockFile->setWidget(listView); listView->show(); treeView->show(); }
void AnnotationImagePaletteWidget::addPalette(const QString& path) { QListView* pPalette = new QListView(this); pPalette->setWrapping(true); pPalette->setLayoutMode(QListView::Batched); pPalette->setBatchSize(10); pPalette->setMovement(QListView::Static); pPalette->setFlow(QListView::LeftToRight); pPalette->setIconSize(QSize(32, 32)); pPalette->setViewMode(QListView::IconMode); pPalette->setDragEnabled(true); pPalette->setDragDropMode(QAbstractItemView::DragOnly); pPalette->setSelectionMode(QAbstractItemView::SingleSelection); pPalette->setResizeMode(QListView::Adjust); if (QFileInfo(path).isDir()) { QDirModel* pModel = new PaletteModel(this); pModel->setFilter(QDir::Files | QDir::Readable); QStringList formats; QList<QByteArray> rawFormats = QImageReader::supportedImageFormats(); foreach (const QByteArray& rawFormat, rawFormats) { formats << "*." + QString(rawFormat); }
QFileDialog* selectFiles(QString title, QString dir, QString nameString, QString nameExt) { QFileDialog* finder = new QFileDialog(); finder->setWindowTitle(title); finder->setDirectory(dir); finder->setNameFilter(nameString + "(" + nameExt + ")"); QListView *l = finder->findChild<QListView*>("listView"); if (l) l->setSelectionMode(QAbstractItemView::ExtendedSelection); QTreeView *t = finder->findChild<QTreeView*>(); if (t) t->setSelectionMode(QAbstractItemView::ExtendedSelection); return finder; }
void ConfigUI::on_tool_adddirs_clicked(){ QFileDialog dlg(this); dlg.setFileMode(QFileDialog::DirectoryOnly); QListView *l = dlg.findChild<QListView*>("listView"); if(l){ l->setSelectionMode(QAbstractItemView::MultiSelection); } QTreeView *t = dlg.findChild<QTreeView*>(); if(t){ t->setSelectionMode(QAbstractItemView::MultiSelection); } dlg.setDirectory(QDir::homePath()); dlg.setWindowTitle( tr("Exclude Directories") ); if(dlg.exec()){ //Directories selected QStringList paths = dlg.selectedFiles(); ui->list_excludes->addItems(paths); } }
/*! Returns the popup used to display completions. \sa setPopup() */ QAbstractItemView *QCompleter::popup() const { Q_D(const QCompleter); #ifndef QT_NO_LISTVIEW if (!d->popup && completionMode() != QCompleter::InlineCompletion) { QListView *listView = new QListView; listView->setEditTriggers(QAbstractItemView::NoEditTriggers); listView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); listView->setSelectionBehavior(QAbstractItemView::SelectRows); listView->setSelectionMode(QAbstractItemView::SingleSelection); listView->setModelColumn(d->column); QCompleter *that = const_cast<QCompleter*>(this); that->setPopup(listView); } #endif // QT_NO_LISTVIEW return d->popup; }
int main(int argc, char *argv[]) { Q_INIT_RESOURCE(interview); QApplication app(argc, argv); QSplitter page; QAbstractItemModel *data = new Model(1000, 10, &page); QItemSelectionModel *selections = new QItemSelectionModel(data); QTableView *table = new QTableView; table->setModel(data); table->setSelectionModel(selections); table->horizontalHeader()->setMovable(true); table->verticalHeader()->setMovable(true); // Set StaticContents to enable minimal repaints on resizes. table->viewport()->setAttribute(Qt::WA_StaticContents); page.addWidget(table); QTreeView *tree = new QTreeView; tree->setModel(data); tree->setSelectionModel(selections); tree->setUniformRowHeights(true); tree->header()->setStretchLastSection(false); tree->viewport()->setAttribute(Qt::WA_StaticContents); // Disable the focus rect to get minimal repaints when scrolling on Mac. tree->setAttribute(Qt::WA_MacShowFocusRect, false); page.addWidget(tree); QListView *list = new QListView; list->setModel(data); list->setSelectionModel(selections); list->setViewMode(QListView::IconMode); list->setSelectionMode(QAbstractItemView::ExtendedSelection); list->setAlternatingRowColors(false); list->viewport()->setAttribute(Qt::WA_StaticContents); list->setAttribute(Qt::WA_MacShowFocusRect, false); page.addWidget(list); page.setWindowIcon(QPixmap(":/images/interview.png")); page.setWindowTitle("Interview"); page.show(); return app.exec(); }
/** * Ask the user to choose one or more directories. * TODO: browse the remotes directories (Core) not the local ones. */ QStringList Utils::askForDirectories(QSharedPointer<RCC::ICoreConnection> coreConnection, const QString& message) { if (coreConnection->isLocal()) { QFileDialog fileDialog(0, "Choose a directory"); fileDialog.setOption(QFileDialog::DontUseNativeDialog, true); fileDialog.setFileMode(QFileDialog::Directory); if (!message.isNull()) { QGridLayout* layout = fileDialog.findChild<QGridLayout*>(); QLabel* label = new QLabel(message, &fileDialog); layout->addWidget(label, layout->rowCount(), 0, 1, -1, Qt::AlignLeft | Qt::AlignVCenter); } QListView* l = fileDialog.findChild<QListView*>("listView"); if (l) l->setSelectionMode(QAbstractItemView::ExtendedSelection); if (fileDialog.exec()) { return fileDialog.selectedFiles(); } return QStringList(); } else { RemoteFileDialog fileDialog; fileDialog.setWindowTitle("Remote directory"); fileDialog.setText("Remote directory to share : "); if (fileDialog.exec()) { return QStringList() << fileDialog.getFolder(); } return QStringList(); } }
SongEditorWindow::SongEditorWindow(SlideGroup *g, QWidget *parent) : AbstractSlideGroupEditor(g,parent), m_slideGroup(0), m_editWin(0), m_syncToDatabase(true), m_arrModel(0) { setAttribute(Qt::WA_DeleteOnClose,true); QWidget *centerWidget = new QWidget(this); QVBoxLayout * vbox = new QVBoxLayout(centerWidget); // Title editor QHBoxLayout * hbox1 = new QHBoxLayout(); QLabel *label = new QLabel("&Title: "); hbox1->addWidget(label); m_title = new QLineEdit(); label->setBuddy(m_title); hbox1->addWidget(m_title); vbox->addLayout(hbox1); // Default arrangement QHBoxLayout *hbox2 = new QHBoxLayout(); label = new QLabel("Default Arrangement: "); hbox2->addWidget(label); m_defaultArrangement = new QLineEdit(); m_defaultArrangement->setReadOnly(true); QPalette p = m_defaultArrangement->palette(); p.setColor(QPalette::Base, Qt::lightGray); m_defaultArrangement->setPalette(p); hbox2->addWidget(m_defaultArrangement); vbox->addLayout(hbox2); // My arrangement QHBoxLayout *hbox3 = new QHBoxLayout(); label = new QLabel("&Arrangement:"); hbox3->addWidget(label); //m_arrangement = new QLineEdit(); //m_arrangement->setReadOnly(false); m_arrangement = new QComboBox(); m_arrangement->setEditable(true); m_arrangement->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum); connect(m_arrangement, SIGNAL(editTextChanged(const QString&)), this, SLOT(arrTextChanged(const QString&))); connect(m_arrangement, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(arrCurrentIndexChanged(const QString&))); connect(m_arrangement, SIGNAL(activated(const QString &)), this, SLOT(arrActivated(const QString&))); label->setBuddy(m_arrangement); hbox3->addWidget(m_arrangement); QPushButton *btn = new QPushButton("Default"); btn->setIcon(QIcon(":/data/stock-undo.png")); btn->setToolTip("Reset arrangement to default arrangement (above)"); connect(btn, SIGNAL(clicked()), this, SLOT(resetArr())); hbox3->addWidget(btn); btn = new QPushButton("Show/Hide List"); btn->setCheckable(true); btn->setIcon(QIcon(":/data/stock-find-and-replace.png")); btn->setToolTip("Show/hide the arrangement drag-and-drop list"); connect(btn, SIGNAL(toggled(bool)), this, SLOT(arrListViewToggled(bool))); hbox3->addWidget(btn); QPushButton *listBtn = btn; vbox->addLayout(hbox3); setWindowIcon(QIcon(":/data/icon-d.png")); QFont font; font.setFamily("Courier"); font.setFixedPitch(true); font.setPointSize(10); //QHBoxLayout *editorHBox = new QHBoxLayout(); //editorHBox->setContentsMargins(0,0,0,0); QSplitter *editorHBox = new QSplitter(); m_editor = new MyQTextEdit; m_editor->setFont(font); editorHBox->addWidget(m_editor); connect(m_editor, SIGNAL(textChanged()), this, SLOT(editTextChanged())); //m_editor->setAcceptRichText(false); m_highlighter = new SongEditorHighlighter(m_editor->document()); // Arrangement preview box m_arrangementPreview = new MyQTextEdit; m_arrangementPreview->setFont(font); m_arrangementPreview->setReadOnly(true); QPalette p2 = m_arrangementPreview->palette(); p2.setColor(QPalette::Base, Qt::lightGray); m_arrangementPreview->setPalette(p2); editorHBox->addWidget(m_arrangementPreview); //m_editor->setAcceptRichText(false); (void*)new SongEditorHighlighter(m_arrangementPreview->document()); // List view m_arrModel = new ArrangementListModel(); connect(m_arrModel, SIGNAL(blockListChanged(QStringList)), this, SLOT(arrModelChange(QStringList))); QListView *arrListView = new QListView(); arrListView->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Expanding)); arrListView->setViewMode(QListView::ListMode); arrListView->setWrapping(false); arrListView->setFlow(QListView::TopToBottom); arrListView->setMovement(QListView::Free); arrListView->setWordWrap(true); arrListView->setSelectionMode(QAbstractItemView::ExtendedSelection); arrListView->setDragEnabled(true); arrListView->setAcceptDrops(true); arrListView->setDropIndicatorShown(true); arrListView->setModel(m_arrModel); m_arrListView = arrListView; editorHBox->addWidget(arrListView); editorHBox->setStretchFactor(0,10); editorHBox->setStretchFactor(1,10); editorHBox->setStretchFactor(2,1); //vbox->addWidget(m_editor); //vbox->addLayout(editorHBox); vbox->addWidget(editorHBox); QHBoxLayout * hboxBottom = new QHBoxLayout(); m_tmplEditButton = new QPushButton("Edit &Template..."); m_tmplEditButton->setIcon(QIcon(":data/stock-select-color.png")); m_tmplEditButton->setToolTip("Edit the template associated with this song arrangement"); connect(m_tmplEditButton, SIGNAL(clicked()), this, SLOT(editSongTemplate())); hboxBottom->addWidget(m_tmplEditButton); QPushButton *tmplResetButton = new QPushButton(""); tmplResetButton->setIcon(QIcon(":data/stock-undo.png")); tmplResetButton->setToolTip("Reset template on this song to use the current template set in the main Song Browser"); connect(tmplResetButton, SIGNAL(clicked()), this, SLOT(resetSongTemplate())); hboxBottom->addWidget(tmplResetButton); hboxBottom->addStretch(); m_syncBox = new QCheckBox("S&ync Changes to DB"); m_syncBox->setToolTip("If checked, saving changes will update the master song database as well as the copy of the song in this document"); m_syncBox->setChecked(true); connect(m_syncBox, SIGNAL(toggled(bool)), this, SLOT(setSyncToDatabase(bool))); hboxBottom->addWidget(m_syncBox); QCheckBox *showArrPreviewCb = new QCheckBox("Arrangement Preview"); showArrPreviewCb->setToolTip("Show/hide arrangement preview window"); showArrPreviewCb->setChecked(true); connect(showArrPreviewCb, SIGNAL(toggled(bool)), this, SLOT(showArrPreview(bool))); hboxBottom->addWidget(showArrPreviewCb); btn = new QPushButton("&Save Song"); btn->setIcon(QIcon(":data/stock-save.png")); connect(btn, SIGNAL(clicked()), this, SLOT(accepted())); hboxBottom->addWidget(btn); btn = new QPushButton("&Cancel"); connect(btn, SIGNAL(clicked()), this, SLOT(close())); hboxBottom->addWidget(btn); vbox->addLayout(hboxBottom); //setLayout(vbox); setCentralWidget(centerWidget); resize(500,600); QSettings set; bool flag = set.value("songdb/arrlistview",true).toBool(); arrListViewToggled(flag); listBtn->setChecked(flag); flag = set.value("songdb/arrpreview",true).toBool(); showArrPreviewCb->setChecked(flag); showArrPreview(flag); // m_editWin = new SlideEditorWindow(); // connect(m_editWin, SIGNAL(closed()), this, SLOT(editorWindowClosed())); // } }
MultiQFileDialog::MultiQFileDialog(QWidget *parent, const QString &caption, const QString &directory, bool multiSelect, const QString &filter) : QFileDialog(parent, caption, directory, filter) { this->showHidden = false; this->multiSelect = multiSelect; setOption(QFileDialog::DontUseNativeDialog, false); if (multiSelect) { setOption(QFileDialog::DontUseNativeDialog, true); le = findChild<QLineEdit*>(QString::fromUtf8("fileNameEdit")); QListView *l = findChild<QListView*>(QString::fromUtf8("listView")); if (l) { l->setSelectionMode(QListView::ExtendedSelection); if (le) { connect(l->selectionModel(), SIGNAL(selectionChanged ( const QItemSelection &, const QItemSelection & )), this, SLOT(onSelectionChanged ( const QItemSelection &, const QItemSelection & ))); } } QTreeView *t = findChild<QTreeView*>(); if (t) { t->setSelectionMode(QAbstractItemView::ExtendedSelection); if (le) { connect(t->selectionModel(), SIGNAL(selectionChanged ( const QItemSelection &, const QItemSelection & )), this, SLOT(onSelectionChanged ( const QItemSelection &, const QItemSelection & ))); } } QLabel *label = findChild<QLabel*>(QString::fromUtf8("fileNameLabel")); if (label) { label->hide(); } label = findChild<QLabel*>(QString::fromUtf8("fileTypeLabel")); if (label) { label->hide(); } label = findChild<QLabel*>(QString::fromUtf8("lookInLabel")); if (label) { label->hide(); } QDialogButtonBox *buttonBox = findChild<QDialogButtonBox*>(QString::fromUtf8("buttonBox")); if (buttonBox) { buttonBox->button(QDialogButtonBox::Open)->setText(QCoreApplication::translate("QDialogButtonBox", "&OK")); } setFileMode(QFileDialog::ExistingFiles); if (le) { le->setText(QCoreApplication::translate("ShellExtension", "Upload to MEGA")); } } QList<QWidget *> widgets = findChildren<QWidget *>(); for (QList<QWidget *>::const_iterator it = widgets.begin(); it != widgets.end(); ++it) { (*it)->installEventFilter(this); } installEventFilter(this); }