Removed kxdglauncher which is now no longer required. #121

Merged
MicheleC merged 3 commits from feat/kxdglauncher into master 4 years ago

@ -18,6 +18,7 @@
#include <tqcombobox.h>
#include <tqlabel.h>
#include <tqlayout.h>
#include <tqtimer.h>
#include <tqvgroupbox.h>
#include <tqwhatsthis.h>
@ -188,6 +189,9 @@ DesktopPathConfig::DesktopPathConfig(TQWidget *parent, const char * )
// -- Bottom --
Q_ASSERT( row == RO_LASTROW-1 ); // if it fails here, check the row++ and RO_LASTROW above
loadTmr = new TQTimer(this);
connect(loadTmr, TQT_SIGNAL(timeout()), this, TQT_SLOT(loadTimerDone()));
load();
}
@ -204,18 +208,34 @@ void DesktopPathConfig::load( bool useDefaults )
config.setGroup("Paths");
urAutostart->setURL( config.readPathEntry( "Autostart" , TDEGlobalSettings::autostartPath() ));
TDEConfig xdguserconfig( TQDir::homeDirPath()+"/.config/user-dirs.dirs" );
urDesktop->setURL( xdguserconfig.readPathEntry( "XDG_DESKTOP_DIR" , TQDir::homeDirPath() + "/Desktop" ).remove( "\"" ));
urDocument->setURL( xdguserconfig.readPathEntry( "XDG_DOCUMENTS_DIR", TQDir::homeDirPath() + "/Documents").remove( "\"" ));
urDownload->setURL( xdguserconfig.readPathEntry( "XDG_DOWNLOAD_DIR" , TQDir::homeDirPath() + "/Downloads" ).remove( "\"" ));
urMusic->setURL( xdguserconfig.readPathEntry( "XDG_MUSIC_DIR" , TQDir::homeDirPath() + "/Music" ).remove( "\"" ));
urPictures->setURL( xdguserconfig.readPathEntry( "XDG_PICTURES_DIR" , TQDir::homeDirPath() + "/Pictures" ).remove( "\"" ));
urPublicShare->setURL( xdguserconfig.readPathEntry( "XDG_PUBLICSHARE_DIR" , TQDir::homeDirPath() + "/Public" ).remove( "\"" ));
urTemplates->setURL( xdguserconfig.readPathEntry( "XDG_TEMPLATES_DIR" , TQDir::homeDirPath() + "/Templates" ).remove( "\"" ));
urVideos->setURL( xdguserconfig.readPathEntry( "XDG_VIDEOS_DIR" , TQDir::homeDirPath() + "/Videos" ).remove( "\"" ));
TDEConfig xdguserconfig(TQDir::homeDirPath() + "/.config/user-dirs.dirs");
urDesktop->setURL(xdguserconfig.readPathEntry("XDG_DESKTOP_DIR", TDEGlobalSettings::desktopPath()).remove("\""));
urDocument->setURL(xdguserconfig.readPathEntry("XDG_DOCUMENTS_DIR", TDEGlobalSettings::documentPath()).remove("\""));
urDownload->setURL(xdguserconfig.readPathEntry("XDG_DOWNLOAD_DIR", TDEGlobalSettings::downloadPath()).remove("\""));
urMusic->setURL(xdguserconfig.readPathEntry("XDG_MUSIC_DIR", TDEGlobalSettings::musicPath()).remove("\""));
urPictures->setURL(xdguserconfig.readPathEntry("XDG_PICTURES_DIR", TDEGlobalSettings::picturesPath()).remove("\""));
urPublicShare->setURL(xdguserconfig.readPathEntry("XDG_PUBLICSHARE_DIR", TDEGlobalSettings::publicSharePath()).remove("\""));
urTemplates->setURL(xdguserconfig.readPathEntry("XDG_TEMPLATES_DIR", TDEGlobalSettings::templatesPath()).remove("\""));
urVideos->setURL(xdguserconfig.readPathEntry("XDG_VIDEOS_DIR", TDEGlobalSettings::videosPath()).remove("\""));
emit changed(useDefaults);
// If any of the folder does not exists, enable the Apply button so that the folders can be created
if (!TQDir(urDesktop->url()).exists() || !TQDir(urDocument->url()).exists() ||
!TQDir(urDownload->url()).exists() || !TQDir(urMusic->url()).exists() ||
!TQDir(urPictures->url()).exists() || !TQDir(urPublicShare->url()).exists() ||
!TQDir(urTemplates->url()).exists() || !TQDir(urVideos->url()).exists() ||
!TQDir(urAutostart->url()).exists())
{
// Need to delay emitting the signal to give some time to the module to be added to the kcontrol GUI
loadTmr->start(1000, true);
}
}
emit changed( useDefaults );
void DesktopPathConfig::loadTimerDone()
{
emit changed(true);
}
void DesktopPathConfig::defaults()
@ -232,52 +252,52 @@ void DesktopPathConfig::save()
bool pathChanged = false;
bool autostartMoved = false;
KURL desktopURL;
desktopURL.setPath( TDEGlobalSettings::desktopPath() );
KURL newDesktopURL;
newDesktopURL.setPath(urDesktop->url());
KURL autostartURL;
autostartURL.setPath( TDEGlobalSettings::autostartPath() );
autostartURL.setPath(TDEGlobalSettings::autostartPath());
KURL newAutostartURL;
newAutostartURL.setPath(urAutostart->url());
KURL desktopURL;
desktopURL.setPath(TDEGlobalSettings::desktopPath());
KURL newDesktopURL;
newDesktopURL.setPath(urDesktop->url());
KURL documentURL;
documentURL.setPath( TDEGlobalSettings::documentPath() );
documentURL.setPath(TDEGlobalSettings::documentPath());
KURL newDocumentURL;
newDocumentURL.setPath(urDocument->url());
KURL downloadURL;
// downloadURL.setPath( TDEGlobalSettings::downloadPath() );
downloadURL.setPath(TDEGlobalSettings::downloadPath());
KURL newDownloadURL;
newDownloadURL.setPath(urDownload->url());
KURL musicURL;
// musicURL.setPath( TDEGlobalSettings::musicPath() );
musicURL.setPath(TDEGlobalSettings::musicPath());
KURL newMusicURL;
newMusicURL.setPath(urMusic->url());
KURL picturesURL;
// picturesURL.setPath( TDEGlobalSettings::picturesPath() );
picturesURL.setPath(TDEGlobalSettings::picturesPath());
KURL newPicturesURL;
newPicturesURL.setPath(urPictures->url());
KURL publicShareURL;
// publicShareURL.setPath( TDEGlobalSettings::publicSharePath() );
publicShareURL.setPath(TDEGlobalSettings::publicSharePath());
KURL newPublicShareURL;
newPublicShareURL.setPath(urPublicShare->url());
KURL templatesURL;
// templatesURL.setPath( TDEGlobalSettings::templatesPath() );
templatesURL.setPath(TDEGlobalSettings::templatesPath());
KURL newTemplatesURL;
newTemplatesURL.setPath(urTemplates->url());
KURL videosURL;
// videosURL.setPath( TDEGlobalSettings::videosPath() );
videosURL.setPath(TDEGlobalSettings::videosPath());
KURL newVideosURL;
newVideosURL.setPath(urVideos->url());
if ( !newDesktopURL.equals( desktopURL, true ) )
if (!newDesktopURL.equals(desktopURL, true))
{
// Test which other paths were inside this one (as it is by default)
// and for each, test where it should go.
@ -319,8 +339,12 @@ void DesktopPathConfig::save()
pathChanged = true;
}
}
if (!xdgconfig->hasKey("XDG_DESKTOP_DIR"))
{
xdgconfig->writePathEntry("XDG_DESKTOP_DIR", '"'+ urDesktop->url() + '"', true, false, false, false );
}
if ( !newAutostartURL.equals( autostartURL, true ) )
if (!newAutostartURL.equals(autostartURL, true))
{
if (!autostartMoved)
autostartMoved = moveDir( KURL( TDEGlobalSettings::autostartPath() ), KURL( urAutostart->url() ), i18n("Autostart") );
@ -331,7 +355,7 @@ void DesktopPathConfig::save()
}
}
if ( !newDocumentURL.equals( documentURL, true ) )
if (!newDocumentURL.equals(documentURL, true) || !TQDir(urDocument->url()).exists())
{
bool pathOk = true;
TQString path = urDocument->url();
@ -352,7 +376,7 @@ void DesktopPathConfig::save()
}
}
if ( !newDownloadURL.equals( downloadURL, true ) )
if (!newDownloadURL.equals(downloadURL, true) || !TQDir(urDownload->url()).exists())
{
bool pathOk = true;
TQString path = urDownload->url();
@ -373,7 +397,7 @@ void DesktopPathConfig::save()
}
}
if ( !newMusicURL.equals( musicURL, true ) )
if (!newMusicURL.equals(musicURL, true) || !TQDir(urMusic->url()).exists())
{
bool pathOk = true;
TQString path = urMusic->url();
@ -394,7 +418,7 @@ void DesktopPathConfig::save()
}
}
if ( !newPicturesURL.equals( picturesURL, true ) )
if (!newPicturesURL.equals(picturesURL, true) || !TQDir(urPictures->url()).exists())
{
bool pathOk = true;
TQString path = urPictures->url();
@ -415,7 +439,7 @@ void DesktopPathConfig::save()
}
}
if ( !newPublicShareURL.equals( publicShareURL, true ) )
if (!newPublicShareURL.equals(publicShareURL, true) || !TQDir(urPublicShare->url()).exists())
{
bool pathOk = true;
TQString path = urPublicShare->url();
@ -436,7 +460,7 @@ void DesktopPathConfig::save()
}
}
if ( !newTemplatesURL.equals( templatesURL, true ) )
if (!newTemplatesURL.equals(templatesURL, true) || !TQDir(urTemplates->url()).exists())
{
bool pathOk = true;
TQString path = urTemplates->url();
@ -457,7 +481,7 @@ void DesktopPathConfig::save()
}
}
if ( !newVideosURL.equals( videosURL, true ) )
if (!newVideosURL.equals(videosURL, true) || !TQDir(urVideos->url()).exists())
{
bool pathOk = true;
TQString path = urVideos->url();

@ -44,7 +44,8 @@ public:
virtual void defaults();
private slots:
void slotEntries( TDEIO::Job * job, const TDEIO::UDSEntryList& list);
void slotEntries(TDEIO::Job * job, const TDEIO::UDSEntryList& list);
void loadTimerDone();
private:
// Desktop Paths
@ -63,6 +64,8 @@ private:
KURL m_copyToDest; // used when the destination directory already exists
KURL m_copyFromSrc;
TQTimer *loadTmr;
private slots:
void slotResult( TDEIO::Job * job );
};

