FolderChooser::FolderChooser(const QString & start_folder,QWidget *parent) : QDialog(parent), ui(new Ui::FolderChooser) { ui->setupUi(this); QFileSystemModel *model = new QFileSystemModel(ui->folderView); model->setFilter(QDir::Dirs|QDir::Drives|QDir::NoDotAndDotDot); ui->folderView->setModel(model); QModelIndex root_index = model->setRootPath(start_folder); if (root_index.isValid()) { QItemSelection selection(root_index,model->index(root_index.row(),model->columnCount()-1,root_index.parent())); ui->folderView->selectionModel()->select(selection,QItemSelectionModel::ClearAndSelect); ui->folderView->scrollTo(root_index); ui->folderView->expand(root_index); } connect(ui->folderView->selectionModel(),SIGNAL(selectionChanged(const QItemSelection&,const QItemSelection&)),this,SLOT(selectionChanged())); #if QT_VERSION >= 0x050000 ui->folderView->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents); #else ui->folderView->header()->setResizeMode(0, QHeaderView::ResizeToContents); #endif ui->folderView->header()->hideSection(1); ui->folderView->header()->hideSection(2); ui->folderView->header()->hideSection(3); selectionChanged(); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { setupUi(this); Settings *settings = Settings::getInstance(); this->setWindowIcon(QIcon(":/icons/mmmmp.ico")); this->filesystem->header()->setResizeMode(QHeaderView::ResizeToContents); this->setStyleSheet(settings->styleSheet(this)); leftTabs->setStyleSheet(settings->styleSheet(leftTabs)); widgetSearchBar->setStyleSheet(settings->styleSheet(0)); splitter->setStyleSheet(settings->styleSheet(splitter)); volumeSlider->setStyleSheet(settings->styleSheet(volumeSlider)); seekSlider->setStyleSheet(settings->styleSheet(seekSlider)); QFileSystemModel *fileSystemModel = new QFileSystemModel(this); fileSystemModel->setFilter(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot); QStringList filters; filters << "*.mp3"; fileSystemModel->setNameFilters(filters); filesystem->setModel(fileSystemModel); filesystem->setRootIndex(fileSystemModel->setRootPath(QDesktopServices::storageLocation(QDesktopServices::MusicLocation))); // Hide columns "size" and "date modified" columns, useless for almost everyone filesystem->setColumnHidden(1, true); filesystem->setColumnHidden(3, true); // Special behaviour for media buttons mediaButtons << skipBackwardButton << seekBackwardButton << playButton << pauseButton << stopButton << seekForwardButton << skipForwardButton << repeatButton << shuffleButton; foreach (MediaButton *b, mediaButtons) { b->setStyleSheet(settings->styleSheet(b)); }
void MainWindow::on_path_returnPressed() { QFileSystemModel *FSM; QStringList sImageFilters; QDir d; QString sPath; sImageFilters << "*.png"; //Show files in the tree view sPath = ui->path->text(); FSM = new QFileSystemModel(this); FSM->setFilter(QDir::NoDotAndDotDot | QDir::AllEntries); FSM->setRootPath(sPath); FSM->setNameFilters(sImageFilters); ui->file_browser->setModel(FSM); ui->file_browser->setRootIndex(FSM->index(sPath)); ui->file_browser->hideColumn(1); ui->file_browser->hideColumn(2); ui->file_browser->hideColumn(3); //initiate the filelist to the image d.setPath(ui->path->text()); d.setFilter( QDir::Files | QDir::NoSymLinks ); d.setNameFilters(sImageFilters); filelist = d.entryInfoList(); //initiate the dir for the yml files ymlFileDir = ui->path->text(); ymlFileDir.append("/data/"); }
void MainWindow::updateListView(){ QFileSystemModel *model = new QFileSystemModel; QString path(QFileInfo(currentFile->fileName()).dir().path()); model->setFilter(QDir::AllDirs | QDir::AllEntries); QStringList flt; flt << "*.md" << "*.mkd"; model->setNameFilters(flt); model->setNameFilterDisables(false); model->setRootPath(path); ui->listView->setModel(model); ui->listView->setRootIndex(model->index(path)); }
QWidget* MainWidget::createTreeWidget() { QFileSystemModel *fModel = new QFileSystemModel; fModel->setRootPath(""); fModel->setFilter(QDir::Dirs | QDir::NoDotAndDotDot); tView = new QTreeView; tView->setStyleSheet("QTreeView{border:0;}"); tView->setModel(fModel); tView->setAnimated(false); tView->setHeaderHidden(true); for(int i=1; i<fModel->columnCount(); i++){ tView->setColumnHidden(i, true); } connect(tView,SIGNAL(clicked(QModelIndex)),this,SLOT(slotTreeItemClicked(QModelIndex))); return tView; }
void DataSourceSelector::setup() { _fileEdit = new QLineEdit(this); _fileButton = new QToolButton(this); int h = fontMetrics().lineSpacing()*4/3; _fileEdit->setFixedHeight(h); QHBoxLayout * layout = new QHBoxLayout(this); layout->setMargin(0); layout->addWidget(_fileEdit); layout->addWidget(_fileButton); _fileButton->setFixedSize(h,h); setLayout(layout); //int size = style()->pixelMetric(QStyle::PM_SmallIconSize); _fileButton->setFixedSize(h,h); _fileButton->setIcon(KstGetIcon("kst_changefile")); //qDebug() << "file button small icon size" << size; setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); //connect (_fileEdit, SIGNAL(textChanged(const QString &)), this, SIGNAL(changed(const QString &))); connect (_fileEdit, SIGNAL(textChanged(QString)), this, SLOT(updateFile(QString))); connect (_fileButton, SIGNAL(clicked()), this, SLOT(chooseFile())); QFileSystemModel *dirModel = new QFileSystemModel; dirModel->setFilter(QDir::AllEntries); dirModel->setRootPath(QString('/')); QCompleter *completer = new QCompleter(this); completer->setModel(dirModel); _fileEdit->setCompleter(completer); setFixedHeight(h); }
ColorSchemeEditor::ColorSchemeEditor(QWidget* aParent) : QDialog(aParent) , _isNewScheme(false) , _colors(0) { QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel|QDialogButtonBox::Apply); QWidget *mainWidget = new QWidget(this); QVBoxLayout *mainLayout = new QVBoxLayout; setLayout(mainLayout); mainLayout->addWidget(mainWidget); QPushButton *okButton = buttonBox->button(QDialogButtonBox::Ok); okButton->setDefault(true); okButton->setShortcut(Qt::CTRL | Qt::Key_Return); connect(buttonBox, &QDialogButtonBox::accepted, this, &ColorSchemeEditor::accept); connect(buttonBox, &QDialogButtonBox::rejected, this, &ColorSchemeEditor::reject); mainLayout->addWidget(buttonBox); connect(buttonBox->button(QDialogButtonBox::Apply), &QPushButton::clicked, this, &Konsole::ColorSchemeEditor::saveColorScheme); connect(okButton, &QPushButton::clicked, this, &Konsole::ColorSchemeEditor::saveColorScheme); // ui _ui = new Ui::ColorSchemeEditor(); _ui->setupUi(mainWidget); // description edit _ui->descriptionEdit->setClearButtonEnabled(true); connect(_ui->descriptionEdit , &QLineEdit::textChanged , this , &Konsole::ColorSchemeEditor::setDescription); // transparency slider QFontMetrics metrics(font()); _ui->transparencyPercentLabel->setMinimumWidth(metrics.width(QStringLiteral("100%"))); connect(_ui->transparencySlider , &QSlider::valueChanged , this , &Konsole::ColorSchemeEditor::setTransparencyPercentLabel); // randomized background connect(_ui->randomizedBackgroundCheck , &QCheckBox::toggled , this , &Konsole::ColorSchemeEditor::setRandomizedBackgroundColor); // wallpaper stuff QFileSystemModel *dirModel = new QFileSystemModel(this); dirModel->setFilter(QDir::AllEntries); dirModel->setRootPath(QString('/')); QCompleter *completer = new QCompleter(this); completer->setModel(dirModel); _ui->wallpaperPath->setCompleter(completer); _ui->wallpaperPath->setClearButtonEnabled(true); _ui->wallpaperSelectButton->setIcon(QIcon::fromTheme(QStringLiteral("image-x-generic"))); connect(_ui->wallpaperSelectButton, &QToolButton::clicked, this, &Konsole::ColorSchemeEditor::selectWallpaper); connect(_ui->wallpaperPath, &QLineEdit::textChanged, this, &Konsole::ColorSchemeEditor::wallpaperPathChanged); // color table _ui->colorTable->setColumnCount(3); _ui->colorTable->setRowCount(COLOR_TABLE_ROW_LENGTH); QStringList labels; labels << i18nc("@label:listbox Column header text for color names", "Name") << i18nc("@label:listbox Column header text for the actual colors", "Color") << i18nc("@label:listbox Column header text for the actual intense colors", "Intense color"); _ui->colorTable->setHorizontalHeaderLabels(labels); // Set resize mode for colorTable columns _ui->colorTable->horizontalHeader()->setSectionResizeMode(NAME_COLUMN, QHeaderView::ResizeToContents); _ui->colorTable->horizontalHeader()->setSectionResizeMode(COLOR_COLUMN, QHeaderView::Stretch); _ui->colorTable->horizontalHeader()->setSectionResizeMode(INTENSE_COLOR_COLUMN, QHeaderView::Stretch); QTableWidgetItem* item = new QTableWidgetItem(QStringLiteral("Test")); _ui->colorTable->setItem(0, 0, item); _ui->colorTable->verticalHeader()->hide(); connect(_ui->colorTable , &QTableWidget::itemClicked , this , &Konsole::ColorSchemeEditor::editColorItem); // warning label when transparency is not available _ui->transparencyWarningWidget->setWordWrap(true); _ui->transparencyWarningWidget->setCloseButtonVisible(false); _ui->transparencyWarningWidget->setMessageType(KMessageWidget::Warning); if (KWindowSystem::compositingActive()) { _ui->transparencyWarningWidget->setVisible(false); } else { _ui->transparencyWarningWidget->setText(i18nc("@info:status", "The background transparency setting will not" " be used because your desktop does not appear to support" " transparent windows.")); } }
QObject* FileSystemTab::component(Jerboa::Plugin::ComponentType type, QObject* parent) { switch(type) { case Jerboa::Plugin::WidgetUsedWithPlaylist: { QFileSystemModel* model = new FileSystemModelWithToolTip(parent); model->setRootPath("/"); model->setFilter(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::AllDirs); model->setNameFilterDisables(false); QStringList musicGlobs; musicGlobs << "*.aac" << "*.aiff" << "*.ape" << "*.au" << "*.cdda" << "*.flac" << "*.m4a" << "*.mp3" << "*.oga" << "*.ogg" << "*.ogm" << "*.wav" << "*.wma" ; model->setNameFilters(musicGlobs); QTreeView* view = new QTreeView(qobject_cast<QWidget*>(parent)); view->setWindowTitle("Files"); view->setModel(model); view->setHeaderHidden(true); for(int i = 1; i < model->columnCount(); ++i) { view->setColumnHidden(i, true); } QString path = QDesktopServices::storageLocation(QDesktopServices::MusicLocation); if(path.isEmpty() || !QDir(path).exists()) { path = QDesktopServices::storageLocation(QDesktopServices::HomeLocation); } const QModelIndex index(model->index(QSettings().value("collection/directory", path).toString())); for(QModelIndex iterator(index); iterator.isValid(); iterator = iterator.parent()) { view->setExpanded(iterator, true); } view->setDragDropMode(QAbstractItemView::DragOnly); view->selectionModel()->select(index, QItemSelectionModel::ClearAndSelect); view->setSelectionMode(QAbstractItemView::ExtendedSelection); connect( view, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(addPathToPlaylist(QModelIndex)) ); QTimer* timer = new QTimer(this); connect( timer, SIGNAL(timeout()), this, SLOT(scrollToSelection()) ); timer->setSingleShot(true); timer->start(1000); m_view = view; return view; } default: return Jerboa::Plugin::component(type, parent); } }
OpenWithManagerDialog::OpenWithManagerDialog(QWidget *parentObject) : QDialog(parentObject), ui(new Ui::OpenWithManagerDialog), m_factoryModel(new OpenWithExecutableModel(this)), m_patternModel(new OpenWithPatternModel(this)), m_patternMapper(new QDataWidgetMapper(this)), m_handlerMapper(new QDataWidgetMapper(this)), m_patternTypeDelegate(new PatternTypeDelegate(this)), m_dirty(false) { // Setup ui: ui->setupUi(this); // Setup MVC: ui->tableFactories->setModel(m_factoryModel); ui->tablePattern->setModel(m_patternModel); ui->tablePattern->setItemDelegate(m_patternTypeDelegate); ui->comboMatch->setModel(m_patternTypeDelegate->patternTypeModel()); m_handlerMapper->setModel(m_factoryModel); m_handlerMapper->setSubmitPolicy(QDataWidgetMapper::AutoSubmit); m_handlerMapper->addMapping(ui->editName, 0); m_handlerMapper->addMapping(ui->comboType, 1, "currentIndex"); m_handlerMapper->addMapping(ui->editExec, 2); m_patternMapper->setModel(m_patternModel); m_patternMapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit); m_patternMapper->setItemDelegate(m_patternTypeDelegate); m_patternMapper->addMapping(ui->editPattern, OpenWithPatternModel::PatternCol); m_patternMapper->addMapping(ui->comboMatch, OpenWithPatternModel::PatternTypeCol); m_patternMapper->addMapping(ui->checkCaseSensitive, OpenWithPatternModel::CaseSensitivityCol); // Setup executable completion QFileSystemModel *fsModel = new QFileSystemModel(this); fsModel->setFilter(QDir::Files | QDir::Dirs | QDir::NoDot); fsModel->setRootPath(QDir::rootPath()); QCompleter *fsCompleter = new QCompleter(fsModel, this); ui->editExec->setCompleter(fsCompleter); // Factory GUI: connect(ui->pushAddFactory, SIGNAL(clicked()), this, SLOT(addFactory())); connect(ui->pushRemoveFactory, SIGNAL(clicked()), this, SLOT(removeFactory())); connect(ui->comboType, SIGNAL(currentIndexChanged(int)), this, SLOT(factoryTypeChanged(int))); connect(ui->tableFactories->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(factorySelectionChanged())); // Executable GUI: connect(ui->pushExec, SIGNAL(clicked()), SLOT(browseExecutable())); connect(ui->editExec, SIGNAL(textChanged(QString)), SLOT(testExecutable())); // Pattern GUI: connect(ui->pushAddPattern, SIGNAL(clicked()), this, SLOT(addPattern())); connect(ui->pushRemovePattern, SIGNAL(clicked()), this, SLOT(removePattern())); connect(ui->tablePattern->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(patternSelectionChanged())); connect(ui->pushApplyPattern, SIGNAL(clicked()), m_patternMapper, SLOT(submit())); connect(ui->pushRevertPattern, SIGNAL(clicked()), m_patternMapper, SLOT(revert())); connect(m_patternModel, SIGNAL(rowsInserted(QModelIndex, int, int)), this, SLOT(patternDimensionsChanged())); connect(m_patternModel, SIGNAL(rowsRemoved(QModelIndex, int, int)), this, SLOT(patternDimensionsChanged())); connect(m_patternModel, SIGNAL(modelReset()), this, SLOT(patternDimensionsChanged())); // Test updates: connect(ui->editTest, SIGNAL(textChanged(QString)), this, SLOT(checkTestText())); connect(m_patternModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(checkTestText())); connect(m_patternModel, SIGNAL(layoutChanged()), this, SLOT(checkTestText())); connect(ui->tableFactories->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(checkTestText())); // handle apply button: connect(ui->buttonBox, SIGNAL(clicked(QAbstractButton*)), SLOT(buttonBoxClicked(QAbstractButton*))); // Mark dirty when the data changes. connect(m_factoryModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), SLOT(markDirty())); connect(m_factoryModel, SIGNAL(rowsInserted(QModelIndex, int, int)), SLOT(markDirty())); connect(m_factoryModel, SIGNAL(rowsRemoved(QModelIndex, int, int)), SLOT(markDirty())); connect(m_patternModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), SLOT(markDirty())); connect(m_patternModel, SIGNAL(rowsInserted(QModelIndex, int, int)), SLOT(markDirty())); connect(m_patternModel, SIGNAL(rowsRemoved(QModelIndex, int, int)), SLOT(markDirty())); }