Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
47027e01
Commit
47027e01
authored
Jan 22, 2008
by
Jean-Baptiste Kempf
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Qt4 - Dialog implementation for registering the file association on Windows.
The Windows only code doesn't exist yet, but soon ?
parent
599e3942
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
156 additions
and
49 deletions
+156
-49
modules/gui/qt4/components/simple_preferences.cpp
modules/gui/qt4/components/simple_preferences.cpp
+62
-0
modules/gui/qt4/components/simple_preferences.hpp
modules/gui/qt4/components/simple_preferences.hpp
+10
-0
modules/gui/qt4/util/registry.cpp
modules/gui/qt4/util/registry.cpp
+84
-49
No files found.
modules/gui/qt4/components/simple_preferences.cpp
View file @
47027e01
...
...
@@ -403,6 +403,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
ui
.
assoName
->
hide
();
ui
.
assoButton
->
hide
();
#endif
BUTTONACT
(
ui
.
assoButton
,
assoDialog
()
);
/* interface */
char
*
psz_intf
=
config_GetPsz
(
p_intf
,
"intf"
);
...
...
@@ -627,7 +628,68 @@ void SPrefsPanel::lastfm_Changed( int i_state )
config_RemoveIntf
(
VLC_OBJECT
(
p_intf
),
"audioscrobbler"
);
}
#ifdef WIN32
#include <QListWidget>
#include <QDialogButtonBox>
#include "util/registry.hpp"
void
SPrefsPanel
::
assoDialog
()
{
QDialog
*
d
=
new
QDialog
(
this
);
QGridLayout
*
assoLayout
=
new
QGridLayout
(
d
);
QListWidget
*
filetypeList
=
new
QListWidget
;
assoLayout
->
addWidget
(
filetypeList
,
0
,
0
,
1
,
4
);
QListWidgetItem
*
currentItem
;
#define addType( ext ) \
currentItem = new QListWidgetItem( ext, filetypeList ); \
currentItem->setCheckState( Qt::Checked ); \
listAsso.append( currentItem );
addType
(
".avi"
);
QDialogButtonBox
*
buttonBox
=
new
QDialogButtonBox
(
d
);
QPushButton
*
closeButton
=
new
QPushButton
(
qtr
(
"&Apply"
)
);
QPushButton
*
clearButton
=
new
QPushButton
(
qtr
(
"&Cancel"
)
);
buttonBox
->
addButton
(
closeButton
,
QDialogButtonBox
::
AcceptRole
);
buttonBox
->
addButton
(
clearButton
,
QDialogButtonBox
::
ActionRole
);
assoLayout
->
addWidget
(
buttonBox
,
1
,
2
,
1
,
2
);
CONNECT
(
closeButton
,
clicked
(),
this
,
saveAsso
()
);
CONNECT
(
clearButton
,
clicked
(),
d
,
reject
()
);
d
->
exec
();
delete
d
;
}
void
addAsso
(
char
*
psz_ext
)
{
}
void
delAsso
(
char
*
psz_ext
)
{
}
void
SPrefsPanel
::
saveAsso
()
{
for
(
int
i
=
0
;
i
<
listAsso
.
size
();
i
++
)
{
if
(
listAsso
[
i
]
->
checkState
()
>
0
)
{
addAsso
(
qtu
(
listAsso
[
i
]
->
text
()
)
);
}
else
{
delAsso
(
qtu
(
listAsso
[
i
]
->
text
()
)
);
}
}
/* Gruik ? Naaah */
qobject_cast
<
QDialog
*>
(
listAsso
[
0
]
->
listWidget
()
->
parent
())
->
accept
();
}
#endif
/* WIN32 */
modules/gui/qt4/components/simple_preferences.hpp
View file @
47027e01
...
...
@@ -64,6 +64,9 @@ class QLineEdit;
class
QRadioButton
;
class
QCheckBox
;
class
QString
;
#if WIN32
class
QListWidgetItem
;
#endif
class
SPrefsCatList
:
public
QWidget
{
...
...
@@ -96,11 +99,18 @@ private:
QList
<
QWidget
*>
optionWidgets
;
QString
qs_filter
;
#if WIN32
QList
<
QListWidgetItem
*>
listAsso
;
#endif
/* Display only the options for the selected audio output */
private
slots
:
void
lastfm_Changed
(
int
);
void
updateAudioOptions
(
int
);
#ifdef WIN32
void
assoDialog
();
void
saveAsso
();
#endif
};
#endif
modules/gui/qt4/util/registry.cpp
View file @
47027e01
// License GPLv2+
// License GPLv2 or later
// COde by atmo
#include "registry.hpp"
QVLCRegistry
::
QVLCRegistry
(
HKEY
rootKey
)
QVLCRegistry
::
QVLCRegistry
(
HKEY
rootKey
)
{
this
->
m_RootKey
=
rootKey
;
m_RootKey
=
rootKey
;
}
QVLCRegistry
::~
QVLCRegistry
(
void
)
QVLCRegistry
::~
QVLCRegistry
(
void
)
{
}
int
QVLCRegistry
::
RegistryKeyExists
(
char
*
path
)
{
bool
QVLCRegistry
::
RegistryKeyExists
(
char
*
path
)
{
HKEY
keyHandle
;
if
(
RegOpenKeyEx
(
m_RootKey
,
path
,
0
,
KEY_READ
,
&
keyHandle
)
==
ERROR_SUCCESS
)
{
RegCloseKey
(
keyHandle
);
return
1
;
if
(
RegOpenKeyEx
(
m_RootKey
,
path
,
0
,
KEY_READ
,
&
keyHandle
)
==
ERROR_SUCCESS
)
{
RegCloseKey
(
keyHandle
);
return
true
;
}
return
0
;
return
false
;
}
int
QVLCRegistry
::
RegistryValueExists
(
char
*
path
,
char
*
valueName
)
{
bool
QVLCRegistry
::
RegistryValueExists
(
char
*
path
,
char
*
valueName
)
{
HKEY
keyHandle
;
int
temp
=
0
;
bool
temp
=
false
;
DWORD
size1
;
DWORD
valueType
;
if
(
RegOpenKeyEx
(
m_RootKey
,
path
,
0
,
KEY_READ
,
&
keyHandle
)
==
ERROR_SUCCESS
)
{
if
(
RegQueryValueEx
(
keyHandle
,
valueName
,
NULL
,
&
valueType
,
NULL
,
&
size1
)
==
ERROR_SUCCESS
)
{
temp
=
1
;
if
(
RegOpenKeyEx
(
m_RootKey
,
path
,
0
,
KEY_READ
,
&
keyHandle
)
==
ERROR_SUCCESS
)
{
if
(
RegQueryValueEx
(
keyHandle
,
valueName
,
NULL
,
&
valueType
,
NULL
,
&
size1
)
==
ERROR_SUCCESS
)
{
temp
=
true
;
}
RegCloseKey
(
keyHandle
);
RegCloseKey
(
keyHandle
);
}
return
temp
;
}
void
QVLCRegistry
::
WriteRegistryInt
(
char
*
path
,
char
*
valueName
,
int
value
)
{
void
QVLCRegistry
::
WriteRegistryInt
(
char
*
path
,
char
*
valueName
,
int
value
)
{
HKEY
keyHandle
;
if
(
RegCreateKeyEx
(
m_RootKey
,
path
,
0
,
NULL
,
REG_OPTION_NON_VOLATILE
,
KEY_WRITE
,
NULL
,
&
keyHandle
,
NULL
)
==
ERROR_SUCCESS
)
{
RegSetValueEx
(
keyHandle
,
valueName
,
0
,
REG_DWORD
,(
LPBYTE
)
&
value
,
sizeof
(
int
));
RegCloseKey
(
keyHandle
);
if
(
RegCreateKeyEx
(
m_RootKey
,
path
,
0
,
NULL
,
REG_OPTION_NON_VOLATILE
,
KEY_WRITE
,
NULL
,
&
keyHandle
,
NULL
)
==
ERROR_SUCCESS
)
{
RegSetValueEx
(
keyHandle
,
valueName
,
0
,
REG_DWORD
,
(
LPBYTE
)
&
value
,
sizeof
(
int
)
);
RegCloseKey
(
keyHandle
);
}
}
void
QVLCRegistry
::
WriteRegistryString
(
char
*
path
,
char
*
valueName
,
char
*
value
)
{
void
QVLCRegistry
::
WriteRegistryString
(
char
*
path
,
char
*
valueName
,
char
*
value
)
{
HKEY
keyHandle
;
if
(
RegCreateKeyEx
(
m_RootKey
,
path
,
0
,
NULL
,
REG_OPTION_NON_VOLATILE
,
KEY_WRITE
,
NULL
,
&
keyHandle
,
NULL
)
==
ERROR_SUCCESS
)
{
RegSetValueEx
(
keyHandle
,
valueName
,
0
,
REG_SZ
,(
LPBYTE
)
value
,(
DWORD
)(
strlen
(
value
)
+
1
));
RegCloseKey
(
keyHandle
);
if
(
RegCreateKeyEx
(
m_RootKey
,
path
,
0
,
NULL
,
REG_OPTION_NON_VOLATILE
,
KEY_WRITE
,
NULL
,
&
keyHandle
,
NULL
)
==
ERROR_SUCCESS
)
{
RegSetValueEx
(
keyHandle
,
valueName
,
0
,
REG_SZ
,
(
LPBYTE
)
value
,
(
DWORD
)(
strlen
(
value
)
+
1
)
);
RegCloseKey
(
keyHandle
);
}
}
void
QVLCRegistry
::
WriteRegistryDouble
(
char
*
path
,
char
*
valueName
,
double
value
)
{
void
QVLCRegistry
::
WriteRegistryDouble
(
char
*
path
,
char
*
valueName
,
double
value
)
{
HKEY
keyHandle
;
if
(
RegCreateKeyEx
(
m_RootKey
,
path
,
0
,
NULL
,
REG_OPTION_NON_VOLATILE
,
KEY_WRITE
,
NULL
,
&
keyHandle
,
NULL
)
==
ERROR_SUCCESS
)
{
RegSetValueEx
(
keyHandle
,
valueName
,
0
,
REG_BINARY
,(
LPBYTE
)
&
value
,
sizeof
(
double
));
RegCloseKey
(
keyHandle
);
if
(
RegCreateKeyEx
(
m_RootKey
,
path
,
0
,
NULL
,
REG_OPTION_NON_VOLATILE
,
KEY_WRITE
,
NULL
,
&
keyHandle
,
NULL
)
==
ERROR_SUCCESS
)
{
RegSetValueEx
(
keyHandle
,
valueName
,
0
,
REG_BINARY
,
(
LPBYTE
)
&
value
,
sizeof
(
double
)
);
RegCloseKey
(
keyHandle
);
}
}
int
QVLCRegistry
::
ReadRegistryInt
(
char
*
path
,
char
*
valueName
,
int
default_value
)
{
int
QVLCRegistry
::
ReadRegistryInt
(
char
*
path
,
char
*
valueName
,
int
default_value
)
{
HKEY
keyHandle
;
int
tempValue
;
DWORD
size1
;
DWORD
valueType
;
if
(
RegOpenKeyEx
(
m_RootKey
,
path
,
0
,
KEY_READ
,
&
keyHandle
)
==
ERROR_SUCCESS
)
{
if
(
RegQueryValueEx
(
keyHandle
,
valueName
,
NULL
,
&
valueType
,
NULL
,
&
size1
)
==
ERROR_SUCCESS
)
{
if
(
valueType
==
REG_DWORD
)
{
if
(
RegQueryValueEx
(
keyHandle
,
valueName
,
NULL
,
&
valueType
,
(
LPBYTE
)
&
tempValue
,
&
size1
)
==
ERROR_SUCCESS
)
{
if
(
RegOpenKeyEx
(
m_RootKey
,
path
,
0
,
KEY_READ
,
&
keyHandle
)
==
ERROR_SUCCESS
)
{
if
(
RegQueryValueEx
(
keyHandle
,
valueName
,
NULL
,
&
valueType
,
NULL
,
&
size1
)
==
ERROR_SUCCESS
)
{
if
(
valueType
==
REG_DWORD
)
{
if
(
RegQueryValueEx
(
keyHandle
,
valueName
,
NULL
,
&
valueType
,
(
LPBYTE
)
&
tempValue
,
&
size1
)
==
ERROR_SUCCESS
)
{
default_value
=
tempValue
;
};
}
}
RegCloseKey
(
keyHandle
);
RegCloseKey
(
keyHandle
);
}
return
default_value
;
}
char
*
QVLCRegistry
::
ReadRegistryString
(
char
*
path
,
char
*
valueName
,
char
*
default_value
)
{
char
*
QVLCRegistry
::
ReadRegistryString
(
char
*
path
,
char
*
valueName
,
char
*
default_value
)
{
HKEY
keyHandle
;
char
*
tempValue
=
NULL
;
DWORD
size1
;
DWORD
valueType
;
if
(
RegOpenKeyEx
(
m_RootKey
,
path
,
0
,
KEY_READ
,
&
keyHandle
)
==
ERROR_SUCCESS
)
{
if
(
RegQueryValueEx
(
keyHandle
,
valueName
,
NULL
,
&
valueType
,
NULL
,
&
size1
)
==
ERROR_SUCCESS
)
{
if
(
valueType
==
REG_SZ
)
{
if
(
RegOpenKeyEx
(
m_RootKey
,
path
,
0
,
KEY_READ
,
&
keyHandle
)
==
ERROR_SUCCESS
)
{
if
(
RegQueryValueEx
(
keyHandle
,
valueName
,
NULL
,
&
valueType
,
NULL
,
&
size1
)
==
ERROR_SUCCESS
)
{
if
(
valueType
==
REG_SZ
)
{
// free
tempValue
=
(
char
*
)
malloc
(
size1
+
1
);
// +1 fr NullByte`?
if
(
RegQueryValueEx
(
keyHandle
,
valueName
,
NULL
,
&
valueType
,
(
LPBYTE
)
tempValue
,
&
size1
)
==
ERROR_SUCCESS
)
{
tempValue
=
(
char
*
)
malloc
(
size1
+
1
);
// +1 fr NullByte`?
if
(
RegQueryValueEx
(
keyHandle
,
valueName
,
NULL
,
&
valueType
,
(
LPBYTE
)
tempValue
,
&
size1
)
==
ERROR_SUCCESS
)
{
default_value
=
tempValue
;
};
}
}
RegCloseKey
(
keyHandle
);
RegCloseKey
(
keyHandle
);
}
if
(
tempValue
==
NULL
)
{
if
(
tempValue
==
NULL
)
{
// wenn tempValue nicht aus registry gelesen wurde dafr sorgen das ein neuer String mit der Kopie von DefaultValue
// geliefert wird - das macht das Handling des Rckgabewertes der Funktion einfacher - immer schn mit free freigeben!
default_value
=
strdup
(
default_value
);
default_value
=
strdup
(
default_value
);
}
return
default_value
;
}
double
QVLCRegistry
::
ReadRegistryDouble
(
char
*
path
,
char
*
valueName
,
double
default_value
)
{
double
QVLCRegistry
::
ReadRegistryDouble
(
char
*
path
,
char
*
valueName
,
double
default_value
)
{
HKEY
keyHandle
;
double
tempValue
;
DWORD
size1
;
DWORD
valueType
;
if
(
RegOpenKeyEx
(
m_RootKey
,
path
,
0
,
KEY_READ
,
&
keyHandle
)
==
ERROR_SUCCESS
)
{
if
(
RegQueryValueEx
(
keyHandle
,
valueName
,
NULL
,
&
valueType
,
NULL
,
&
size1
)
==
ERROR_SUCCESS
)
{
if
((
valueType
==
REG_BINARY
)
&&
(
size1
==
sizeof
(
double
)))
{
if
(
RegQueryValueEx
(
keyHandle
,
valueName
,
NULL
,
&
valueType
,
(
LPBYTE
)
&
tempValue
,
&
size1
)
==
ERROR_SUCCESS
)
{
if
(
RegOpenKeyEx
(
m_RootKey
,
path
,
0
,
KEY_READ
,
&
keyHandle
)
==
ERROR_SUCCESS
)
{
if
(
RegQueryValueEx
(
keyHandle
,
valueName
,
NULL
,
&
valueType
,
NULL
,
&
size1
)
==
ERROR_SUCCESS
)
{
if
(
(
valueType
==
REG_BINARY
)
&&
(
size1
==
sizeof
(
double
)
)
)
{
if
(
RegQueryValueEx
(
keyHandle
,
valueName
,
NULL
,
&
valueType
,
(
LPBYTE
)
&
tempValue
,
&
size1
)
==
ERROR_SUCCESS
)
{
default_value
=
tempValue
;
};
}
}
RegCloseKey
(
keyHandle
);
RegCloseKey
(
keyHandle
);
}
return
default_value
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment