RHEL/Fedora: updates kdelibs

pull/3/head
Francois Andriot 12 years ago
parent d5d98e581c
commit c5be5e13a1

@ -0,0 +1,139 @@
commit 3c75231601fb35f0c91022abeee5117c81f70a62
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
Date: 1339293731 -0500
Add dynamic label support to kpassworddialog
diff --git a/kdeui/kpassdlg.cpp b/kdeui/kpassdlg.cpp
index a9625b8..489e14d 100644
--- ./kdeui/kpassdlg.cpp.orig 2011-08-11 04:30:26.000000000 +0200
+++ ./kdeui/kpassdlg.cpp 2012-06-19 20:10:16.766136524 +0200
@@ -32,6 +32,7 @@
#include <tqhbox.h>
#include <tqwhatsthis.h>
#include <tqptrdict.h>
+#include <tqtimer.h>
#include <kglobal.h>
#include <kdebug.h>
@@ -305,7 +306,7 @@
KPasswordDialog::KPasswordDialog(Types type, bool enableKeep, int extraBttn,
TQWidget *parent, const char *name)
: KDialogBase(parent, name, true, "", Ok|Cancel|extraBttn,
- Ok, true), m_Keep(enableKeep? 1 : 0), m_Type(type), d(new KPasswordDialogPrivate)
+ Ok, true), m_Keep(enableKeep? 1 : 0), m_keepWarnLbl(0), m_Type(type), d(new KPasswordDialogPrivate)
{
d->iconName = "password";
init();
@@ -314,7 +315,7 @@
KPasswordDialog::KPasswordDialog(Types type, bool enableKeep, int extraBttn, const TQString& icon,
TQWidget *parent, const char *name )
: KDialogBase(parent, name, true, "", Ok|Cancel|extraBttn,
- Ok, true), m_Keep(enableKeep? 1 : 0), m_Type(type), d(new KPasswordDialogPrivate)
+ Ok, true), m_Keep(enableKeep? 1 : 0), m_keepWarnLbl(0), m_Type(type), d(new KPasswordDialogPrivate)
{
if ( icon.stripWhiteSpace().isEmpty() )
d->iconName = "password";
@@ -326,7 +327,7 @@
KPasswordDialog::KPasswordDialog(int type, TQString prompt, bool enableKeep,
int extraBttn)
: KDialogBase(0L, "Password Dialog", true, "", Ok|Cancel|extraBttn,
- Ok, true), m_Keep(enableKeep? 1 : 0), m_Type(type), d(new KPasswordDialogPrivate)
+ Ok, true), m_Keep(enableKeep? 1 : 0), m_keepWarnLbl(0), m_Type(type), d(new KPasswordDialogPrivate)
{
d->iconName = "password";
init();
@@ -393,12 +394,20 @@
m_pGrid->setRowStretch(8, 12);
TQCheckBox* const cb = new TQCheckBox(i18n("&Keep password"), m_pMain);
cb->setFixedSize(cb->tqsizeHint());
- if (m_Keep > 1)
+ m_keepWarnLbl = new TQLabel(m_pMain);
+ m_keepWarnLbl->setAlignment(AlignLeft|AlignVCenter|WordBreak);
+ if (m_Keep > 1) {
cb->setChecked(true);
- else
+ m_keepWarnLbl->show();
+ }
+ else {
m_Keep = 0;
+ m_keepWarnLbl->hide();
+ }
connect(cb, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotKeep(bool)));
m_pGrid->addWidget(cb, 9, 2, (TQ_Alignment)(AlignLeft|AlignVCenter));
+// m_pGrid->addWidget(m_keepWarnLbl, 13, 2, (TQ_Alignment)(AlignLeft|AlignVCenter));
+ m_pGrid->addMultiCellWidget(m_keepWarnLbl, 13, 13, 0, 3);
} else if (m_Type == NewPassword) {
m_pGrid->addRowSpacing(8, 10);
lbl = new TQLabel(m_pMain);
@@ -475,6 +484,13 @@
m_pHelpLbl->setFixedSize(275, m_pHelpLbl->heightForWidth(275));
}
+void KPasswordDialog::setKeepWarning(TQString warn)
+{
+ if (m_keepWarnLbl) {
+ m_keepWarnLbl->setText(warn);
+ }
+}
+
TQString KPasswordDialog::prompt() const
@@ -550,9 +566,24 @@
void KPasswordDialog::slotKeep(bool keep)
{
+ if (m_keepWarnLbl->text() != "") {
+ if (keep) {
+ m_keepWarnLbl->show();
+ }
+ else {
+ m_keepWarnLbl->hide();
+ }
+ TQTimer::singleShot(0, this, SLOT(slotLayout()));
+ }
+
m_Keep = keep;
}
+void KPasswordDialog::slotLayout()
+{
+ resize(sizeHint());
+}
+
// static . antlarr: KDE 4: Make it const TQString & prompt
int KPasswordDialog::getPassword(TQCString &password, TQString prompt,
diff --git a/kdeui/kpassdlg.h b/kdeui/kpassdlg.h
index de83bb3..2d124b0 100644
--- a/kdeui/kpassdlg.h
+++ b/kdeui/kpassdlg.h
@@ -246,6 +246,11 @@ public:
TQString prompt() const;
/**
+ * Sets the text to be dynamically displayed when the keep checkbox is checked
+ */
+ void setKeepWarning(TQString warn);
+
+ /**
* Adds a line of information to the dialog.
*/
void addLine(TQString key, TQString value);
@@ -380,6 +385,7 @@ protected slots:
void slotOk();
void slotCancel();
void slotKeep(bool);
+ void slotLayout();
protected:
@@ -399,6 +405,7 @@ private:
int m_Keep, m_Type, m_Row;
TQLabel *m_pHelpLbl;
+ TQLabel *m_keepWarnLbl;
TQGridLayout *m_pGrid;
TQWidget *m_pMain;
KPasswordEdit *m_pEdit, *m_pEdit2;

@ -0,0 +1,248 @@
commit d3a9d56143cf668c7d29b26a324a424d02036371
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
Date: 1337109016 -0500
Add the ability to force read-only configuration file access in a TDE application
Force kde-config to use read-only access
This closes Bug 293
diff --git a/kdecore/kconfigbackend.cpp b/kdecore/kconfigbackend.cpp
index 9ee9dd6..4ad0e5f 100644
--- a/kdecore/kconfigbackend.cpp
+++ b/kdecore/kconfigbackend.cpp
@@ -247,17 +247,22 @@ void KConfigBackEnd::changeFileName(const TQString &_fileName,
mfileName = _fileName;
resType = _resType;
useKDEGlobals = _useKDEGlobals;
- if (mfileName.isEmpty())
+ if (mfileName.isEmpty()) {
mLocalFileName = TQString::null;
- else if (!TQDir::isRelativePath(mfileName))
+ }
+ else if (!TQDir::isRelativePath(mfileName)) {
mLocalFileName = mfileName;
- else
- mLocalFileName = KGlobal::dirs()->saveLocation(resType) + mfileName;
+ }
+ else {
+ mLocalFileName = KGlobal::dirs()->saveLocation(resType, TQString(), false) + mfileName;
+ }
- if (useKDEGlobals)
+ if (useKDEGlobals) {
mGlobalFileName = KGlobal::dirs()->saveLocation("config", TQString(), false) + TQString::fromLatin1("kdeglobals");
- else
+ }
+ else {
mGlobalFileName = TQString::null;
+ }
d->localLastModified = TQDateTime();
d->localLastSize = 0;
diff --git a/kdecore/kconfigbase.cpp b/kdecore/kconfigbase.cpp
index 9ad6600..c5c0a4e 100644
--- a/kdecore/kconfigbase.cpp
+++ b/kdecore/kconfigbase.cpp
@@ -1139,16 +1139,18 @@ static TQString translatePath( TQString path )
// return original path, if it refers to another type of URL (e.g. http:/), or
// if the path is already relative to another directory
- if (!startsWithFile && path[0] != '/' ||
- startsWithFile && path[5] != '/')
+ if (((!startsWithFile) && (path[0] != '/')) || (startsWithFile && (path[5] != '/'))) {
return path;
+ }
- if (startsWithFile)
+ if (startsWithFile) {
path.remove(0,5); // strip leading "file:/" off the string
+ }
// keep only one single '/' at the beginning - needed for cleanHomeDirPath()
- while (path[0] == '/' && path[1] == '/')
+ while (path[0] == '/' && path[1] == '/') {
path.remove(0,1);
+ }
// we can not use KGlobal::dirs()->relativeLocation("home", path) here,
// since it would not recognize paths without a trailing '/'.
diff --git a/kdecore/kinstance.cpp b/kdecore/kinstance.cpp
index fe0a515..5b3aa86 100644
--- ./kdecore/kinstance.cpp.orig 2011-08-11 04:30:15.000000000 +0200
+++ ./kdecore/kinstance.cpp 2012-06-19 21:14:21.569741870 +0200
@@ -70,7 +70,7 @@
: _dirs (0L),
_config (0L),
_iconLoader (0L),
- _name( name ), _aboutData( new KAboutData( name, "", 0 ) )
+ _name( name ), _aboutData( new KAboutData( name, "", 0 ) ), m_configReadOnly(false)
{
DEBUG_ADD
Q_ASSERT(!name.isEmpty());
@@ -88,7 +88,7 @@
: _dirs (0L),
_config (0L),
_iconLoader (0L),
- _name( aboutData->appName() ), _aboutData( aboutData )
+ _name( aboutData->appName() ), _aboutData( aboutData ), m_configReadOnly(false)
{
DEBUG_ADD
Q_ASSERT(!_name.isEmpty());
@@ -107,7 +107,7 @@
: _dirs ( src->_dirs ),
_config ( src->_config ),
_iconLoader ( src->_iconLoader ),
- _name( src->_name ), _aboutData( src->_aboutData )
+ _name( src->_name ), _aboutData( src->_aboutData ), m_configReadOnly(false)
{
DEBUG_ADD
Q_ASSERT(!_name.isEmpty());
@@ -174,6 +174,11 @@
extern bool kde_kiosk_exception;
extern bool kde_kiosk_admin;
+void KInstance::setConfigReadOnly(bool ro)
+{
+ m_configReadOnly = ro;
+}
+
KConfig *KInstance::config() const
{
DEBUG_CHECK_ALIVE
@@ -198,10 +203,12 @@
if ( d->sharedConfig == 0 )
{
- if ( !_name.isEmpty() )
- d->sharedConfig = KSharedConfig::openConfig( _name + "rc");
- else
+ if ( !_name.isEmpty() ) {
+ d->sharedConfig = KSharedConfig::openConfig( _name + "rc", m_configReadOnly );
+ }
+ else {
d->sharedConfig = KSharedConfig::openConfig( TQString::null );
+ }
}
// Check if we are excempt from kiosk restrictions
@@ -211,7 +218,7 @@
d->sharedConfig = 0;
return config(); // Reread...
}
-
+
_config = d->sharedConfig;
if (_dirs)
if (_dirs->addCustomized(_config))
diff --git a/kdecore/kinstance.h b/kdecore/kinstance.h
index 75cc4b4..444a2d8 100644
--- a/kdecore/kinstance.h
+++ b/kdecore/kinstance.h
@@ -69,7 +69,7 @@ class kdecore_EXPORT KInstance
* Only for K(Unique)Application
* Initialize from src and delete it.
*/
-
+
KInstance( KInstance* src );
/**
@@ -96,6 +96,14 @@ class kdecore_EXPORT KInstance
KSharedConfig *sharedConfig() const;
/**
+ * Set a read-only flag on the configuration files
+ * This must be called before config() or dirs() to have any effect
+ * Defaults to FALSE
+ * @param ro read only if TRUE
+ */
+ void setConfigReadOnly(bool ro);
+
+ /**
* Returns an iconloader object.
* @return the iconloader object.
*/
@@ -162,6 +170,7 @@ protected:
virtual void virtual_hook( int id, void* data );
private:
KInstancePrivate *d;
+ bool m_configReadOnly;
};
#endif
diff --git a/kdecore/kstandarddirs.cpp b/kdecore/kstandarddirs.cpp
index bce4bf4..bb8ae97 100644
--- a/kdecore/kstandarddirs.cpp.orig 2011-08-21 06:15:32.000000000 +0200
+++ b/kdecore/kstandarddirs.cpp 2012-06-19 21:17:34.550007910 +0200
@@ -451,13 +450,17 @@
bool KStandardDirs::exists(const TQString &fullPath)
{
KDE_struct_stat buff;
- if (access(TQFile::encodeName(fullPath), R_OK) == 0 && KDE_stat( TQFile::encodeName(fullPath), &buff ) == 0)
+ if ((access(TQFile::encodeName(fullPath), R_OK) == 0) && (KDE_stat( TQFile::encodeName(fullPath), &buff ) == 0)) {
if (fullPath.tqat(fullPath.length() - 1) != QChar('/')) {
if (S_ISREG( buff.st_mode ))
return true;
- } else
- if (S_ISDIR( buff.st_mode ))
+ }
+ else {
+ if (S_ISDIR( buff.st_mode )) {
return true;
+ }
+ }
+ }
return false;
}
@@ -767,17 +770,23 @@
srv = findExe(TQString::tqfromLatin1("lnusertemp"));
if (!srv.isEmpty())
{
- system(TQFile::encodeName(srv)+" "+type);
- result = readlink(TQFile::encodeName(dir).data(), link, 1023);
+ if (system(TQFile::encodeName(srv)+" "+type) < 0 ) {
+ result = readlink(TQFile::encodeName(dir).data(), link, 1023);
+ }
+ else {
+ result = -1;
+ }
}
}
if (result > 0)
{
link[result] = 0;
- if (link[0] == TQChar('/').latin1())
+ if (link[0] == TQChar('/').latin1()) {
dir = TQFile::decodeName(link);
- else
+ }
+ else {
dir = TQDir::cleanDirPath(dir+TQFile::decodeName(link));
+ }
}
#endif
addResourceDir(type, dir+QChar('/'));
@@ -1139,8 +1148,9 @@
}
dircache.remove(type);
}
- if (!fullPath.endsWith("/"))
+ if (!fullPath.endsWith("/")) {
fullPath += "/";
+ }
return fullPath;
}
diff --git a/kdecore/kde-config.cpp.in b/kdecore/kde-config.cpp.in
index 90c5dae..c988b00 100644
--- a/kdecore/kde-config.cpp.in
+++ b/kdecore/kde-config.cpp.in
@@ -120,6 +120,7 @@ int main(int argc, char **argv)
KCmdLineArgs::addCmdLineOptions( options ); // Add my own options.
KInstance a("kde-config");
+ a.setConfigReadOnly(TRUE);
(void)KGlobal::dirs(); // trigger the creation
(void)KGlobal::config();

