Fixed resizing on add/remove columns.
This commit is contained in:
		
							parent
							
								
									96b04cc4b8
								
							
						
					
					
						commit
						341d733e4d
					
				@ -11,7 +11,7 @@
 | 
				
			|||||||
   </rect>
 | 
					   </rect>
 | 
				
			||||||
  </property>
 | 
					  </property>
 | 
				
			||||||
  <property name="sizePolicy">
 | 
					  <property name="sizePolicy">
 | 
				
			||||||
   <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
 | 
					   <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
 | 
				
			||||||
    <horstretch>0</horstretch>
 | 
					    <horstretch>0</horstretch>
 | 
				
			||||||
    <verstretch>0</verstretch>
 | 
					    <verstretch>0</verstretch>
 | 
				
			||||||
   </sizepolicy>
 | 
					   </sizepolicy>
 | 
				
			||||||
@ -34,7 +34,7 @@
 | 
				
			|||||||
    <bool>true</bool>
 | 
					    <bool>true</bool>
 | 
				
			||||||
   </property>
 | 
					   </property>
 | 
				
			||||||
   <property name="sizePolicy">
 | 
					   <property name="sizePolicy">
 | 
				
			||||||
    <sizepolicy hsizetype="Maximum" vsizetype="Maximum">
 | 
					    <sizepolicy hsizetype="Fixed" vsizetype="Expanding">
 | 
				
			||||||
     <horstretch>0</horstretch>
 | 
					     <horstretch>0</horstretch>
 | 
				
			||||||
     <verstretch>0</verstretch>
 | 
					     <verstretch>0</verstretch>
 | 
				
			||||||
    </sizepolicy>
 | 
					    </sizepolicy>
 | 
				
			||||||
@ -49,6 +49,9 @@
 | 
				
			|||||||
    <locale language="English" country="UnitedStates"/>
 | 
					    <locale language="English" country="UnitedStates"/>
 | 
				
			||||||
   </property>
 | 
					   </property>
 | 
				
			||||||
   <layout class="QGridLayout" name="gridLayout">
 | 
					   <layout class="QGridLayout" name="gridLayout">
 | 
				
			||||||
 | 
					    <property name="sizeConstraint">
 | 
				
			||||||
 | 
					     <enum>QLayout::SetDefaultConstraint</enum>
 | 
				
			||||||
 | 
					    </property>
 | 
				
			||||||
    <property name="margin">
 | 
					    <property name="margin">
 | 
				
			||||||
     <number>0</number>
 | 
					     <number>0</number>
 | 
				
			||||||
    </property>
 | 
					    </property>
 | 
				
			||||||
@ -58,7 +61,7 @@
 | 
				
			|||||||
    <item row="0" column="0">
 | 
					    <item row="0" column="0">
 | 
				
			||||||
     <widget class="QTableWidget" name="table">
 | 
					     <widget class="QTableWidget" name="table">
 | 
				
			||||||
      <property name="sizePolicy">
 | 
					      <property name="sizePolicy">
 | 
				
			||||||
       <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
 | 
					       <sizepolicy hsizetype="Fixed" vsizetype="Minimum">
 | 
				
			||||||
        <horstretch>0</horstretch>
 | 
					        <horstretch>0</horstretch>
 | 
				
			||||||
        <verstretch>0</verstretch>
 | 
					        <verstretch>0</verstretch>
 | 
				
			||||||
       </sizepolicy>
 | 
					       </sizepolicy>
 | 
				
			||||||
 | 
				
			|||||||
@ -528,7 +528,7 @@ class VmShutdownMonitor(QObject):
 | 
				
			|||||||
