summaryrefslogtreecommitdiffstats
path: root/kcontrol/displayconfig
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-01-09 16:39:31 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-01-09 16:39:31 -0600
commite88baf8334b8ff7ce92e555cbaffee949672d4b8 (patch)
treecaac57be5b2bb29eef81ffb58341829e2571ebb3 /kcontrol/displayconfig
parent477e956a04dfb244814f274e98a8d6f4beb84f3f (diff)
downloadtdebase-e88baf8334b8ff7ce92e555cbaffee949672d4b8.tar.gz
tdebase-e88baf8334b8ff7ce92e555cbaffee949672d4b8.zip
Automatically deactivate disconnected display devices
Notify user on display add/remove/change Add advanced display configuration option to krandr menu Add option to autohide kicker panels on inactive Xinerama screens and enable by default Update hwmanager treeview on device change
Diffstat (limited to 'kcontrol/displayconfig')
-rw-r--r--kcontrol/displayconfig/displayconfig.cpp29
-rw-r--r--kcontrol/displayconfig/displayconfig.h2
-rw-r--r--kcontrol/displayconfig/displayconfigbase.ui79
3 files changed, 78 insertions, 32 deletions
diff --git a/kcontrol/displayconfig/displayconfig.cpp b/kcontrol/displayconfig/displayconfig.cpp
index faeffa1f5..47c45a3a9 100644
--- a/kcontrol/displayconfig/displayconfig.cpp
+++ b/kcontrol/displayconfig/displayconfig.cpp
@@ -447,7 +447,7 @@ void KDisplayConfig::updateDraggableMonitorInformationInternal (int monitor_id,
}
TQString rotationDesired = *screendata->rotations.at(screendata->current_rotation_index);
- bool isvisiblyrotated = ((rotationDesired == "Rotate 90 degrees") || (rotationDesired == "Rotate 270 degrees"));
+ bool isvisiblyrotated = ((rotationDesired == ROTATION_90_DEGREES_STRING) || (rotationDesired == ROTATION_270_DEGREES_STRING));
if (screendata->is_extended) {
moved_monitor->show();
@@ -742,6 +742,8 @@ void KDisplayConfig::setRealResolutionSliderValue(int index) {
KDisplayConfig::KDisplayConfig(TQWidget *parent, const char *name, const TQStringList &)
: KCModule(KDisplayCFactory::instance(), parent, name), iccTab(0), m_randrsimple(0), m_gammaApplyTimer(0)
{
+ TDEHardwareDevices *hwdevices = KGlobal::hardwareDevices();
+ connect(hwdevices, TQT_SIGNAL(hardwareUpdated(TDEGenericDevice*)), this, TQT_SLOT(deviceChanged(TDEGenericDevice*)));
m_randrsimple = new KRandrSimpleAPI();
@@ -773,9 +775,18 @@ KDisplayConfig::KDisplayConfig(TQWidget *parent, const char *name, const TQStrin
base->systemEnableSupport->setText(i18n("&Enable local display control for this session"));
}
- setRootOnlyMsg(i18n("<b>The global display configuration is a system wide setting, and requires administrator access</b><br>To alter the system's global display configuration, click on the \"Administrator Mode\" button below.<br>Otherwise, you may change your session-specific display configuration below."));
+// setRootOnlyMsg(i18n("<b>The global display configuration is a system wide setting, and requires administrator access</b><br>To alter the system's global display configuration, click on the \"Administrator Mode\" button below.<br>Otherwise, you may change your session-specific display configuration below."));
// setUseRootOnlyMsg(true); // Setting this hides the Apply button!
+ base->nonRootWarningLabel->setFrameShape(TQFrame::Box);
+ base->nonRootWarningLabel->setFrameShadow(TQFrame::Raised);
+ if (getuid() != 0) {
+ base->nonRootWarningLabel->setText(i18n("<b>The global display configuration is a system wide setting, and requires administrator access</b><br>To alter the system's global display configuration, click on the \"Administrator Mode\" button below.<br>Otherwise, you may change your session-specific display configuration below."));
+ }
+ else {
+ base->nonRootWarningLabel->hide();
+ }
+
connect(base->systemEnableSupport, TQT_SIGNAL(clicked()), TQT_SLOT(changed()));
connect(base->systemEnableSupport, TQT_SIGNAL(clicked()), TQT_SLOT(processLockoutControls()));
connect(base->monitorDisplaySelectDD, TQT_SIGNAL(activated(int)), TQT_SLOT(changed()));
@@ -833,6 +844,16 @@ KDisplayConfig::~KDisplayConfig()
}
}
+void KDisplayConfig::deviceChanged (TDEGenericDevice* device) {
+ if (device->type() == TDEGenericDeviceType::Monitor) {
+ if (base->rescanHardware->isEnabled()) {
+ base->rescanHardware->setEnabled(false);
+ rescanHardware();
+ base->rescanHardware->setEnabled(true);
+ }
+ }
+}
+
void KDisplayConfig::updateExtendedMonitorInformation () {
SingleScreenData *screendata;
@@ -987,7 +1008,7 @@ void KDisplayConfig::updateDisplayedInformation () {
base->orientationVFlip->setChecked(screendata->has_y_flip);
}
else {
- base->rotationSelectDD->insertItem("Normal", 0);
+ base->rotationSelectDD->insertItem(ROTATION_0_DEGREES_STRING, 0);
base->rotationSelectDD->setCurrentItem(0);
base->orientationHFlip->hide();
base->orientationVFlip->hide();
@@ -1097,7 +1118,7 @@ void KDisplayConfig::updateDragDropDisplay() {
screendata = m_screenInfoArray.at(i);
if (((j==0) && (screendata->is_primary==true)) || ((j==1) && (screendata->is_primary==false))) { // This ensures that the primary monitor is always the first one created and placed on the configuration widget
TQString rotationDesired = *screendata->rotations.at(screendata->current_rotation_index);
- bool isvisiblyrotated = ((rotationDesired == "Rotate 90 degrees") || (rotationDesired == "Rotate 270 degrees"));
+ bool isvisiblyrotated = ((rotationDesired == ROTATION_90_DEGREES_STRING) || (rotationDesired == ROTATION_270_DEGREES_STRING));
DraggableMonitor *m = new DraggableMonitor( base->monitorPhyArrange, 0, WStyle_Customize | WDestructiveClose | WStyle_NoBorder | WX11BypassWM );
connect(m, TQT_SIGNAL(workspaceRelayoutNeeded()), this, TQT_SLOT(layoutDragDropDisplay()));
connect(m, TQT_SIGNAL(monitorSelected(int)), this, TQT_SLOT(selectScreen(int)));
diff --git a/kcontrol/displayconfig/displayconfig.h b/kcontrol/displayconfig/displayconfig.h
index 53541d8f8..8f7681c81 100644
--- a/kcontrol/displayconfig/displayconfig.h
+++ b/kcontrol/displayconfig/displayconfig.h
@@ -35,6 +35,7 @@
#include <dcopobject.h>
#include <libkrandr/libkrandr.h>
+#include <tdehardwaredevices.h>
#include "monitorworkspace.h"
#include "displayconfigbase.h"
@@ -128,6 +129,7 @@ private slots:
void gammaTargetChanged (int slotNumber);
void dpmsChanged (void);
void processDPMSControls (void);
+ void deviceChanged (TDEGenericDevice*);
};
#endif
diff --git a/kcontrol/displayconfig/displayconfigbase.ui b/kcontrol/displayconfig/displayconfigbase.ui
index 3ea1c57e7..dfa7e57fd 100644
--- a/kcontrol/displayconfig/displayconfigbase.ui
+++ b/kcontrol/displayconfig/displayconfigbase.ui
@@ -26,7 +26,12 @@
<property name="name">
<cstring>unnamed</cstring>
</property>
- <widget class="TQGroupBox" row="0" column="0">
+ <widget class="TQLabel" row="0" column="0">
+ <property name="name">
+ <cstring>nonRootWarningLabel</cstring>
+ </property>
+ </widget>
+ <widget class="TQGroupBox" row="1" column="0">
<property name="name">
<cstring>groupSystemSettings</cstring>
</property>
@@ -47,7 +52,7 @@
</widget>
</grid>
</widget>
- <spacer row="1" column="0">
+ <spacer row="2" column="0">
<property name="name" stdset="0">
<cstring>Spacer4</cstring>
</property>
@@ -225,7 +230,15 @@
<property name="name">
<cstring>unnamed</cstring>
</property>
- <widget class="KComboBox" row="0" column="0" colspan="1">
+ <widget class="TQLabel" row="0" column="0" colspan="1">
+ <property name="name">
+ <cstring>textLabel7_9</cstring>
+ </property>
+ <property name="text">
+ <string>Rotate screen by:</string>
+ </property>
+ </widget>
+ <widget class="KComboBox" row="1" column="0" colspan="1">
<property name="name">
<cstring>rotationSelectDD</cstring>
</property>
@@ -265,36 +278,46 @@
</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>
+ <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>
+ <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">
+ <widget class="TQLayoutWidget" row="8" column="3" colspan="1">
<property name="name">
- <cstring>previewConfiguration</cstring>
- </property>
- <property name="text">
- <string>&amp;Test Settings</string>
- </property>
- </widget>
- <widget class="KPushButton" row="8" column="3" colspan="1">
- <property name="name">
- <cstring>identifyMonitors</cstring>
- </property>
- <property name="text">
- <string>&amp;Identify</string>
+ <cstring>layout7</cstring>
</property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="KPushButton" row="8" column="0" colspan="1">
+ <property name="name">
+ <cstring>previewConfiguration</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Test Settings</string>
+ </property>
+ </widget>
+ <widget class="KPushButton" row="8" column="1" colspan="1">
+ <property name="name">
+ <cstring>identifyMonitors</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Identify</string>
+ </property>
+ </widget>
+ </hbox>
</widget>
</grid>
</widget>