@ -0,0 +1,27 @@
commit 3e284fadb9110cdd2a2dcf9c2e960c74f15e0360
Author: Slávek Banko <slavek.banko@axis.cz>
Date: 1339570958 +0200
Fix FTBFS - incomplete build kspell2
This closes Bug 657
diff --git a/kspell2/ui/CMakeLists.txt b/kspell2/ui/CMakeLists.txt
index 65ea158..a83774d 100644
--- a/kspell2/ui/CMakeLists.txt
+++ b/kspell2/ui/CMakeLists.txt
@@ -54,12 +54,14 @@ tde_add_library( ${target} STATIC_PIC AUTOMOC
set( target kspell2 )
set( ${target}_SRCS
+ configwidget.cpp highlighter.cpp configdialog.cpp
+ kspell2ui.ui configui.ui
dialog.cpp
)
tde_add_library( ${target} SHARED AUTOMOC
SOURCES ${${target}_SRCS}
VERSION 1.0.0
- LINK kspell2-static kspell2base-static kutils-shared
+ LINK kspell2base-static kutils-shared
DESTINATION ${LIB_INSTALL_DIR}
)

@ -0,0 +1,159 @@
commit 41ea89f79d28c456b296e8ddcce0a12c21e13f94
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
Date: 1337872714 -0500
Fix composition extension detection
diff --git a/kdecore/kapplication.cpp b/kdecore/kapplication.cpp
index 5c60e6f..b4caefc 100644
--- a/kdecore/kapplication.cpp
+++ b/kdecore/kapplication.cpp
@@ -1804,9 +1804,7 @@ bool KApplication::isCompositionManagerAvailable() {
// Now that we did all that by way of introduction...read the file!
FILE *pFile;
- char buffer[255];
pFile = fopen(filename, "r");
- int kompmgrpid = 0;
if (pFile) {
have_manager = true;
fclose(pFile);
@@ -1840,18 +1838,23 @@ bool KApplication::detectCompositionManagerAvailable(bool force_available, bool
compositing_manager_available = false;
}
else {
- Window root_window = XDefaultRootWindow(dpy);
- XCompositeRedirectSubwindows(dpy, root_window, CompositeRedirectManual);
- XSync(dpy, false);
- if (x11_composite_error_generated == true) {
- compositing_manager_available = true;
+ if (available) { // FIXME This variable does double duty to avoid breaking the ABI for R14.0. In reality it should be called perform_deep_check
+ Window root_window = XDefaultRootWindow(dpy);
+ XCompositeRedirectSubwindows(dpy, root_window, CompositeRedirectManual);
+ XSync(dpy, false);
+ if (x11_composite_error_generated == true) {
+ compositing_manager_available = true;
+ }
+ else {
+ XCompositeUnredirectSubwindows(dpy, root_window, CompositeRedirectManual);
+ compositing_manager_available = false;
+ }
+ XSetErrorHandler(NULL);
+ XCloseDisplay(dpy);
}
else {
- XCompositeUnredirectSubwindows(dpy, root_window, CompositeRedirectManual);
- compositing_manager_available = false;
+ compositing_manager_available = true;
}
- XSetErrorHandler(NULL);
- XCloseDisplay(dpy);
}
}
@@ -1913,7 +1916,7 @@ Qt::HANDLE KApplication::getX11RGBAVisual(Display *dpy) {
return argb_x11_visual;
}
else {
- return NULL;
+ return (Qt::HANDLE)NULL;
}
}
@@ -1923,7 +1926,7 @@ Qt::HANDLE KApplication::getX11RGBAColormap(Display *dpy) {
return argb_x11_colormap;
}
else {
- return NULL;
+ return (Qt::HANDLE)NULL;
}
}
@@ -1997,8 +2000,20 @@ bool KApplication::detectCompositionManagerAvailable(bool force_available) {
strcat(filename, home);
strcat(filename, configfile);
- /* now that we did all that by way of introduction...remove the file! */
- unlink(filename);
+ /* now that we did all that by way of introduction...create or remove the file! */
+ if (force_available) {
+ FILE *pFile;
+ char buffer[255];
+ sprintf(buffer, "available");
+ pFile = fopen(filename, "w");
+ if (pFile) {
+ fwrite(buffer,1,strlen(buffer), pFile);
+ fclose(pFile);
+ }
+ }
+ else {
+ unlink(filename);
+ }
free(filename);
filename = NULL;
@@ -2886,12 +2901,15 @@ void KApplication::invokeMailer(const TQString &_to, const TQString &_cc, const
TQString error;
// TODO this should check if cmd has a .desktop file, and use data from it, together
// with sending more ASN data
- if (kdeinitExec(cmd, cmdTokens, &error, NULL, startup_id ))
- if (Tty != kapp->type())
+ if (kdeinitExec(cmd, cmdTokens, &error, NULL, startup_id )) {
+ if (Tty != kapp->type()) {
TQMessageBox::critical(kapp->mainWidget(), i18n("Could not Launch Mail Client"),
i18n("Could not launch the mail client:\n\n%1").arg(error), i18n("&OK"));
- else
+ }
+ else {
kdWarning() << "Could not launch mail client:\n" << error << endl;
+ }
+ }
}
#endif
@@ -3597,7 +3615,9 @@ void KApplication::sigpipeHandler(int)
#ifndef NDEBUG
char msg[1000];
sprintf(msg, "*** SIGPIPE *** (ignored, pid = %ld)\n", (long) getpid());
- write(2, msg, strlen(msg));
+ if (write(2, msg, strlen(msg)) < 0) {
+ // ERROR
+ }
#endif
// Do nothing.
diff --git a/kdecore/kdetcompmgr.cpp b/kdecore/kdetcompmgr.cpp
index bfc3ac6..8b9b480 100644
--- a/kdecore/kdetcompmgr.cpp
+++ b/kdecore/kdetcompmgr.cpp
@@ -84,7 +84,6 @@ int main(int argc, char **argv)
if (lSize > 254)
lSize = 254;
rewind (pFile);
- size_t result = fread (buffer, 1, lSize, pFile);
fclose(pFile);
kompmgrpid = atoi(buffer);
}
@@ -97,9 +96,7 @@ int main(int argc, char **argv)
}
}
-// app.detectCompositionManagerAvailable();
-
-// if (!app.isCompositionManagerAvailable()) {
+ if (app.detectCompositionManagerAvailable(false, false)) { // Perform a shallow check for the composite extension (a deep check would cause noticeable flicker)
KConfig config2("kwinrc", true);
config2.setGroup( "Notification Messages" );
if (config2.readBoolEntry("UseTranslucency",false)) {
@@ -110,6 +107,10 @@ int main(int argc, char **argv)
app.detectCompositionManagerAvailable(true, false);
return 0;
}
-// }
+ }
+ else {
+ app.detectCompositionManagerAvailable(true, false);
+ return 1;
+ }
}