class VmManagerWindow(Ui_VmManagerWindow, QMainWindow):
 | 
					class VmManagerWindow(Ui_VmManagerWindow, QMainWindow):
 | 
				
			||||||
    row_height = 30
 | 
					    row_height = 30
 | 
				
			||||||
    column_width = 200
 | 
					    column_width = 200
 | 
				
			||||||
    max_visible_rows = 7
 | 
					    min_visible_rows = 10
 | 
				
			||||||
    update_interval = 1000 # in msec
 | 
					    update_interval = 1000 # in msec
 | 
				
			||||||
    show_inactive_vms = True
 | 
					    show_inactive_vms = True
 | 
				
			||||||
    columns_indices = { "Label": 0,
 | 
					    columns_indices = { "Label": 0,
 | 
				
			||||||
@ -573,7 +573,6 @@ class VmManagerWindow(Ui_VmManagerWindow, QMainWindow):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        self.table.horizontalHeader().setResizeMode(QHeaderView.Fixed)
 | 
					        self.table.horizontalHeader().setResizeMode(QHeaderView.Fixed)
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					 | 
				
			||||||
        self.table.sortItems(self.columns_indices["Label"], Qt.AscendingOrder)
 | 
					        self.table.sortItems(self.columns_indices["Label"], Qt.AscendingOrder)
 | 
				
			||||||
        self.sort_by_mem = None
 | 
					        self.sort_by_mem = None
 | 
				
			||||||
        self.sort_by_cpu = None
 | 
					        self.sort_by_cpu = None
 | 
				
			||||||
@ -624,7 +623,7 @@ class VmManagerWindow(Ui_VmManagerWindow, QMainWindow):
 | 
				
			|||||||
    def show(self):
 | 
					    def show(self):
 | 
				
			||||||
        super(VmManagerWindow, self).show()
 | 
					        super(VmManagerWindow, self).show()
 | 
				
			||||||
        self.set_table_geom_height()
 | 
					        self.set_table_geom_height()
 | 
				
			||||||
        self.update_table_columns()
 | 
					        self.set_table_geom_width()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def set_table_geom_height(self):
 | 
					    def set_table_geom_height(self):
 | 
				
			||||||
        minH =  self.table.horizontalHeader().height() +\
 | 
					        minH =  self.table.horizontalHeader().height() +\
 | 
				
			||||||
@ -634,10 +633,9 @@ class VmManagerWindow(Ui_VmManagerWindow, QMainWindow):
 | 
				
			|||||||
        #or if you know what you're doing :)
 | 
					        #or if you know what you're doing :)
 | 
				
			||||||
               
 | 
					               
 | 
				
			||||||
        n = self.table.rowCount();
 | 
					        n = self.table.rowCount();
 | 
				
			||||||
 | 
					 | 
				
			||||||
        maxH = minH
 | 
					        maxH = minH
 | 
				
			||||||
        if n >= self.max_visible_rows:
 | 
					        if n >= self.min_visible_rows:
 | 
				
			||||||
            minH += self.max_visible_rows*self.row_height
 | 
					            minH += self.min_visible_rows*self.row_height
 | 
				
			||||||
            maxH += n*self.row_height
 | 
					            maxH += n*self.row_height
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            minH += n*self.row_height
 | 
					            minH += n*self.row_height
 | 
				
			||||||
@ -655,7 +653,9 @@ class VmManagerWindow(Ui_VmManagerWindow, QMainWindow):
 | 
				
			|||||||
        maxH += mainwindow_to_add
 | 
					        maxH += mainwindow_to_add
 | 
				
			||||||
        minH += mainwindow_to_add
 | 
					        minH += mainwindow_to_add
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.setMaximumHeight(maxH)
 | 
					        desktop_height = app.desktop().availableGeometry().height() - 2*self.row_height
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.setMaximumHeight(min(desktop_height, maxH))
 | 
				
			||||||
        self.setMinimumHeight(minH)
 | 
					        self.setMinimumHeight(minH)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -733,8 +733,11 @@ class VmManagerWindow(Ui_VmManagerWindow, QMainWindow):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            if self.reload_table or ((not self.show_inactive_vms) and some_vms_have_changed_power_state): 
 | 
					            if self.reload_table or ((not self.show_inactive_vms) and some_vms_have_changed_power_state): 
 | 
				
			||||||
                self.fill_table()
 | 
					                self.fill_table()
 | 
				
			||||||
 | 
					                self.set_table_geom_height()
 | 
				
			||||||
 | 
					                self.set_table_geom_width()
 | 
				
			||||||
                update_devs=True
 | 
					                update_devs=True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if self.sort_by_state != None and self.table.sort_state_by_upd  and some_vms_have_changed_power_state:
 | 
					            if self.sort_by_state != None and self.table.sort_state_by_upd  and some_vms_have_changed_power_state:
 | 
				
			||||||
                self.table.sort_state_by_upd = not self.table.sort_state_by_upd # sorter indicator changed will switch it...and we want it to remain unswtched.
 | 
					                self.table.sort_state_by_upd = not self.table.sort_state_by_upd # sorter indicator changed will switch it...and we want it to remain unswtched.
 | 
				
			||||||
                self.table.sortItems(self.columns_indices["State"], self.sort_by_state)
 | 
					                self.table.sortItems(self.columns_indices["State"], self.sort_by_state)
 | 
				
			||||||
@ -789,7 +792,7 @@ class VmManagerWindow(Ui_VmManagerWindow, QMainWindow):
 | 
				
			|||||||
            self.counter += 1
 | 
					            self.counter += 1
 | 
				
			||||||
            QTimer.singleShot (self.update_interval, self.update_table)
 | 
					            QTimer.singleShot (self.update_interval, self.update_table)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def update_table_columns(self):
 | 
					    def set_table_geom_width(self):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        table_width =   self.table.horizontalHeader().length() +\
 | 
					        table_width =   self.table.horizontalHeader().length() +\
 | 
				
			||||||
                        self.table.verticalScrollBar().width() + \
 | 
					                        self.table.verticalScrollBar().width() + \
 | 
				
			||||||
@ -797,7 +800,9 @@ class VmManagerWindow(Ui_VmManagerWindow, QMainWindow):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        self.table.setFixedWidth( table_width )
 | 
					        self.table.setFixedWidth( table_width )
 | 
				
			||||||
        self.centralwidget.setFixedWidth(table_width)
 | 
					        self.centralwidget.setFixedWidth(table_width)
 | 
				
			||||||
        self.setFixedWidth(table_width)
 | 
					        # don't change the following two lines to setFixedWidth!
 | 
				
			||||||
 | 
					        self.setMaximumWidth(table_width)
 | 
				
			||||||
 | 
					        self.setMinimumWidth(table_width)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def update_block_devices(self):
 | 
					    def update_block_devices(self):
 | 
				
			||||||
        res, msg = self.blk_manager.update()
 | 
					        res, msg = self.blk_manager.update()
 | 
				
			||||||
@ -1216,30 +1221,30 @@ class VmManagerWindow(Ui_VmManagerWindow, QMainWindow):
 | 
				
			|||||||
            self.context_menu.removeAction(self.action_toolbar)
 | 
					            self.context_menu.removeAction(self.action_toolbar)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def showhide_collumn(self, col_num, show):
 | 
					    def showhide_column(self, col_num, show):
 | 
				
			||||||
        self.table.setColumnHidden( col_num, not show)
 | 
					        self.table.setColumnHidden( col_num, not show)
 | 
				
			||||||
        self.update_table_columns()
 | 
					        self.set_table_geom_width()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def on_actionState_toggled(self, checked):
 | 
					    def on_actionState_toggled(self, checked):
 | 
				
			||||||
        self.showhide_collumn( self.columns_indices['State'], checked)
 | 
					        self.showhide_column( self.columns_indices['State'], checked)
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
    def on_actionTemplate_toggled(self, checked):
 | 
					    def on_actionTemplate_toggled(self, checked):
 | 
				
			||||||
        self.showhide_collumn( self.columns_indices['Template'], checked)
 | 
					        self.showhide_column( self.columns_indices['Template'], checked)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def on_actionNetVM_toggled(self, checked):
 | 
					    def on_actionNetVM_toggled(self, checked):
 | 
				
			||||||
        self.showhide_collumn( self.columns_indices['NetVM'], checked)
 | 
					        self.showhide_column( self.columns_indices['NetVM'], checked)
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    def on_actionCPU_toggled(self, checked):
 | 
					    def on_actionCPU_toggled(self, checked):
 | 
				
			||||||
        self.showhide_collumn( self.columns_indices['CPU'], checked)
 | 
					        self.showhide_column( self.columns_indices['CPU'], checked)
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    def on_actionCPU_Graph_toggled(self, checked):
 | 
					    def on_actionCPU_Graph_toggled(self, checked):
 | 
				
			||||||
        self.showhide_collumn( self.columns_indices['CPU Graph'], checked)    
 | 
					        self.showhide_column( self.columns_indices['CPU Graph'], checked)    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def on_actionMEM_toggled(self, checked):
 | 
					    def on_actionMEM_toggled(self, checked):
 | 
				
			||||||
        self.showhide_collumn( self.columns_indices['MEM'], checked)   
 | 
					        self.showhide_column( self.columns_indices['MEM'], checked)   
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    def on_actionMEM_Graph_toggled(self, checked):
 | 
					    def on_actionMEM_Graph_toggled(self, checked):
 | 
				
			||||||
        self.showhide_collumn( self.columns_indices['MEM Graph'], checked)
 | 
					        self.showhide_column( self.columns_indices['MEM Graph'], checked)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def createPopupMenu(self):
 | 
					    def createPopupMenu(self):
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user