@ -69,15 +69,6 @@ tde_add_executable( kcheckrunning
)
##### kxdglauncher (executable) #################
tde_add_executable( kxdglauncher
SOURCES kxdglauncher.cpp
LINK tdeutils-shared
DESTINATION ${BIN_INSTALL_DIR}
)
##### kdesktop (tdeinit) ########################
set( target kdesktop )

@ -8,7 +8,7 @@ SUBDIRS = . lock pics patterns programs init kwebdesktop
####### Files
bin_PROGRAMS = kcheckrunning kxdglauncher
bin_PROGRAMS = kcheckrunning
lib_LTLIBRARIES =
tdeinit_LTLIBRARIES = kdesktop.la
noinst_LTLIBRARIES = libkdesktopsettings.la
@ -31,16 +31,12 @@ include_HEADERS = KDesktopIface.h KScreensaverIface.h KBackgroundIface.h
noinst_HEADERS = desktop.h bgmanager.h krootwm.h \
xautolock.h lockeng.h init.h minicli.h \
pixmapserver.h startupid.h xautolock_c.h \
kdesktopapp.h kxdglauncher.h
kdesktopapp.h
kcheckrunning_SOURCES = kcheckrunning.cpp
kcheckrunning_LDFLAGS = $(all_libraries)
kcheckrunning_LDADD = $(LIB_X11) $(LIB_TQT)
kxdglauncher_SOURCES = kxdglauncher.cpp
kxdglauncher_LDFLAGS = $(all_libraries)
kxdglauncher_LDADD = $(LIB_TDEUTILS)
METASOURCES = AUTO
####### Build rules

