Prefs_Fonts::Prefs_Fonts(QWidget* parent, ScribusDoc* doc) : Prefs_Pane(parent), m_doc(doc) { setupUi(this); RList = PrefsManager::instance()->appPrefs.fontPrefs.GFontSub; UsedFonts.clear(); CurrentPath = ""; m_askBeforeSubstitute = true; setMinimumSize(fontMetrics().width( tr( "Available Fonts" )+ tr( "Font Substitutions" )+ tr( "Additional Paths" ))+180, 200); fontListTableView->setModel(new FontListModel(fontListTableView, m_doc)); fontSubstitutionsTableWidget->setRowCount(RList.count()); fontSubstitutionsTableWidget->setColumnCount(2); fontSubstitutionsTableWidget->setHorizontalHeaderItem(0, new QTableWidgetItem( tr("Font Name"))); fontSubstitutionsTableWidget->setHorizontalHeaderItem(1, new QTableWidgetItem( tr("Replacement"))); fontSubstitutionsTableWidget->setSortingEnabled(false); fontSubstitutionsTableWidget->setSelectionBehavior( QAbstractItemView::SelectRows ); QHeaderView *header = fontSubstitutionsTableWidget->horizontalHeader(); header->setSectionsMovable(false); header->setSectionsClickable(false); header->setSectionResizeMode(QHeaderView::Stretch); fontSubstitutionsTableWidget->verticalHeader()->hide(); fontSubstitutionsTableWidget->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); // If we're being called for global application preferences, not document // preferences, we let the user customize font search paths. Because things // go rather badly if paths are changed/removed while a doc is open, the // control is also not displayed if there is a document open. if (m_doc==0 && !ScCore->primaryMainWindow()->HaveDoc) { whyBlankLabel->resize(0,0); whyBlankLabel->hide(); readPaths(); changeButton->setEnabled(false); removeButton->setEnabled(false); connect(pathListWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(SelectPath(QListWidgetItem*))); connect(addButton, SIGNAL(clicked()), this, SLOT(AddPath())); connect(changeButton, SIGNAL(clicked()), this, SLOT(ChangePath())); connect(removeButton, SIGNAL(clicked()), this, SLOT(DelPath())); }
FontPrefs::FontPrefs( QWidget* parent, bool Hdoc, QString PPath, ScribusDoc* doc ) : QTabWidget( parent ) { RList = PrefsManager::instance()->appPrefs.GFontSub; HomeP = PPath; DocAvail = Hdoc; UsedFonts.clear(); CurrentPath = ""; docc = doc; setMinimumSize(fontMetrics().width( tr( "Available Fonts" )+ tr( "Font Substitutions" )+ tr( "Additional Paths" ))+180, 200); tab1 = new QWidget( this ); tab1Layout = new QVBoxLayout( tab1 ); tab1Layout->setMargin(10); tab1Layout->setSpacing(5); fontList = new FontListView(tab1); fontList->setModel(new FontListModel(fontList)); tab1Layout->addWidget( fontList ); addTab( tab1, tr( "&Available Fonts" ) ); tab = new QWidget( this ); tabLayout = new QVBoxLayout( tab ); tabLayout->setMargin(10); tabLayout->setSpacing(5); Table3 = new QTableWidget(0, 2, tab ); Table3->setHorizontalHeaderItem(0, new QTableWidgetItem( tr("Font Name"))); Table3->setHorizontalHeaderItem(1, new QTableWidgetItem( tr("Replacement"))); Table3->setSortingEnabled(false); Table3->setSelectionBehavior( QAbstractItemView::SelectRows ); QHeaderView *header = Table3->horizontalHeader(); header->setMovable(false); header->setClickable(false); header->setResizeMode(QHeaderView::Stretch); Table3->verticalHeader()->hide(); Table3->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); tabLayout->addWidget( Table3 ); Layout2a = new QHBoxLayout; Layout2a->setMargin(0); Layout2a->setSpacing(5); QSpacerItem* spacer1 = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ); Layout2a->addItem( spacer1 ); DelB = new QPushButton( tr( "&Delete" ), tab ); DelB->setEnabled(false); Layout2a->addWidget( DelB ); QSpacerItem* spacer2 = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ); Layout2a->addItem( spacer2 ); tabLayout->addLayout( Layout2a ); addTab( tab, tr( "Font &Substitutions" ) ); tab3 = new QWidget( this ); tab3Layout = new QHBoxLayout( tab3 ); tab3Layout->setMargin(10); tab3Layout->setSpacing(5); // If we're being called for global application preferences, not document // preferences, we let the user customize font search paths. Because things // go rather badly if paths are changed/removed while a doc is open, the // control is also not displayed if there is a document open. if (!DocAvail && !ScCore->primaryMainWindow()->HaveDoc) { PathList = new QListWidget( tab3 ); readPaths(); PathList->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); tab3Layout->addWidget( PathList ); LayoutR = new QVBoxLayout; LayoutR->setMargin(0); LayoutR->setSpacing(5); ChangeB = new QPushButton( tr( "C&hange..." ), tab3 ); LayoutR->addWidget( ChangeB ); AddB = new QPushButton( tr( "A&dd..." ), tab3 ); LayoutR->addWidget( AddB ); RemoveB = new QPushButton( tr( "&Remove" ), tab3 ); LayoutR->addWidget( RemoveB ); QSpacerItem* spacer_2 = new QSpacerItem( 0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding ); LayoutR->addItem( spacer_2 ); tab3Layout->addLayout( LayoutR ); ChangeB->setEnabled(false); RemoveB->setEnabled(false); connect(PathList, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(SelectPath(QListWidgetItem*))); connect(AddB, SIGNAL(clicked()), this, SLOT(AddPath())); connect(ChangeB, SIGNAL(clicked()), this, SLOT(ChangePath())); connect(RemoveB, SIGNAL(clicked()), this, SLOT(DelPath())); }