Sets desktop wallpaper using specified photo.
44 int screenW = qApp->desktop()->screenGeometry().size().width();
45 int screenH = qApp->desktop()->screenGeometry().size().height();
49 if( imageW > screenW || imageH > screenH )
52 imageW = scaledImage.width();
53 imageH = scaledImage.height();
59 const bool centerImage = (imageW < 0.75*screenW) || (imageH < 0.75*screenH);
78 if( !getWindowsFolderLocation(LOCAL_SETTINGS_APPLICATION_DATA, outFilename) )
80 outFilename = getenv(
"USERPROFILE") + QString(
"/Local Settings/Application Data");
82 outFilename = QDir::convertSeparators( outFilename +
"/Album Shaper/Album Shaper Wallpaper.bmp" );
86 if( scaledImage.isNull() )
90 scaledImage.save( outFilename,
"BMP" );
96 #if defined(Q_OS_MACX) 97 QString outFilename1 = QDir::homeDirPath() + QString(
"/Pictures/Album Shaper Wallpaper.jpg");
98 QString outFilename2 = QDir::homeDirPath() + QString(
"/Pictures/Album_Shaper_Wallpaper.jpg");
100 QString outFilename1 = QDir::homeDirPath() + QString(
"/.albumShaper/Album Shaper Wallpaper.jpg");
101 QString outFilename2 = QDir::homeDirPath() + QString(
"/.albumShaper/Album_Shaper_Wallpaper.jpg");
104 QString chosenFilename;
111 if(tmpDir.exists( outFilename1 ) )
113 chosenFilename = outFilename2;
114 oldFilename = outFilename1;
116 else if( tmpDir.exists( outFilename2 ) )
118 chosenFilename = outFilename1;
119 oldFilename = outFilename2;
123 chosenFilename = outFilename1;
127 if( !scaledImage.isNull() )
129 scaledImage.save( chosenFilename,
"JPEG", 95 );
145 #if defined(Q_OS_WIN) 150 if( RegOpenKeyExA( HKEY_CURRENT_USER,
"Control Panel\\Desktop", 0, KEY_SET_VALUE, &key) == ERROR_SUCCESS)
153 itoa( centerImage ? 0 : 2, data, 10);
154 RegSetValueExA(key,
"WallpaperStyle", NULL, REG_SZ, (UCHAR*)data, 8);
158 RegSetValueExA(key,
"TileWallpaper", NULL, REG_SZ, (UCHAR*)data, 8);
165 SystemParametersInfoA( SPI_SETDESKWALLPAPER, 0,
166 (
void*) outFilename.ascii(),
167 SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE );
170 #elif defined(Q_OS_MACX) 173 QString scriptFilename = ((
Window*)qApp->mainWidget())->getTitle()->getAlbum()->getTmpDir() +
174 "/tmpBackgroundScript";
176 QFile file( scriptFilename );
177 if(file.open(QIODevice::WriteOnly))
181 stream.setDevice( &file );
182 stream.setEncoding( Q3TextStream::UnicodeUTF8 );
184 stream <<
"tell application \"Finder\"\n";
185 stream <<
"set pFile to POSIX file \"" << chosenFilename.ascii() <<
"\"\n";
186 stream <<
"set desktop picture to file pFile\n";
187 stream <<
"end tell";
193 p.addArgument(
"/usr/bin/osascript" );
194 p.addArgument( scriptFilename );
198 if(!oldFilename.isNull())
199 { tmpDir.remove( oldFilename ); }
209 p.addArgument(
"dcop" );
210 p.addArgument(
"kdesktop" );
211 p.addArgument(
"KBackgroundIface" );
212 p.addArgument(
"setWallpaper" );
213 p.addArgument( chosenFilename.ascii() );
219 const int CENTERED = 1;
220 const int CENTER_MAXPECT = 4;
221 int positionOption = centerImage ? CENTERED : CENTER_MAXPECT;
222 p.addArgument( QString(
"%1").arg(positionOption) );
232 p.addArgument(
"gconftool-2" );
233 p.addArgument(
"-t" );
234 p.addArgument(
"string" );
235 p.addArgument(
"-s" );
236 p.addArgument(
"/desktop/gnome/background/picture_filename" );
237 p.addArgument( chosenFilename.ascii() );
245 p.addArgument(
"wmsetbg" );
246 p.addArgument(
"--maxscale" );
247 p.addArgument(
"-u" );
248 p.addArgument( chosenFilename.ascii() );
253 if(!oldFilename.isNull())
254 { tmpDir.remove( oldFilename ); }
QString getImageFilename()
Gets the image filename.
Top level widget, encapsulates the title widget, the layout widget, and the toolbar widget...