Enable the new display configuration module

git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1249201 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
v3.5.13-sru
tpearson 13 years ago
parent 422e6d3a19
commit 9cff39bc34

@ -693,7 +693,10 @@ KDisplayConfig::KDisplayConfig(TQWidget *parent, const char *name, const TQStrin
connect(base->systemEnableSupport, TQT_SIGNAL(toggled(bool)), base->monitorDisplaySelectDD, TQT_SLOT(setEnabled(bool)));
connect(base->rescanHardware, TQT_SIGNAL(clicked()), TQT_SLOT(rescanHardware()));
connect(base->loadExistingProfile, TQT_SIGNAL(clicked()), TQT_SLOT(reloadProfile()));
connect(base->previewConfiguration, TQT_SIGNAL(clicked()), TQT_SLOT(activatePreview()));
connect(base->identifyMonitors, TQT_SIGNAL(clicked()), TQT_SLOT(identifyMonitors()));
load();
@ -720,6 +723,59 @@ void KDisplayConfig::updateExtendedMonitorInformation () {
refreshDisplayedInformation();
}
void KDisplayConfig::rescanHardware (void) {
m_randrsimple->destroyScreenInformationObject(m_screenInfoArray);
m_screenInfoArray = m_randrsimple->readCurrentDisplayConfiguration();
m_randrsimple->ensureMonitorDataConsistency(m_screenInfoArray);
numberOfScreens = m_screenInfoArray.count();
refreshDisplayedInformation();
}
void KDisplayConfig::reloadProfile (void) {
// FIXME
m_randrsimple->destroyScreenInformationObject(m_screenInfoArray);
m_screenInfoArray = m_randrsimple->loadSystemwideDisplayConfiguration("", KDE_CONFDIR);
m_randrsimple->ensureMonitorDataConsistency(m_screenInfoArray);
numberOfScreens = m_screenInfoArray.count();
refreshDisplayedInformation();
}
void KDisplayConfig::identifyMonitors () {
int i;
TQLabel* idWidget;
TQPtrList<TQWidget> widgetList;
Display *randr_display;
ScreenInfo *randr_screen_info;
XRROutputInfo *output_info;
randr_display = XOpenDisplay(NULL);
randr_screen_info = m_randrsimple->read_screen_info(randr_display);
for (i = 0; i < randr_screen_info->n_output; i++) {
output_info = randr_screen_info->outputs[i]->info;
// Look for ON outputs...
if (!randr_screen_info->outputs[i]->cur_crtc) {
continue;
}
SingleScreenData *screendata = m_screenInfoArray.at(i);
idWidget = new TQLabel(TQString("Screen\n%1").arg(i+1), (TQWidget*)0, "", Qt::WStyle_Customize | Qt::WStyle_NoBorder | Qt::WStyle_StaysOnTop | Qt::WX11BypassWM | Qt::WDestructiveClose);
widgetList.append(idWidget);
idWidget->resize(150, 100);
idWidget->setAlignment(Qt::AlignCenter);
TQFont font = idWidget->font();
font.setBold( true );
font.setPointSize(24);
idWidget->setFont( font );
idWidget->setPaletteForegroundColor(Qt::white);
idWidget->setPaletteBackgroundColor(Qt::black);
idWidget->show();
KDialog::centerOnScreen(idWidget, i);
TQTimer::singleShot(3000, idWidget, SLOT(close()));
}
}
void KDisplayConfig::deleteProfile () {
}
@ -1038,6 +1094,9 @@ void KDisplayConfig::processLockoutControls() {
base->resolutionTab->setEnabled(false);
}
}
base->loadExistingProfile->setEnabled(false); // Disable this until it works properly!
base->loadExistingProfile->hide(); // Same as above
}
void KDisplayConfig::addTab( const TQString name, const TQString label )

@ -20,4 +20,4 @@ MimeType=
Name=Monitor and Display
Name[en_US]=Monitor and Display
NoDisplay=true
NoDisplay=false

@ -111,6 +111,9 @@ private slots:
void rotationInfoChanged (void);
void refreshInfoChanged (void);
void activatePreview (void);
void identifyMonitors (void);
void rescanHardware (void);
void reloadProfile (void);
};
#endif

@ -249,6 +249,22 @@
<string>&amp;Extend my Trinity desktop onto this monitor.</string>
</property>
</widget>
<widget class="KPushButton" row="8" column="0" colspan="1">
<property name="name">
<cstring>rescanHardware</cstring>
</property>
<property name="text">
<string>&amp;Rescan Displays</string>
</property>
</widget>
<widget class="KPushButton" row="8" column="1" colspan="1">
<property name="name">
<cstring>loadExistingProfile</cstring>
</property>
<property name="text">
<string>Load &amp;Existing Profile</string>
</property>
</widget>
<widget class="KPushButton" row="8" column="2" colspan="1">
<property name="name">
<cstring>previewConfiguration</cstring>

@ -64,7 +64,7 @@ tde_add_executable( kdm_greet AUTOMOC
kfdialog.cpp kgdialog.cpp kchooser.cpp kgverify.cpp
kdmshutdown.cpp kdmadmindialog.cpp kgreeter.cpp
kgapp.cpp
LINK kdmthemer-static kdeui-shared Xtst
LINK kdmthemer-static kdeui-shared Xtst krandr-shared
DESTINATION ${BIN_INSTALL_DIR}
)

@ -40,6 +40,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include <ksimpleconfig.h>
#include <klocale.h>
#include <kdebug.h>
#include <libkrandr/libkrandr.h>
#include <tqtimer.h>
#include <tqstring.h>
@ -230,6 +231,11 @@ kg_main( const char *argv0 )
if (!_GUIStyle.isEmpty())
app->setStyle( _GUIStyle );
// Load up systemwide display settings
KRandrSimpleAPI *randrsimple = new KRandrSimpleAPI();
TQPoint primaryScreenPosition = randrsimple->applySystemwideDisplayConfiguration("", KDE_CONFDIR);
delete randrsimple;
// Load up the systemwide ICC profile
TQString iccConfigFile = TQString(KDE_CONFDIR);
iccConfigFile += "/kicc/kiccconfigrc";
@ -273,7 +279,7 @@ kg_main( const char *argv0 )
GSendInt( G_Ready );
kdDebug() << timestamp() << " main1" << endl;
kdDebug() << timestamp() << " main1" << endl;
setCursor( dpy, app->desktop()->winId(), XC_left_ptr );
for (;;) {
@ -323,8 +329,12 @@ kg_main( const char *argv0 )
dialog = new KStdGreeter;
}
XSetErrorHandler( (XErrorHandler)0 );
} else
} else {
dialog = new KStdGreeter;
}
dialog->move(primaryScreenPosition.x(), primaryScreenPosition.y());
TQPoint oldCursorPos = TQCursor::pos();
TQCursor::setPos(oldCursorPos.x() + primaryScreenPosition.x(), oldCursorPos.y() + primaryScreenPosition.y());
if (*_preloader) {
proc2 = new KProcess;
*proc2 << _preloader;

Loading…
Cancel
Save