diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2012-11-22 18:47:43 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2012-11-22 18:47:43 -0600 |
commit | 3184ede6a8549e1631bda092c86c389a54adbc79 (patch) | |
tree | bc4564927fd8fc2b364e66a17f83679bcd2bee48 /tdegtk | |
parent | 6953f223818a5a84c8d7a7e12e5f2a2558fd20c5 (diff) | |
download | gtk3-tqt-engine-3184ede6a8549e1631bda092c86c389a54adbc79.tar.gz gtk3-tqt-engine-3184ede6a8549e1631bda092c86c389a54adbc79.zip |
Use currently active TDE icon theme
Diffstat (limited to 'tdegtk')
-rw-r--r-- | tdegtk/tdegtk-theme.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tdegtk/tdegtk-theme.cpp b/tdegtk/tdegtk-theme.cpp index 924f7ef..d46fe07 100644 --- a/tdegtk/tdegtk-theme.cpp +++ b/tdegtk/tdegtk-theme.cpp @@ -520,6 +520,39 @@ void writeGtkThemeControlFile(int forceRecreate) { addIconThemeDir(iconTheme); if (!iconThemeDirs.isEmpty()) { + // Create symbolic links from the active icon theme directories to the TDE GTK icon theme names + TQString fullThemePath; + for (TQStringList::Iterator it=iconThemeDirs.begin(); it!=iconThemeDirs.end(); ++it) { + TQString currentDir = (*it); + if (currentDir.endsWith("/")) { + currentDir.truncate(currentDir.length()-1); + } + if (currentDir.endsWith(iconTheme)) { + fullThemePath = (*it); + } + } + if (fullThemePath != "") { + // Create symbolic link... + TQDir curDir; + TQString iconThemePath = TQDir::homeDirPath(); + curDir.setPath(iconThemePath); + if (!curDir.exists()) { + curDir.mkdir(iconThemePath); + } + iconThemePath = iconThemePath + "/.icons/"; + curDir.setPath(iconThemePath); + if (!curDir.exists()) { + curDir.mkdir(iconThemePath); + } + iconThemePath = iconThemePath + "tdegtk-icon-theme"; + unlink(iconThemePath.ascii()); + symlink(fullThemePath.ascii(), iconThemePath.ascii()); + } + // FIXME + // Handle fallback icon theme (tdegtk-fallback-icon-theme) + } + + if (!iconThemeDirs.isEmpty()) { GtkIconFactory* factory; factory = gtk_icon_factory_new(); |