@ -0,0 +1,12 @@
--- ./kdecore/kconfigbackend.cpp.orig 2011-08-11 04:30:15.000000000 +0200
+++ ./kdecore/kconfigbackend.cpp 2012-06-18 23:27:20.034671093 +0200
@@ -255,8 +255,7 @@
mLocalFileName = KGlobal::dirs()->saveLocation(resType) + mfileName;
if (useKDEGlobals)
- mGlobalFileName = KGlobal::dirs()->saveLocation("config") +
- TQString::tqfromLatin1("kdeglobals");
+ mGlobalFileName = KGlobal::dirs()->saveLocation("config", TQString(), false) + TQString::fromLatin1("kdeglobals");
else
mGlobalFileName = TQString::null;

@ -0,0 +1,83 @@
commit 06b514847fffb79985e4bcde9f8dcc685c5d9ac5
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
Date: 1328040359 -0600
Fix konq filter in list view mode
Select all now only selects shown (filtered) items
diff --git a/tdeui/klistview.cpp b/tdeui/klistview.cpp
index e1c5811..b52fe68 100644
--- a/kdeui/klistview.cpp
+++ b/kdeui/klistview.cpp
@@ -2356,6 +2356,52 @@ void KListViewItem::paintCell(TQPainter *p, const TQColorGroup &cg, int column,
TQListViewItem::paintCell(p, _cg, column, width, tqalignment);
}
+/*!
+ If \a select is TRUE, all the items get selected; otherwise all
+ the items get unselected. This only works in the selection modes \c
+ Multi and \c Extended. In \c Single and \c NoSelection mode the
+ selection of the current item is just set to \a select.
+*/
+
+void KListView::selectAll( bool select )
+{
+ if ( selectionMode() == Multi || selectionMode() == Extended ) {
+ bool b = signalsBlocked();
+ blockSignals( TRUE );
+ bool anything = FALSE;
+ TQListViewItemIterator it( this );
+ while ( it.current() ) {
+ TQListViewItem *i = it.current();
+ if ( select == TRUE ) {
+ if ( (bool)i->isVisible() == TRUE ) {
+ i->setSelected( TRUE );
+ anything = TRUE;
+ }
+ if ( (bool)i->isVisible() == FALSE ) {
+ i->setSelected( FALSE );
+ anything = TRUE;
+ }
+ }
+ else {
+ if ( (bool)i->isSelected() != select ) {
+ i->setSelected( select );
+ anything = TRUE;
+ }
+ }
+ ++it;
+ }
+ blockSignals( b );
+ if ( anything ) {
+ emit selectionChanged();
+// d->useDoubleBuffer = TRUE;
+ triggerUpdate();
+ }
+ } else if ( currentItem() ) {
+ TQListViewItem * i = currentItem();
+ setSelected( i, select );
+ }
+}
+
void KListView::virtual_hook( int, void* )
{ /*BASE::virtual_hook( id, data );*/ }
diff --git a/tdeui/klistview.h b/tdeui/klistview.h
index ed10192..c8bb837 100644
--- a/kdeui/klistview.h
+++ b/kdeui/klistview.h
@@ -660,6 +660,14 @@ public slots:
*/
bool tabOrderedRenaming() const;
+ /**
+ * Override TQListView selectAll() so that filtered
+ * items are not selected
+ *
+ * @since 14.0
+ */
+ virtual void selectAll( bool select );
+
protected:
/**
* Determine whether a drop on position @p p would count as

@ -0,0 +1,27 @@
commit 9068fffdf82dc9cf60e83639b3a9b397761304cd
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
Date: 1338002515 -0500
Fix KTempFile not obeying special bits on file creation
This closes Bug 349
Add modem category to TDE hardware manager
diff --git a/tdecore/ktempfile.cpp b/tdecore/ktempfile.cpp
index 2c7b56e..4632f00 100644
--- a/kdecore/ktempfile.cpp
+++ b/kdecore/ktempfile.cpp
@@ -117,8 +117,12 @@ KTempFile::create(const TQString &filePrefix, const TQString &fileExtension,
// Success!
bOpen = true;
- // Set uid/gid (necessary for SUID programs)
- fchown(mFd, getuid(), getgid());
+ uid_t uid = getuid();
+ uid_t euid = geteuid();
+ if (uid != euid) {
+ // Set uid/gid (necessary for SUID programs)
+ fchown(mFd, getuid(), getgid());
+ }
// Set close on exec
fcntl(mFd, F_SETFD, FD_CLOEXEC);

@ -0,0 +1,52 @@
commit a1c30c142a7b631d6ff66f12d8b48c9aec07190f
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
Date: 1331881108 -0500
Fix slider drawing on external paint devices
diff --git a/tdefx/kstyle.cpp b/tdefx/kstyle.cpp
index d4cb9bd..0220840 100644
--- a/kdefx/kstyle.cpp
+++ b/kdefx/kstyle.cpp
@@ -1138,11 +1138,14 @@ void KStyle::drawComplexControl( TQ_ComplexControl control,
last = querySubControlMetrics(control, widget, SC_ScrollBarLast, opt);
subline2 = addline;
- if ( useThreeButtonScrollBar )
- if (horizontal)
+ if ( useThreeButtonScrollBar ) {
+ if (horizontal) {
subline2.moveBy(-addline.width(), 0);
- else
+ }
+ else {
subline2.moveBy(0, -addline.height());
+ }
+ }
// Draw the up/left button set
if ((controls & SC_ScrollBarSubLine) && subline.isValid()) {
@@ -1238,7 +1241,14 @@ void KStyle::drawComplexControl( TQ_ComplexControl control,
}
p2.end();
- bitBlt((TQWidget*)widget, r.x(), r.y(), &pix);
+
+ TQPaintDevice* ppd = p->device();
+ if (ppd->isExtDev()) {
+ p->drawPixmap(0, 0, pix);
+ }
+ else {
+ bitBlt((TQWidget*)widget, r.x(), r.y(), &pix);
+ }
break;
}
@@ -2105,7 +2115,6 @@ TQImage TransparencyHandler::handleRealAlpha(TQImage img) {
for (int y = 0; y < h; ++y) {
TQRgb *ls = (TQRgb *)clearImage.scanLine( y );
for (int x = 0; x < w; ++x) {
- TQRgb l = ls[x];
ls[x] = tqRgba( 0, 0, 0, 0 );
}
}

@ -0,0 +1,33 @@
commit e131f10b84dbec07ad49d36c192777a72189a39e
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
Date: 1329026747 -0600
Fix tdesu internal pathing
This closes Bug 766
diff --git a/tdesu/stub.cpp b/tdesu/stub.cpp
index 7f083d7..5b222f5 100644
--- a/kdesu/stub.cpp
+++ b/kdesu/stub.cpp
@@ -121,11 +121,16 @@ int StubProcess::ConverseStub(int check)
TQCString path = getenv("PATH");
if (!path.isEmpty() && path[0] == ':')
path = path.mid(1);
- if (m_User == "root")
- if (!path.isEmpty())
- path = "/sbin:/bin:/usr/sbin:/usr/bin:" + path;
- else
- path = "/sbin:/bin:/usr/sbin:/usr/bin";
+ if (m_User == "root")
+ if (!path.isEmpty())
+ path = "/usr/local/sbin:/usr/sbin:/sbin:" + path;
+ else
+ if (strcmp(__KDE_BINDIR, "/usr/bin") == 0) {
+ path = "/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin";
+ }
+ else {
+ path = "/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:" __KDE_BINDIR ":/usr/bin:/bin";
+ }
writeLine(path);
} else if (line == "user") {
writeLine(m_User);

@ -0,0 +1,20 @@
commit 6c806af1c99890adecb42abf52f4d6dc8ae72899
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
Date: 1337556266 -0500
Initialize X11 threading when kinit is used to launch a program
This closes Bug 812
Thanks to Slávek Banko for the patch!
diff --git a/kinit/kinit.cpp b/kinit/kinit.cpp
index 2a74368..191757d 100644
--- a/kinit/kinit.cpp
+++ b/kinit/kinit.cpp
@@ -1615,6 +1615,7 @@ int tdeinit_x_errhandler( Display *dpy, XErrorEvent *err )
// another X connection for startup notification purposes
static void setupX()
{
+ XInitThreads();
XSetIOErrorHandler(kdeinit_xio_errhandler);
XSetErrorHandler(kdeinit_x_errhandler);
}

@ -0,0 +1,41 @@
commit 1c06ae32f64450c38f1294b8adda2fd9a6cc98b1
Author: Darrell Anderson <humanreadable@yahoo.com>
Date: 1331690106 -0500
Reduce "More Applications" and extra koffice items from TDE menu.
This partially resolves bug report 653.
diff --git a/kded/applications.menu b/kded/applications.menu
index 4b30a56..380196e 100644
--- a/kded/applications.menu
+++ b/kded/applications.menu
@@ -272,16 +272,6 @@
</And>
</Include>
<Menu>
- <Name>Email</Name>
- <Directory>kde-internet-email.directory</Directory>
- <Include>
- <And>
- <Category>Email</Category>
- <Not><Category>X-KDE-More</Category></Not>
- </And>
- </Include>
- </Menu>
- <Menu>
<Name>Terminal</Name>
<Directory>kde-internet-terminal.directory</Directory>
</Menu>
@@ -321,12 +311,6 @@
<Directory>kde-office.directory</Directory>
<Layout>
<Merge type="menus"/>
- <Filename>kde-koshell.desktop</Filename>
- <Filename>kde-Kontact.desktop</Filename>
- <Separator/>
- <Filename>kde-kword.desktop</Filename>
- <Filename>kde-kspread.desktop</Filename>
- <Filename>kde-kpresenter.desktop</Filename>
<Merge type="files"/>
<Separator/>
<Menuname>More</Menuname>

@ -15,9 +15,9 @@
%endif
Name: trinity-kdelibs
Name: tdelibs
Version: 3.5.13
Release: 8%{?dist}%{?_variant}
Release: 9%{?dist}%{?_variant}
License: GPL
Summary: TDE Libraries
Group: System Environment/Libraries
@ -31,6 +31,11 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Source0: kdelibs-%{version}.tar.gz
Obsoletes: trinity-kdelibs < %{version}-%{release}
Provides: trinity-kdelibs = %{version}-%{release}
Obsoletes: trinity-kdelibs-apidocs < %{version}-%{release}
Provides: trinity-kdelibs-apidocs = %{version}-%{release}
## [kdelibs/kio] Disable 'max line length' detection [Bug #656]
Patch10: kdelibs-3.5.13-maxlinelength.patch
## [kdelibs/kjs] Enable pcre support in kdelibs [Bug #569]
@ -49,6 +54,27 @@ Patch16: kdelibs-3.5.13-fix_add_printer.patch
Patch17: kdelibs-3.5.13-fix_kdirwatch.patch
## [kdelibs/dcop] Fix 'dcoptypes.h' for compilation with GCC 4.7
Patch18: kdelibs-3.5.13-fix_dcoptypes_h.patch
## [tdelibs] Fix konq filter in list view mode. [Commit #06b51484]
Patch19: kdelibs-3.5.13-fix_konq_filter.patch
## [tdelibs] Fix tdesu internal pathing [Bug #766] [Commit #e131f10b]
Patch20: kdelibs-3.5.13-fix_tdesu_internal_pathing.patch
## [tdelibs] Fix slider drawing on external paint devices [Commit #a1c30c14]
Patch21: kdelibs-3.5.13-fix_slide_drawing.patch
## [tdelibs] Reduce "More Applications" and extra koffice items from TDE menu. [Commit #1c06ae32]
Patch22: kdelibs-3.5.13-reduce_more_applications.patch
## [tdelibs] Fix creation of profile directory in system root [Bug #293] [Commit #049525ee]
Patch23: kdelibs-3.5.13-fix_creation_of_profile_directory.patch
## [tdelibs] Initialize X11 threading when kinit is used to launch a program [Bug #812] [Commit #6c806af1]
Patch24: kdelibs-3.5.13-fix_x11_threading_when_kinit_is_used.patch
## [tdelibs] Fix composition extension detection [Commit #41ea89f7]
Patch25: kdelibs-3.5.13-fix_composition_extension_detection.patch
## [tdelibs] Fix KTempFile not obeying special bits on file creation [Bug #349] [Commit #9068fffd]
Patch26: kdelibs-3.5.13-fix_ktempfile_special_bits.patch
## [tdelibs] Add dynamic label support to kpassworddialog [Commit #3c752316]
Patch27: kdelibs-3.5.13-add_dynamic_label_to_kpassword.patch
## [tdelibs] Fix FTBFS - incomplete build kspell2 [Bug #657] [Commit #3e284fad]
Patch28: kdelibs-3.5.13-fix_build_kspell2.patch
BuildRequires: cmake >= 2.8
BuildRequires: libtool
@ -80,128 +106,16 @@ Requires: avahi
Requires: qt%{?_qt_suffix}
Requires: avahi-qt3
%if "%{?_prefix}" == "/usr"
Provides: kdelibs%{?_qt_suffix} = %{version}
Obsoletes: kdelibs%{?_qt_suffix} <= 3.5.10
%endif
%description
Libraries for the Trinity Desktop Environment:
KDE Libraries included: kdecore (KDE core library), kdeui (user interface),
TDE Libraries included: tdecore (TDE core library), kdeui (user interface),
kfm (file manager), khtmlw (HTML widget), kio (Input/Output, networking),
kspell (spelling checker), jscript (javascript), kab (addressbook),
kimgio (image manipulation).
%package devel
Summary: %{name} - Development files
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%if "%{?_prefix}" == "/usr"
Provides: kdelibs%{?_qt_suffix}-devel = %{version}
Obsoletes: kdelibs%{?_qt_suffix}-devel <= 3.5.10
%endif
%description devel
This package includes the header files you will need to compile
applications for TDE.
%package apidocs
Group: Development/Libraries
Summary: %{name} - API documentation
Requires: %{name} = %{version}-%{release}
%if "%{?_prefix}" == "/usr"
Provides: kdelibs%{?_qt_suffix}-apidocs = %{version}
Obsoletes: kdelibs%{?_qt_suffix}-apidocs <= 3.5.10
%endif
%description apidocs
This package includes the TDE API documentation in HTML
format for easy browsing
%prep
%setup -q -n kdelibs
%patch10 -p1
%patch11 -p0
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%build
unset QTDIR || : ; . /etc/profile.d/qt.sh
export PATH="%{_bindir}:${PATH}"
export LD_LIBRARY_PATH="%{_libdir}"
export PKG_CONFIG_PATH="%{_libdir}/pkgconfig"
export CMAKE_INCLUDE_PATH="%{_includedir}:%{_includedir}/tqt"
%__mkdir build
cd build
%cmake \
-DWITH_ARTS=ON \
-DWITH_ALSA=ON \
-DWITH_LIBART=ON \
-DWITH_LIBIDN=OFF \
-DWITH_SSL=ON \
-DWITH_CUPS=ON \
-DWITH_LUA=OFF \
-DWITH_TIFF=ON \
-DWITH_JASPER=ON \
-DWITH_OPENEXR=ON \
-DWITH_UTEMPTER=ON \
-DWITH_AVAHI=ON \
-DWITH_ASPELL=OFF \
-DWITH_HSPELL=OFF \
-DWITH_PCRE=ON \
-DWITH_INOTIFY=ON \
-DWITH_GAMIN=ON \
..
%__make %{?_smp_mflags}
%install
%__rm -rf %{?buildroot}
%__make install DESTDIR=%{?buildroot} -C build
%__mkdir_p %{?buildroot}%{_sysconfdir}/ld.so.conf.d
cat <<EOF >%{?buildroot}%{_sysconfdir}/ld.so.conf.d/trinity.conf
%if "%{?_prefix}" != "/usr"
%{_libdir}
%endif
%{tde_libdir}
EOF
# Moves the XDG configuration files to TDE directory
%if "%{_prefix}" != "/usr"
%__install -p -D -m644 \
"%{?buildroot}%{_sysconfdir}/xdg/menus/applications.menu" \
"%{?buildroot}%{_prefix}/etc/xdg/menus/kde-applications.menu"
%__rm -rf "%{?buildroot}%{_sysconfdir}/xdg"
%else
%__mv -f "%{?buildroot}%{_sysconfdir}/xdg/menus/applications.menu" "%{?buildroot}%{_sysconfdir}/xdg/menus/kde-applications.menu"
%endif
%clean
%__rm -rf %{?buildroot}
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
%doc README
%doc COPYING.LIB
%doc AUTHORS COPYING COPYING-DOCS COPYING.LIB README TODO
%{_bindir}/artsmessage
%{_bindir}/cupsdconf
%{_bindir}/cupsdoprint
@ -259,8 +173,8 @@ EOF
%{_bindir}/start_kdeinit_wrapper
%attr(4755,root,root) %{_bindir}/kgrantpty
%{_libdir}/lib*.so.*
%{_libdir}/libkdeinit_*.so
%{_libdir}/lib*.la
%{_libdir}/lib[kt]deinit_*.la
%{_libdir}/lib[kt]deinit_*.so
%{tde_libdir}/
%{_datadir}/applications/kde/*.desktop
%{_datadir}/autostart/kab2kabc.desktop
@ -285,6 +199,7 @@ EOF
%{_datadir}/icons/hicolor/index.theme
%{_datadir}/locale/all_languages
%{tde_docdir}/HTML/en/common/*
%{_sysconfdir}/ld.so.conf.d/trinity.conf
%else
%exclude %{_bindir}/checkXML
%exclude %{_bindir}/ksvgtopng
@ -299,7 +214,6 @@ EOF
%exclude %{_datadir}/locale/all_languages
%exclude %{tde_docdir}/HTML/en/common/*
%endif
%{_sysconfdir}/ld.so.conf.d/trinity.conf
# Avoid conflict with 'redhat-menus' package
%if "%{_prefix}" == "/usr"
@ -311,27 +225,162 @@ EOF
# New in TDE 3.5.13
%{_bindir}/kdetcompmgr
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
##########
%package devel
Summary: %{name} - Development files
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Obsoletes: trinity-kdelibs-devel < %{version}-%{release}
Provides: trinity-kdelibs-devel = %{version}-%{release}
%description devel
This package includes the header files you will need to compile
applications for TDE.
%files devel
%defattr(-,root,root,-)
%{_bindir}/dcopidl*
%{_bindir}/kconfig_compiler
%{_bindir}/makekdewidgets
%{_datadir}/apps/ksgmltools2/
%{_includedir}/
%{_libdir}/lib*.so
%{_libdir}/lib*.a
%{_includedir}/*
%{_libdir}/*.la
%{_libdir}/*.so
%{_libdir}/*.a
%exclude %{_libdir}/libkdeinit_*.la
%exclude %{_libdir}/libkdeinit_*.so
# New in TDE 3.5.13
%{_datadir}/cmake/kdelibs.cmake
%post devel -p /sbin/ldconfig
%postun devel -p /sbin/ldconfig
##########
%if 0
%package apidocs
Group: Development/Libraries
Summary: %{name} - API documentation
Requires: %{name} = %{version}-%{release}
Obsoletes: trinity-kdelibs-devel < %{version}-%{release}
Provides: trinity-kdelibs-devel = %{version}-%{release}
%description apidocs
This package includes the TDE API documentation in HTML
format for easy browsing
%files apidocs
%defattr(-,root,root,-)
%{_docdir}/%{name}-%{version}/
#%{tde_docdir}/HTML/en/kdelibs*
%endif
##########
%prep
%setup -q -n kdelibs
%patch10 -p1
%patch11 -p0
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch28 -p1
%build
unset QTDIR || : ; . /etc/profile.d/qt.sh
export PATH="%{_bindir}:${PATH}"
export LD_LIBRARY_PATH="%{_libdir}"
export PKG_CONFIG_PATH="%{_libdir}/pkgconfig"
export CMAKE_INCLUDE_PATH="%{_includedir}:%{_includedir}/tqt"
%__mkdir build
cd build
%cmake \
-DWITH_ARTS=ON \
-DWITH_ALSA=ON \
-DWITH_LIBART=ON \
-DWITH_LIBIDN=OFF \
-DWITH_SSL=ON \
-DWITH_CUPS=ON \
-DWITH_LUA=OFF \
-DWITH_TIFF=ON \
-DWITH_JASPER=ON \
-DWITH_OPENEXR=ON \
-DWITH_UTEMPTER=ON \
-DWITH_AVAHI=ON \
-DWITH_ASPELL=OFF \
-DWITH_HSPELL=OFF \
-DWITH_PCRE=ON \
-DWITH_INOTIFY=ON \
-DWITH_GAMIN=ON \
..
%__make %{?_smp_mflags}
%install
%__rm -rf %{?buildroot}
%__make install DESTDIR=%{?buildroot} -C build
%if "%{?_prefix}" != "/usr"
%__mkdir_p %{?buildroot}%{_sysconfdir}/ld.so.conf.d
cat <<EOF >%{?buildroot}%{_sysconfdir}/ld.so.conf.d/trinity.conf
%{_libdir}
EOF
%endif
# Moves the XDG configuration files to TDE directory
%if "%{_prefix}" != "/usr"
%__install -p -D -m644 \
"%{?buildroot}%{_sysconfdir}/xdg/menus/applications.menu" \
"%{?buildroot}%{_prefix}/etc/xdg/menus/kde-applications.menu"
%__rm -rf "%{?buildroot}%{_sysconfdir}/xdg"
%else
%__mv -f "%{?buildroot}%{_sysconfdir}/xdg/menus/applications.menu" "%{?buildroot}%{_sysconfdir}/xdg/menus/kde-applications.menu"
%endif
%clean
%__rm -rf %{?buildroot}
%changelog
* Tue Jun 19 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.13-9
- Renames to 'tdelib'
- Fix 'ld.so.conf' file
- Fix konq filter in list view mode. [Commit #06b51484]
- Fix tdesu internal pathing [Bug #766] [Commit #e131f10b]
- Fix slider drawing on external paint devices [Commit #a1c30c14]
- Reduce "More Applications" and extra koffice items from TDE menu. [Commit #1c06ae32]
- Fix creation of profile directory in system root [Bug #293] [Commit #049525ee]
- Initialize X11 threading when kinit is used to launch a program [Bug #812] [Commit #6c806af1]
- Fix composition extension detection [Commit #41ea89f7]
- Fix KTempFile not obeying special bits on file creation [Bug #349] [Commit #9068fffd]
- Add dynamic label support to kpassworddialog [Commit #3c752316]
- Fix FTBFS - incomplete build kspell2 [Bug #657] [Commit #3e284fad]
* Tue Apr 24 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.13-8
- Fix "Konqueror: Does not update file pane with file changes" [Bug #756]
- Fix compilation with GCC 4.7

Loading…
Cancel
Save