metaeditor.cpp

Go to the documentation of this file.
00001 #include "editor.h"
00002 #include "metaeditor.h"
00003 #include "main.h"
00004 
00005 metaeditor::metaeditor(void) : editor(DISABLE_ASSEMBLY)
00006 {
00007  setup_labels();
00008  meta_assembly();
00009 }
00010 
00011 
00012 metaeditor::~metaeditor(void)
00013 {
00014 
00015 }
00016 
00017 void metaeditor::setup_labels(void)
00018 {
00019  // Название записи
00020  record_name=new QLabel(this);
00021  record_name->setTextInteractionFlags(Qt::TextSelectableByMouse |
00022                                       Qt::TextSelectableByKeyboard);
00023  record_name->setVisible(false);
00024  record_name->setWordWrap(true);
00025 
00026  // Автор
00027  record_author=new QLabel(this);
00028  record_author->setTextInteractionFlags(Qt::TextSelectableByMouse |
00029                                         Qt::TextSelectableByKeyboard);
00030  record_author->setVisible(false);
00031  record_author->setWordWrap(true);
00032 
00033  // Url
00034  label_url=new QLabel(this);
00035  label_url->setText(tr("<B>Url:</B> "));
00036  label_url->setVisible(false);
00037 
00038  record_url=new QLabel(this);
00039  record_url->setTextInteractionFlags(Qt::TextSelectableByMouse |
00040                                      Qt::TextSelectableByKeyboard |
00041                                      Qt::LinksAccessibleByMouse |
00042                                      Qt::LinksAccessibleByKeyboard);
00043  record_url->setVisible(false);
00044  record_url->setWordWrap(true);
00045 
00046  // Текстовые метки
00047  label_tags=new QLabel(this);
00048  label_tags->setText(tr("<B>Tags:</B> "));
00049  label_tags->setVisible(false);
00050 
00051  record_tags=new QLabel(this);
00052  record_tags->setTextInteractionFlags(Qt::TextSelectableByMouse |
00053                                       Qt::TextSelectableByKeyboard);
00054  record_tags->setVisible(false);
00055  record_tags->setWordWrap(true);
00056 
00057 }
00058 
00059 void metaeditor::meta_assembly(void)
00060 {
00061  metaeditor_assembly_layout=new QGridLayout(this);
00062  metaeditor_assembly_layout->setObjectName(QString::fromUtf8("metaeditor_assembly_layout"));
00063 
00064  metaeditor_assembly_layout->addLayout(textformat_buttons_layout, 0,0, 1,2);
00065  metaeditor_assembly_layout->addWidget(record_name,               1,0, 1,2);
00066  metaeditor_assembly_layout->addWidget(record_author,             2,0, 1,2);
00067  metaeditor_assembly_layout->addWidget(textarea,                  3,0, 1,2);
00068 
00069  metaeditor_assembly_layout->addWidget(label_url,                 4,0);
00070  metaeditor_assembly_layout->addWidget(record_url,                4,1);
00071 
00072  metaeditor_assembly_layout->addWidget(label_tags,                5,0);
00073  metaeditor_assembly_layout->addWidget(record_tags,               5,1);
00074 
00075  metaeditor_assembly_layout->setColumnStretch(1,1);
00076 
00077  // Полученый виджет устанавливается для текущего окна
00078  setLayout(metaeditor_assembly_layout);
00079 
00080  // Границы убираются, так как данный объект будет использоваться
00081  // как виджет
00082  QLayout *lt;
00083  lt=layout();
00084  lt->setContentsMargins(0,2,0,0);
00085 }
00086 
00087 
00088 // Слот для установки значений инфополей на экране
00089 void metaeditor::set_field(QString n,QString v)
00090 {
00091  if     (n=="name")  set_name(v);
00092  else if(n=="author")set_author(v);
00093  else if(n=="url")   set_url(v);
00094  else if(n=="tags")  set_tags(v);
00095  else
00096   critical_error("metaeditor.set_field Undestand field "+n+" with value "+v);
00097 }
00098 
00099 
00100 void metaeditor::clear_all(void)
00101 {
00102  set_name("");
00103  set_author("");
00104  set_url("");
00105  set_tags("");
00106  set_textarea("");
00107 }
00108 
00109 
00110 void metaeditor::set_name(QString name)
00111 {
00112  record_name->setVisible(true);
00113  record_name->setText("<b>"+name+"</b>");
00114 }
00115 
00116 
00117 void metaeditor::set_author(QString author)
00118 {
00119  if(author.length()==0)
00120  {
00121   record_author->setVisible(false);
00122   record_author->setText("");
00123  }
00124  else
00125  {
00126   record_author->setVisible(true);
00127   record_author->setText("<i>"+author+"</i>");
00128  }
00129 }
00130 
00131 
00132 void metaeditor::set_url(QString url)
00133 {
00134  if(url.length()==0)
00135  {
00136   label_url->setVisible(false);
00137   record_url->setVisible(false);
00138 
00139   record_url->setText("");
00140  }
00141  else
00142  {
00143   label_url->setVisible(true);
00144   record_url->setVisible(true);
00145 
00146   if(url.size()>64)
00147    record_url->setText("<a href=\""+url+"\">"+url.left(64)+"...</a>");
00148   else
00149    record_url->setText("<a href=\""+url+"\">"+url+"</a>");
00150 
00151   record_url->setTextInteractionFlags(Qt::TextSelectableByMouse |
00152                                       Qt::TextSelectableByKeyboard |
00153                                       Qt::LinksAccessibleByMouse |
00154                                       Qt::LinksAccessibleByKeyboard);
00155 
00156  }
00157 }
00158 
00159 
00160 void metaeditor::set_tags(QString tags)
00161 {
00162  record_tags->setText(tags);
00163 
00164  if(tags.length()==0)
00165  {
00166   label_tags->setVisible(false);
00167   record_tags->setVisible(false);
00168  }
00169  else
00170  {
00171   label_tags->setVisible(true);
00172   record_tags->setVisible(true);
00173  }
00174 }
00175 

Generated on Mon Feb 2 00:25:34 2009 for mytetra by  doxygen 1.5.1