From 82fd694e4accfce9e960778346ea2adc3da1918d Mon Sep 17 00:00:00 2001 From: Paul Giblock Date: Wed, 14 Oct 2009 00:31:29 -0400 Subject: [PATCH] Add dev-file autocompletion to OSS device fields Added QDirModel-based completion for OSS device fields in the settings dialog --- src/core/audio/AudioOss.cpp | 9 +++++++++ src/core/midi/MidiOss.cpp | 12 ++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/core/audio/AudioOss.cpp b/src/core/audio/AudioOss.cpp index a385c4692..81cbfc05d 100644 --- a/src/core/audio/AudioOss.cpp +++ b/src/core/audio/AudioOss.cpp @@ -27,6 +27,8 @@ #ifdef LMMS_HAVE_OSS #include +#include +#include #include #include @@ -335,6 +337,13 @@ AudioOss::setupWidget::setupWidget( QWidget * _parent ) : m_device = new QLineEdit( probeDevice(), this ); m_device->setGeometry( 10, 20, 160, 20 ); + QDirModel * model = new QDirModel( QStringList(), + QDir::AllDirs | QDir::System, + QDir::Name | QDir::DirsFirst, + this ); + m_device->setCompleter( new QCompleter( model, this ) ); + + QLabel * dev_lbl = new QLabel( tr( "DEVICE" ), this ); dev_lbl->setFont( pointSize<6>( dev_lbl->font() ) ); dev_lbl->setGeometry( 10, 40, 160, 10 ); diff --git a/src/core/midi/MidiOss.cpp b/src/core/midi/MidiOss.cpp index 1ece30c83..81ca06443 100644 --- a/src/core/midi/MidiOss.cpp +++ b/src/core/midi/MidiOss.cpp @@ -28,6 +28,8 @@ #ifdef LMMS_HAVE_OSS +#include +#include #include #include @@ -118,11 +120,17 @@ MidiOss::setupWidget::setupWidget( QWidget * _parent ) : MidiClientRaw::setupWidget( MidiOss::name(), _parent ) { m_device = new QLineEdit( MidiOss::probeDevice(), this ); - m_device->setGeometry( 10, 20, 160, 20 ); + m_device->setGeometry( 10, 20, 180, 20 ); + QDirModel * model = new QDirModel( QStringList(), + QDir::AllDirs | QDir::System, + QDir::Name | QDir::DirsFirst, + this ); + m_device->setCompleter( new QCompleter( model, this ) ); + QLabel * dev_lbl = new QLabel( tr( "DEVICE" ), this ); dev_lbl->setFont( pointSize<6>( dev_lbl->font() ) ); - dev_lbl->setGeometry( 10, 40, 160, 10 ); + dev_lbl->setGeometry( 10, 40, 180, 10 ); }