@ -851,7 +851,7 @@ bool KDIconView::deleteGlobalDesktopFiles()
// Ignore these special files
// Name URL Type OnlyShowIn
// My Documents kxdglauncher --xdgname DOCUMENTS Application TDE;
// My Documents XDG_DOCUMENTS_DIR Application TDE;
// My Computer media:/ Link TDE;
// My Network Places remote:/ Link TDE;
// Printers [exec] kjobviewer --all --show %i %m Application TDE;

@ -1,188 +0,0 @@
/* This file is part of the KDE project
Copyright (C) 2010 Timothy Pearson <kb9vqf@pearsoncomputing.net>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include <tqfile.h>
#include <tqdir.h>
#include <tqtimer.h>
#include <tqstring.h>
#include <tqtextcodec.h>
#include <krun.h>
#include <tdefile.h>
#include <tdelocale.h>
#include <tdeapplication.h>
#include <tdecmdlineargs.h>
#include <tdeglobalsettings.h>
#include <kinputdialog.h>
#include <tdemessagebox.h>
#include <tdeconfig.h>
#include <kurlrequester.h>
#include <kurlrequesterdlg.h>
#include <stdlib.h>
#include "kxdglauncher.h"
// helper function for reading xdg user dirs: it is required for obvious reasons
void readXdgUserDirs(TQString *desktop, TQString *documents)
{
TQFile f( TQDir::homeDirPath() + "/.config/user-dirs.dirs" );
if (!f.open(IO_ReadOnly))
return;
// set the codec for the current locale
TQTextStream s(&f);
s.setCodec( TQTextCodec::codecForLocale() );
TQString line = s.readLine();
while (!line.isNull())
{
if (line.startsWith("XDG_DESKTOP_DIR=")) {
*desktop = TQString(line.remove("XDG_DESKTOP_DIR=").remove("\"")).replace("$HOME", TQDir::homeDirPath());
}
else if (line.startsWith("XDG_DOCUMENTS_DIR=")) {
*documents = TQString(line.remove("XDG_DOCUMENTS_DIR=").remove("\"")).replace("$HOME", TQDir::homeDirPath());
}
line = s.readLine();
}
}
TQString getDocumentPath()
{
TQString s_desktopPath;
TQString s_documentPath;
readXdgUserDirs(&s_desktopPath, &s_documentPath);
if (s_documentPath.isEmpty() == true) {
#ifdef Q_WS_WIN
s_documentPath = getWin32ShellFoldersPath("Personal");
#else
s_documentPath = TQDir::homeDirPath() + "/Documents/";
#endif
}
s_documentPath = TQDir::cleanDirPath( s_documentPath );
if ( !s_documentPath.endsWith("/"))
s_documentPath.append('/');
return s_documentPath;
}
static TDECmdLineOptions options[] =
{
{ "xdgname <argument>", I18N_NOOP("XDG variable name to open"), 0 },
{ "getpath", I18N_NOOP("Do not launch Konqueror; instead print path to directory if it exists)"), 0 },
TDECmdLineLastOption
};
int main( int argc, char **argv)
{
TDECmdLineArgs::init( argc, argv, "kxdglauncher", I18N_NOOP("TDE XDG File Browser Launcher and Prompter"), I18N_NOOP("Prompts if directory does not exist, otherwise launches"), "1.0" );
TDECmdLineArgs::addCmdLineOptions( options );
TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
TDEApplication app;
app.disableSessionManagement();
if (args->isSet( "xdgname" ) == true) {
TQString desiredFolder = args->getOption("xdgname");
if (desiredFolder == "DOCUMENTS") {
TQDir myqdir;
if (myqdir.exists(getDocumentPath(), TRUE) == true) {
if (args->isSet( "getpath" ) == true) {
printf("%s\n", (const char *)getDocumentPath().local8Bit());
return 0;
}
else {
KRun * run = new KRun( KURL(getDocumentPath()), 0, false, false );
TQObject::connect( run, TQT_SIGNAL( finished() ), &app, TQT_SLOT( quit() ));
TQObject::connect( run, TQT_SIGNAL( error() ), &app, TQT_SLOT( quit() ));
app.exec();
return 0;
}
}
else {
KURLRequesterDlg newDirectoryRequester(getDocumentPath(), i18n("Please confirm your Documents directory location<br>Upon confimation a new directory will be created"), 0, NULL, true);
newDirectoryRequester.setCaption(i18n("Create Documents directory"));
newDirectoryRequester.urlRequester()->setMode(KFile::Directory);
if (newDirectoryRequester.exec() != TQDialog::Accepted) {
return 1;
}
else {
TQString newDirectory = newDirectoryRequester.urlRequester()->url();
if (newDirectory == TQString::null) {
return 1;
}
else {
if (newDirectory.length() < 4096) {
bool directoryOk = false;
if (myqdir.exists(newDirectory, TRUE) == false) {
if (myqdir.mkdir(newDirectory, TRUE) == true) {
directoryOk = TRUE;
}
}
else {
directoryOk = TRUE;
}
if (directoryOk == true) {
TQString xdgModifiedDirectory = newDirectory;
xdgModifiedDirectory = xdgModifiedDirectory.replace(TQDir::homeDirPath(), "$HOME");
while (xdgModifiedDirectory.endsWith("/")) {
xdgModifiedDirectory.truncate(xdgModifiedDirectory.length()-1);
}
TDEConfig config(TQDir::homeDirPath() + "/.config/user-dirs.dirs", false, false);
config.writeEntry("XDG_DOCUMENTS_DIR", TQString("\"") + xdgModifiedDirectory + TQString("\""), true);
config.sync();
if (args->isSet( "getpath" ) == true) {
printf("%s\n", (const char *)getDocumentPath().local8Bit());
return 0;
}
else {
KRun * run = new KRun( getDocumentPath(), 0, false, false );
TQObject::connect( run, TQT_SIGNAL( finished() ), &app, TQT_SLOT( quit() ));
TQObject::connect( run, TQT_SIGNAL( error() ), &app, TQT_SLOT( quit() ));
app.exec();
}
return 0;
}
else {
KMessageBox::error(0, i18n("Unable to create directory ") + TQString("\"") + newDirectory + TQString("\"\n") + i18n("Please check folder permissions and try again"), i18n("Unable to create directory"));
return 1;
}
}
else {
KMessageBox::error(0, i18n("Unable to create the directory ") + newDirectory + TQString("\n") + i18n("Directory path cannot be longer than 4096 characters"), i18n("Unable to create directory"));
return 1;
}
}
}
}
}
else {
printf("[kxdglauncher] XDG variable not recognized\n");
return 1;
}
}
else {
printf("[kxdglauncher] Please specify the desired XDG variable name with --xdgname\n");
return 1;
}
}

@ -1,25 +0,0 @@
/* This file is part of the KDE project
Copyright (c) 2003 Oswald Buddenhagen <ossi@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef _MAIN_H
#define _MAIN_H
#include <tdeapplication.h>
#endif
Loading…
Cancel
Save